/usr/include/postgresql/10/server/windowapi.h is in postgresql-server-dev-10 10.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | /*-------------------------------------------------------------------------
*
* windowapi.h
* API for window functions to extract data from their window
*
* A window function does not receive its arguments in the normal way
* (and therefore the concept of strictness is irrelevant). Instead it
* receives a "WindowObject", which it can fetch with PG_WINDOW_OBJECT()
* (note V1 calling convention must be used). Correct call context can
* be tested with WindowObjectIsValid(). Although argument values are
* not passed, the call is correctly set up so that PG_NARGS() can be
* used and argument type information can be obtained with
* get_fn_expr_argtype(), get_fn_expr_arg_stable(), etc.
*
* Operations on the WindowObject allow the window function to find out
* the current row number, total number of rows in the partition, etc
* and to evaluate its argument expression(s) at various rows in the
* window partition. See the header comments for each WindowObject API
* function in nodeWindowAgg.c for details.
*
*
* Portions Copyright (c) 2000-2017, PostgreSQL Global Development Group
*
* src/include/windowapi.h
*
*-------------------------------------------------------------------------
*/
#ifndef WINDOWAPI_H
#define WINDOWAPI_H
/* values of "seektype" */
#define WINDOW_SEEK_CURRENT 0
#define WINDOW_SEEK_HEAD 1
#define WINDOW_SEEK_TAIL 2
/* this struct is private in nodeWindowAgg.c */
typedef struct WindowObjectData *WindowObject;
#define PG_WINDOW_OBJECT() ((WindowObject) fcinfo->context)
#define WindowObjectIsValid(winobj) \
((winobj) != NULL && IsA(winobj, WindowObjectData))
extern void *WinGetPartitionLocalMemory(WindowObject winobj, Size sz);
extern int64 WinGetCurrentPosition(WindowObject winobj);
extern int64 WinGetPartitionRowCount(WindowObject winobj);
extern void WinSetMarkPosition(WindowObject winobj, int64 markpos);
extern bool WinRowsArePeers(WindowObject winobj, int64 pos1, int64 pos2);
extern Datum WinGetFuncArgInPartition(WindowObject winobj, int argno,
int relpos, int seektype, bool set_mark,
bool *isnull, bool *isout);
extern Datum WinGetFuncArgInFrame(WindowObject winobj, int argno,
int relpos, int seektype, bool set_mark,
bool *isnull, bool *isout);
extern Datum WinGetFuncArgCurrent(WindowObject winobj, int argno,
bool *isnull);
#endif /* WINDOWAPI_H */
|