From: | "David E(dot) Wheeler" <david(at)kineticode(dot)com> |
---|---|
To: | PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Cc: | Brendan Jurd <direvus(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Neil Conway <neilc(at)samurai(dot)com> |
Subject: | Re: Mysterious Bus Error with get_fn_expr_argtype() |
Date: | 2008-09-02 17:43:50 |
Message-ID: | 608558AF-5A68-4966-B70D-54EECDAF88E9@kineticode.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Sep 2, 2008, at 08:58, David E. Wheeler wrote:
> On Sep 1, 2008, at 22:31, Brendan Jurd wrote:
>
>>> Oh, another thing: it shouldn't be STRICT. Nulls have perfectly
>>> good
>>> types.
>>
>> Agreed.
>>
>> Barring any further comments/objections, I'll go ahead and prepare a
>> patch to add this to core.
>
> So it will return a text representation or an Oid?
Looks like regtype displays as an integer. So how about pg_regtypeof()
and pg_typeof()?
PG_FUNCTION_INFO_V1(pg_regtypeof);
Datum
pg_regtypeof(PG_FUNCTION_ARGS)
{
PG_RETURN_OID(get_fn_expr_argtype(fcinfo->flinfo, 0));
}
PG_FUNCTION_INFO_V1(pg_typeof);
Datum
pg_typeof(PG_FUNCTION_ARGS)
{
Oid typeoid;
typeoid = get_fn_expr_argtype(fcinfo->flinfo, 0);
if (typeoid == InvalidOid) {
ereport(
ERROR, (
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("could not determine data type of argument to
pg_typeof()")
)
);
}
PG_RETURN_DATUM(CStringGetDatum(format_type_be(typeoid)));
}
Best,
David
From | Date | Subject | |
---|---|---|---|
Next Message | David E. Wheeler | 2008-09-02 17:50:32 | Re: Mysterious Bus Error with get_fn_expr_argtype() |
Previous Message | Martijn van Oosterhout | 2008-09-02 17:41:32 | Re: Mysterious Bus Error with get_fn_expr_argtype() |