pg_window#

The pg_window table stores information about window functions. Window functions are often used to compose complex OLAP (online analytical processing) queries. Window functions are applied to partitioned result sets within the scope of a single query expression. A window partition is a subset of rows returned by a query, as defined in a special OVER() clause. Typical window functions are rank, dense_rank, and row_number. Each entry in pg_window is an extension of an entry in pg_proc. The pg_proc entry carries the window function’s name, input and output data types, and other information that is similar to ordinary functions.

Table 1. pg_catalog.pg_window

column

type

references

description

winfnoid

regproc

pg_proc.oid

The OID in pg_proc of the window function.

winrequireorder

boolean

The window function requires its window specification to have an ORDER BY clause.

winallowframe

boolean

The window function permits its window specification to have a ROWS or RANGE framing clause.

winpeercount

boolean

The peer group row count is required to compute this window function, so the Window node implementation must ‘look ahead’ as necessary to make this available in its internal state.

wincount

boolean

The partition row count is required to compute this window function.

winfunc

regproc

pg_proc.oid

The OID in pg_proc of a function to compute the value of an immediate-type window function.

winprefunc

regproc

pg_proc.oid

The OID in pg_proc of a preliminary window function to compute the partial value of a deferred-type window function.

winpretype

oid

pg_type.oid

The OID in pg_type of the preliminary window function’s result type.

winfinfunc

regproc

pg_proc.oid

The OID in pg_proc of a function to compute the final value of a deferred-type window function from the partition row count and the result of winprefunc.

winkind

char

A character indicating membership of the window function in a class of related functions:w - ordinary window functionsn - NTILE functionsf - FIRST_VALUE functionsl - LAST_VALUE functionsg - LAG functionsd - LEAD functions