"petrum@gmail.com" <petrum@gmail.com> writes:
> I have a question regarding the source code in file pg_proc.h (postgresql-9.4.4).
> At line 1224 (copied below) why the 28th identifier is timestamp_eq?
> DATA(insert OID = 1152 ( timestamptz_eq PGNSP PGUID 12 1 0 0 0 f f f t t f i 2 0 16 "1184 1184" _null_ _null_
_null__null_ timestamp_eq _null_ _null_ _null_ ));
> I would expect it to be timestamptz_eq (the same as the 5th identifier
> from the same line).
If timestamptz_eq actually existed as a separate C function, then yes that
would be correct. But see this bit in timestamp.h:
extern int timestamp_cmp_internal(Timestamp dt1, Timestamp dt2);
/* timestamp comparison works for timestamptz also */
#define timestamptz_cmp_internal(dt1,dt2) timestamp_cmp_internal(dt1, dt2)
AFAICS there are not similar #defines equating timestamptz_eq to
timestamp_eq and so on, probably because we don't have much need
to refer to those functions in the C code. But even if we had
such #defines, I think that pg_proc.h could not rely on them.
It has to reference actual C functions.
regards, tom lane