34#define WINDOW_SEEK_CURRENT 0
35#define WINDOW_SEEK_HEAD 1
36#define WINDOW_SEEK_TAIL 2
41#define PG_WINDOW_OBJECT() ((WindowObject) fcinfo->context)
43#define WindowObjectIsValid(winobj) \
44 ((winobj) != NULL && IsA(winobj, WindowObjectData))
47 bool allowNullTreatment,
60 int relpos,
int seektype,
bool set_mark,
61 bool *isnull,
bool *isout);
64 int relpos,
int seektype,
bool set_mark,
65 bool *isnull,
bool *isout);
Datum WinGetFuncArgInPartition(WindowObject winobj, int argno, int relpos, int seektype, bool set_mark, bool *isnull, bool *isout)
void * WinGetPartitionLocalMemory(WindowObject winobj, Size sz)
Datum WinGetFuncArgInFrame(WindowObject winobj, int argno, int relpos, int seektype, bool set_mark, bool *isnull, bool *isout)
int64 WinGetCurrentPosition(WindowObject winobj)
bool WinRowsArePeers(WindowObject winobj, int64 pos1, int64 pos2)
void WinSetMarkPosition(WindowObject winobj, int64 markpos)
void WinCheckAndInitializeNullTreatment(WindowObject winobj, bool allowNullTreatment, FunctionCallInfo fcinfo)
Datum WinGetFuncArgCurrent(WindowObject winobj, int argno, bool *isnull)
int64 WinGetPartitionRowCount(WindowObject winobj)
struct WindowObjectData * WindowObject