Обсуждение: define type_transform to new user defined type
<div dir="ltr"><div style="font-family:arial,sans-serif;font-size:12.727272033691406px"> I want to create new type that issimilar to varchar.</div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">its size is variable.</div><divstyle="font-family:arial,sans-serif;font-size:12.727272033691406px">I use CREATE TYPE query.</div><divstyle="font-family:arial,sans-serif;font-size:12.727272033691406px">I define for that type this functions:</div><divstyle="font-family:arial,sans-serif;font-size:12.727272033691406px"> 1-typein</div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">2-typeoute</div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">3-typemodify_input</div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">4-typemodify_output</div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">5-type_transform</div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">Ican define 1 to 4 functions in CREATE TYPE</div><divstyle="font-family:arial,sans-serif;font-size:12.727272033691406px">but I can't define type_transform for thattype. how did I can define type_transform for that type?</div></div>
Mohsen SM <mohsensoodkhah@gmail.com> writes:
> I want to create new type that is similar to varchar.
> its size is variable.
> I use CREATE TYPE query.
> I define for that type this functions:
> 1-typein
> 2-typeoute
> 3-typemodify_input
> 4-typemodify_output
> 5-type_transform
> I can define 1 to 4 functions in CREATE TYPE
> but I can't define type_transform for that type. how did I can define
> type_transform for that type?
There's no such thing as a "type transform". There are transforms
associated with functions ... unfortunately, there's not currently
any provision for defining those at the SQL level. You could poke
an entry into pg_proc.protransform if you're desperate enough.
regards, tom lane
Hello, > Mohsen SM <mohsensoodkhah@gmail.com> writes: > I want to create new type that is similar to varchar. > its size is variable. > I use CREATE TYPE query. > I define for that type this functions: > 1-typein > 2-typeoute > 3-typemodify_input > 4-typemodify_output > 5-type_transform > I can define 1 to 4 functions in CREATE TYPE > but I can't define type_transform for that type. how did I can define > type_transform for that type? "type cast" came in my mind seeing "type transoform" among them. You could do that by using 'CREATE CAST' if this is right. http://www.postgresql.org/docs/current/static/sql-createcast.html At Tue, 25 Feb 2014 16:11:46 -0500, Tom Lane wrote > There's no such thing as a "type transform". There are transforms > associated with functions ... unfortunately, there's not currently > any provision for defining those at the SQL level. You could poke > an entry into pg_proc.protransform if you're desperate enough. Just for curiosity but could I have some examples for transforms associated with functions? I saw a lot of "transform"s for clauses, exprs, plan nodes, etc, but I had nothing so grepping src/backend/* for 'transform'. regards, -- Kyotaro Horiguchi NTT Open Source Software Center