| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | John Hansen <john(at)geeknet(dot)com(dot)au> |
| Cc: | pgsql-hackers(at)postgresql(dot)org |
| Subject: | Re: CREATE or REPLACE function pg_catalog.* |
| Date: | 2004-11-10 17:11:27 |
| Message-ID: | 13626.1100106687@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
John Hansen <john(at)geeknet(dot)com(dot)au> writes:
> When doing CREATE or REPLACE FUNCTION of a builtin function, it seems to
> have no effect if its in the 'C" language. SQL functions seem to work,
> but as neilc pointed out, it may be due to the SQL function being
> inlined.
> The builtin function is still called, not the userdefined function for
> 'C' language functions.
You can't override a builtin C function that way because there is a
built-in map from function OID to builtin function address, and it's
consulted before trying to look in pg_proc.
This behavior is not really open to negotiation; not only on grounds of
speed, but on grounds of circularity. (The functions used in the
process of looking up entries in pg_proc itself obviously must have such
a short circuit...) You'd have to build a modified backend in which the
particular functions you want to replace are not listed in the builtin
mapping table.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2004-11-10 17:13:25 | Re: A modest proposal: get rid of GUC's USERLIMIT variable category |
| Previous Message | Tom Lane | 2004-11-10 16:45:39 | Re: A modest proposal: get rid of GUC's USERLIMIT variable category |