On Thu, 2009-10-01 at 10:40 +0900, Itagaki Takahiro wrote:
> > Peter Eisentraut <pete...@gmx.net> wrote:
> > > If you want a "pretty" option on pg_get_triggerdef(), you could nowadays
> > > also implement that via a parameter default value instead of a second
> > > function.
> > 
> > OK, I'll rewrite it to use default parameter.
> 
> I tried to remove pg_get_triggerdef_ext() and add a second argument
> with default value to pg_get_triggerdef(), but there is a problem.
> 
> The definition of pg_get_triggerdef will be the following:
>     DATA(insert OID = 1662 (
>         pg_get_triggerdef    PGNSP PGUID 12 1 0 0 f f f t f s 2 1 25 "26 16" 
> _null_ _null_ _null_
>         "({CONST :consttype 16 :consttypmod -1 :constlen 1 :constbyval true 
> :constisnull false :location 41 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})"
>         pg_get_triggerdef _null_ _null_ _null_ ));
> 
> The problem is in :constvalue part; It will be
> ":constvalue 1 [ 0 0 0 0 0 0 0 0 ]" on 64bit platform, but
> ":constvalue 1 [ 0 0 0 0 ]" on 32bit platform.
> I think we should not use default values in functions listed on pg_proc.h,
> so the previous patch is better than default value version.

OK, but what you can do is point both variants to the same C function
and check with PG_NARGS() with how many arguments you were called.  That
would save some of the indirections.


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to