Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef WINDOWAPI_H
00029 #define WINDOWAPI_H
00030
00031
00032 #define WINDOW_SEEK_CURRENT 0
00033 #define WINDOW_SEEK_HEAD 1
00034 #define WINDOW_SEEK_TAIL 2
00035
00036
00037 typedef struct WindowObjectData *WindowObject;
00038
00039 #define PG_WINDOW_OBJECT() ((WindowObject) fcinfo->context)
00040
00041 #define WindowObjectIsValid(winobj) \
00042 ((winobj) != NULL && IsA(winobj, WindowObjectData))
00043
00044 extern void *WinGetPartitionLocalMemory(WindowObject winobj, Size sz);
00045
00046 extern int64 WinGetCurrentPosition(WindowObject winobj);
00047 extern int64 WinGetPartitionRowCount(WindowObject winobj);
00048
00049 extern void WinSetMarkPosition(WindowObject winobj, int64 markpos);
00050
00051 extern bool WinRowsArePeers(WindowObject winobj, int64 pos1, int64 pos2);
00052
00053 extern Datum WinGetFuncArgInPartition(WindowObject winobj, int argno,
00054 int relpos, int seektype, bool set_mark,
00055 bool *isnull, bool *isout);
00056
00057 extern Datum WinGetFuncArgInFrame(WindowObject winobj, int argno,
00058 int relpos, int seektype, bool set_mark,
00059 bool *isnull, bool *isout);
00060
00061 extern Datum WinGetFuncArgCurrent(WindowObject winobj, int argno,
00062 bool *isnull);
00063
00064 #endif