timestamp_in DirectFunctionCall

Started by Marios Vodasover 15 years ago2 messages
#1Marios Vodas
mvodas@gmail.com

Would this be correct?
DatumGetTimestamp(DirectFunctionCall3(timestamp_in, CStringGetDatum(time),
PointerGetDatum(0), Int32GetDatum(MAX_TIMESTAMP_PRECISION)));

This is how timestamp_in starts, *#ifdef NOT_USED* is a litle bit confusing.
Datum timestamp_in(PG_FUNCTION_ARGS)
{
char *str = PG_GETARG_CSTRING(0);

#ifdef NOT_USED
Oid typelem = PG_GETARG_OID(1);
#endif
int32 typmod = PG_GETARG_INT32(2);

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Marios Vodas (#1)
Re: timestamp_in DirectFunctionCall

Marios Vodas <mvodas@gmail.com> writes:

This is how timestamp_in starts, *#ifdef NOT_USED* is a litle bit confusing.
Datum timestamp_in(PG_FUNCTION_ARGS)
{
char *str = PG_GETARG_CSTRING(0);

#ifdef NOT_USED
Oid typelem = PG_GETARG_OID(1);
#endif
int32 typmod = PG_GETARG_INT32(2);

The ifdef is just to document that timestamp_in is ignoring an input
function's standard second argument.

Personally I'd pass -1 for the third argument rather than hard-wiring
a specific value.

regards, tom lane