32#define WINDOW_SEEK_CURRENT 0
33#define WINDOW_SEEK_HEAD 1
34#define WINDOW_SEEK_TAIL 2
39#define PG_WINDOW_OBJECT() ((WindowObject) fcinfo->context)
41#define WindowObjectIsValid(winobj) \
42 ((winobj) != NULL && IsA(winobj, WindowObjectData))
54 int relpos,
int seektype,
bool set_mark,
55 bool *isnull,
bool *isout);
58 int relpos,
int seektype,
bool set_mark,
59 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)
Datum WinGetFuncArgCurrent(WindowObject winobj, int argno, bool *isnull)
int64 WinGetPartitionRowCount(WindowObject winobj)
struct WindowObjectData * WindowObject