pg_aggregate
pg_aggregate¶
pg_aggregate
存储关于聚集函数的信息。
聚集函数是对一个值集合(通常是来自于匹配某个查询条件的每个行的一个列值)进行操作并且返回从这些值计算出的一个值的函数。
典型的聚集函数是sum
、count
和max
。 pg_aggregate
里的每个项都是一个pg_proc
项的扩展。
pg_proc
的项记载该聚集的名字、输入输出的数据类型以及其他和普通函数类似的信息。
列 | 类型 | 参考 | 描述 |
---|---|---|---|
aggfnoid |
regproc | pg_proc.oid | 聚集函数的OID |
aggtransfn |
regproc | pg_proc.oid | 转移函数的OID |
aggcombinefn |
regproc | 预备函数的OID(如果没有就为0) | |
aggfinalfn |
regproc | pg_proc.oid | 最终函数的OID(如果没有就为0) |
agginitval |
text | 转移状态的初始值。 这是一个文本域,它包含初始值的外部字符串表现形式。 如果这个域为NULL,则转移状态从NULL开始 | |
aggsortop |
oid | pg_operator.oid | 相关的排序操作符的OID(如果没有则为零) |
aggtranstype |
oid | pg_type.oid | 聚集函数的内部转移(状态)数据的数据类型 |
aggtransspace |
int4 | pg_type.int4 | 估计的状态数据大小(默认估计为0) |
aggkind |
char | n表示“普通”聚集,o表示“有序集”聚集,或h表示“假想集”聚集 | |
aggnumdirectargs |
smallint | 一个有序集或者假想集聚集的直接(非聚集)参数的数量,一个可变数组算作一个参数。如果等于pronargs,该聚集必定是可变的并且该可变数组描述聚集参数以及最终直接参数。对于普通聚集总是为零。 | |
aggserialfn |
regproc | pg_proc.oid | 序列化函数(如果没有就为0) |
aggdeserialfn |
regproc | pg_proc.oid | 反序列化函数 (如果没有就为0) |
aggmtransfn |
regproc | pg_proc.oid | 用于移动聚集模式的向前转移函数(如果没有就为0) |
aggminvtransfn |
regproc | pg_proc.oid | 用于移动聚集模式的反向转移函数(如果没有就为0) |
aggmfinalfn |
regproc | pg_proc.oid | 用于移动聚集模式的最终函数(如果没有就为0) |
aggfinalextra |
boolean | True将传递额外的虚拟参数到aggfinalfn |
|
aggmfinalextra |
boolean | True将传递额外的虚拟参数到aggmfinalfn |
|
aggfinalmodify |
char | aggfinalfn 是否修改传递状态值:如果是只读则为r,如果不能在aggfinalfn 之后应用aggtransfn 则为s,或者如果它修改该值则为w。 |
|
aggmfinalmodify |
char | 和aggfinalmodify相 似,但是作用于aggmfinalfn |
|
aggmtranstype |
oid | pg_type.oid | 聚集函数用于移动聚集欧式的内部转移(状态)数据的数据类型(如果没有则为0) |
aggmtransspace |
integer | 移动聚合模式的转移状态数据的近似平均尺寸(字节),或者为0表示使用一个默认估算值。 | |
aggminitval |
text | 移动聚集模式的转移状态初值。这是一个文本域,它包含初始值的外部字符串表现形式。 如果这个域为NULL,则转移状态从NULL开始 |
Table 1. pg_catalog.pg_aggregate