On Sep 2, 2008, at 10:43, David E. Wheeler wrote:

Looks like regtype displays as an integer. So how about pg_regtypeof() and pg_typeof()?

Sorry, make that:

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(DirectFunctionCall1(textin, CStringGetDatum(format_type_be(typeoid))));
}

Best,

David


--
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