X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fpostrr.h.in;h=bf93551c87af699e6ae00cee35e1168de8709aaf;hb=204a47a5eef2694c4e8105ad68e667446bbf36a0;hp=3db5045169ffe7817244b9ce40137c71665faf64;hpb=ac5961c9983ead0da2d96af6f08ab5701bbdd258;p=postrr.git diff --git a/src/postrr.h.in b/src/postrr.h.in index 3db5045..bf93551 100644 --- a/src/postrr.h.in +++ b/src/postrr.h.in @@ -78,30 +78,96 @@ rrtimeslice_typmodout(PG_FUNCTION_ARGS); /* casts */ Datum rrtimeslice_to_rrtimeslice(PG_FUNCTION_ARGS); +Datum +timestamptz_to_rrtimeslice(PG_FUNCTION_ARGS); +Datum +rrtimeslice_to_timestamptz(PG_FUNCTION_ARGS); /* comparison operators */ Datum -rrtimeslice_eq(PG_FUNCTION_ARGS); +rrtimeslice_cmp(PG_FUNCTION_ARGS); + +/* sequence comparison operators */ Datum -rrtimeslice_ne(PG_FUNCTION_ARGS); +rrtimeslice_seq_eq(PG_FUNCTION_ARGS); Datum -rrtimeslice_lt(PG_FUNCTION_ARGS); +rrtimeslice_seq_ne(PG_FUNCTION_ARGS); Datum -rrtimeslice_le(PG_FUNCTION_ARGS); +rrtimeslice_seq_lt(PG_FUNCTION_ARGS); Datum -rrtimeslice_gt(PG_FUNCTION_ARGS); +rrtimeslice_seq_le(PG_FUNCTION_ARGS); Datum -rrtimeslice_ge(PG_FUNCTION_ARGS); +rrtimeslice_seq_gt(PG_FUNCTION_ARGS); Datum -rrtimeslice_cmp(PG_FUNCTION_ARGS); +rrtimeslice_seq_ge(PG_FUNCTION_ARGS); +Datum +rrtimeslice_seq_cmp(PG_FUNCTION_ARGS); +Datum +rrtimeslice_seq_hash(PG_FUNCTION_ARGS); /* * internal (not fmgr-callable) functions */ +/* + * compare two RRTimeslices + * + * returns: + * - -2 if ts1 < ts2 (sequence numbers don't match) + * - -1 if ts1 < ts2 (sequence numbers match) + * - 0 if ts1 = ts2 + * - 1 if ts1 > ts2 (sequence numbers match) + * - 2 if ts1 > ts2 (sequence numbers don't match) + */ int rrtimeslice_cmp_internal(rrtimeslice_t *ts1, rrtimeslice_t *ts2); +/* + * compare sequence numbers of two RRTimeslices + * + * returns: + * - -1 if ts1 < ts2 + * - 0 if ts1 = ts2 + * - 1 if ts1 > ts2 + */ +int +rrtimeslice_seq_cmp_internal(rrtimeslice_t *ts1, rrtimeslice_t *ts2); + +/* + * CData data type + */ + +struct cdata; +typedef struct cdata cdata_t; + +#define PG_GETARG_CDATA_P(n) (cdata_t *)PG_GETARG_POINTER(n) +#define PG_RETURN_CDATA_P(p) PG_RETURN_POINTER(p) + +Datum +cdata_validate(PG_FUNCTION_ARGS); + +/* I/O functions */ +Datum +cdata_in(PG_FUNCTION_ARGS); +Datum +cdata_out(PG_FUNCTION_ARGS); +Datum +cdata_typmodin(PG_FUNCTION_ARGS); +Datum +cdata_typmodout(PG_FUNCTION_ARGS); + +/* casts */ +Datum +cdata_to_cdata(PG_FUNCTION_ARGS); +Datum +int32_to_cdata(PG_FUNCTION_ARGS); +Datum +cdata_to_float8(PG_FUNCTION_ARGS); + +/* aux. functions */ +Datum +cdata_update(PG_FUNCTION_ARGS); + #endif /* ! POSTRR_H */ /* vim: set tw=78 sw=4 ts=4 noexpandtab : */