Lists: | pgsql-hackerspgsql-patches |
---|
From: | "Brendan Jurd" <direvus(at)gmail(dot)com> |
---|---|
To: | "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | "Neil Conway" <neilc(at)samurai(dot)com>, "David E(dot) Wheeler" <david(at)kineticode(dot)com>, "PostgreSQL Hackers" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | pg_typeof() (was: Mysterious Bus Error with get_fn_expr_argtype()) |
Date: | 2008-09-03 02:57:28 |
Message-ID: | 37ed240d0809021957r6291d2aej3fc87020a3f7a299@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers pgsql-patches |
On Tue, Sep 2, 2008 at 3:31 PM, Brendan Jurd <direvus(at)gmail(dot)com> wrote:
> Barring any further comments/objections, I'll go ahead and prepare a
> patch to add this to core.
>
Any opinions on where pg_typeof() should be defined? This function is
a little unusual and doesn't seem to slot nicely into any one of the
existing categories.
A few candidates:
* regproc.c - it contains functions for working with regtype.
* ruleutils.c - it contains a lot of other system information
functions, like pg_get_expr(), pg_get_userbyid(), et al.
* format_type.c - functions for presenting type information to the user.
* misc.c
Personally I'd be inclined to go with misc.c (if it's not clear where
it belongs, that probably makes it miscellany), but it's a weak
preference only.
Cheers,
BJ
From: | "Brendan Jurd" <direvus(at)gmail(dot)com> |
---|---|
To: | pgsql-patches(at)postgresql(dot)org, "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "David E(dot) Wheeler" <david(at)kineticode(dot)com>, "Neil Conway" <neilc(at)samurai(dot)com> |
Subject: | pg_typeof() (was: Mysterious Bus Error with get_fn_expr_argtype()) |
Date: | 2008-09-03 07:15:36 |
Message-ID: | 37ed240d0809030015u73b65b66v70fd76741317c6f5@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers pgsql-patches |
Hi folks,
As discussed on -hackers [1], here is a patch to add a pg_typeof()
builtin function to core.
The function accepts one argument (type "any") and returns the regtype
of that argument. This can be helpful in various circumstances,
including troubleshooting cast/coercion behaviour in a query, or
constructing dynamic SQL statements.
It's declared in builtins.h and defined in utils/adt/misc.c.
The patch includes a small documentation update; I added pg_typeof()
to Table 9-47. System Catalog Information Functions, and a brief
descriptive paragraph underneath the table.
This didn't seem like it warranted any additional regression tests.
Added to the November commitfest.
Cheers,
BJ
doc/src/sgml/func.sgml | 15 +++++++++++++++
src/backend/utils/adt/misc.c | 9 +++++++++
src/include/catalog/catversion.h | 2 !!
src/include/catalog/pg_proc.h | 2 ++
src/include/utils/builtins.h | 1 +
5 files changed, 27 insertions(+), 2 modifications(!)
Attachment | Content-Type | Size |
---|---|---|
pg_typeof.diff | application/octet-stream | 3.5 KB |