pg_aggregate

目录pg_aggregate存储关于聚集函数的信息。聚集函数是对一个数值集合(典型的是每个匹配查询条件的行中的同一个列的值) 进行操作的函数,它返回从这些值中计算出的一个数值。 典型的聚集函数是 sumcountmaxpg_aggregate里的每个项都是一个pg_proc项的扩展。pg_proc项记载该聚集的名字、输入和输出数据类型,以及其他一些和普通函数类似的信息。

列名称

列类型

描述

aggfnoid

regproc

聚集函数的pg_proc OID。

aggkind

char

Aggregate kind:

  • n 表示 “普通” 聚集,。

  • o 表示 “有序集” 聚集。

  • h 表示 “假想集” 聚集。

aggnumdirectargs

int2

一个有序集或者假想集聚集的直接(非聚集)参数的数量,一个可变数组算作一个参数。 如果等于pronargs,该聚集必定是可变的并且该可变数组描述聚集参数以及最终直接参数。 对于普通聚集总是为零。

aggtransfn

regproc

转移函数。

aggfinalfn

regproc

最终函数(如果没有就为零)。

aggcombinefn

regproc

结合函数(如果没有就为零)。

aggserialfn

regproc

序列化函数(如果没有就为零)。

aggdeserialfn

regproc

反序列化函数(如果没有就为零)。

aggmtransfn

regproc

用于移动聚集模式的向前转移函数(如果没有就为零)。

aggminvtransfn

regproc

用于移动聚集模式的反向转移函数(如果没有就为零)。

aggmfinalfn

regproc

用于移动聚集模式的最终函数(如果没有就为零)。

aggfinalextra

bool

True 将传递额外的虚拟参数到 aggfinalfn

aggmfinalextra

bool

True 将传递额外的虚拟参数到 aggmfinalfn

aggfinalmodify

char

aggfinalfn 是否修改传递状态值:

  • 如果是只读则为r

  • 如果不能在aggfinalfn之后应用aggtransfn则为s

  • 如果它修改该值则为w

aggmfinalmodify

char

aggfinalmodify类似,但是用于aggmfinalfn

aggsortop

oid

相关联的排序操作符(如果没有则为0)。

aggtranstype

oid

聚集函数的内部转移(状态)数据的数据类型。

aggtransspace

int4

转移状态数据的近似平均尺寸(字节),或者为零表示使用一个默认估算值。

aggmtranstype

oid

聚集函数用于移动聚集欧氏的内部转移(状态)数据的数据类型(如果没有则为零)。

aggmtransspace

int4

移动聚合模式的转移状态数据的近似平均尺寸(字节),或者为零表示使用一个默认估算值。

agginitval

text

转移状态的初始值。这是一个文本域,它包含初始值的外部字符串表现形式。如果这个域为空,则转移状态值从空值开始。

aggminitval

text

用于移动聚集模式的转移状态初值。这是一个文本域,它包含了以其文本字符串形式表达的初值。 如果这个域为空,则转移状态值从空值开始。

新的聚集函数可通过CREATE AGGREGATE命令注册。