50.2. pg_aggregate
РкаÑалоге pg_aggregate Ñ
ÑаниÑÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾Ð± агÑегаÑнÑÑ
ÑÑнкÑиÑÑ
. ÐгÑегаÑÐ½Ð°Ñ ÑÑнкÑÐ¸Ñ â ÑÑо ÑÐ°ÐºÐ°Ñ ÑÑнкÑиÑ, коÑоÑÐ°Ñ ÑабоÑÐ°ÐµÑ Ñ Ð¼Ð½Ð¾Ð¶ÐµÑÑвом знаÑений (обÑÑно, Ñ ÑодеÑжимÑм одного ÑÑолбÑа вÑеÑ
ÑÑÑок, ÑдовлеÑвоÑÑÑÑиÑ
ÑÑÐ»Ð¾Ð²Ð¸Ñ Ð·Ð°Ð¿ÑоÑа) и возвÑаÑÐ°ÐµÑ Ð¾Ð´Ð½Ð¾ знаÑение, вÑÑиÑленное по ÑÑÐ¾Ð¼Ñ Ð¼Ð½Ð¾Ð¶ÐµÑÑвÑ. ТипиÑнÑе агÑегаÑнÑе ÑÑнкÑии â sum, count и max. ÐÑе запиÑи в pg_aggregate пÑедÑÑавлÑÑÑ Ñобой дополнение запиÑей в pg_proc. ÐапиÑÑ Ð² pg_proc опÑеделÑÐµÑ Ð¸Ð¼Ñ Ð°Ð³ÑегаÑной ÑÑнкÑии, ÑÐ¸Ð¿Ñ Ð²Ñ
однÑÑ
и вÑÑ
однÑÑ
даннÑÑ
, а Ñакже дÑÑгие ÑвойÑÑва, подобнÑе имеÑÑимÑÑ Ñ Ð¾Ð±ÑÑнÑÑ
ÑÑнкÑий.
ТаблиÑа 50.2. СÑолбÑÑ pg_aggregate
| ÐÐ¼Ñ | Тип | СÑÑлки | ÐпиÑание |
|---|---|---|---|
aggfnoid | regproc | | OID агÑегаÑной ÑÑнкÑии в pg_proc |
aggkind | char |  | Тип агÑегаÑной ÑÑнкÑии: n â обÑÑÐ½Ð°Ñ («normal»), o â ÑоÑÑиÑÑÑÑÐ°Ñ («ordered-set») или h â гипоÑезиÑÑÑÑÐ°Ñ («hypothetical-set») |
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, еÑли ÑоÑÑоÑние ÑолÑко ÑиÑаеÑÑÑ; s, еÑли ÑÑнкÑÐ¸Ñ aggtransfn нелÑÐ·Ñ Ð¿ÑименÑÑÑ Ð¿Ð¾Ñле aggfinalfn; и w, еÑли ÑоÑÑоÑние пеÑезапиÑÑваеÑÑÑ |
aggmfinalmodify | char |  | ÐналогиÑно aggfinalmodify, но Ð´Ð»Ñ aggmfinalfn |
aggsortop | oid | | СвÑзаннÑй опеÑаÑÐ¾Ñ ÑоÑÑиÑовки (нолÑ, еÑли его неÑ) |
aggtranstype | oid | | Тип даннÑÑ Ð²Ð½ÑÑÑеннего ÑоÑÑоÑÐ½Ð¸Ñ (пеÑÐµÑ Ð¾Ð´Ð°) агÑегаÑной ÑÑнкÑии |
aggtransspace | int4 |  | ÐÑиблизиÑелÑнÑй ÑÑедний ÑÐ°Ð·Ð¼ÐµÑ (в байÑÐ°Ñ ) даннÑÑ ÑоÑÑоÑÐ½Ð¸Ñ Ð¿ÐµÑÐµÑ Ð¾Ð´Ð°, либо Ð½Ð¾Ð»Ñ Ð´Ð»Ñ Ð²ÑбоÑа знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ |
aggmtranstype | oid | | Тип даннÑÑ Ð²Ð½ÑÑÑеннего ÑоÑÑоÑÐ½Ð¸Ñ (пеÑÐµÑ Ð¾Ð´Ð°) Ð´Ð»Ñ Ð°Ð³ÑегаÑной ÑÑнкÑии в Ñежиме движÑÑегоÑÑ Ð°Ð³ÑегаÑа (Ð½Ð¾Ð»Ñ Ð² ÑлÑÑае оÑÑÑÑÑÑвиÑ) |
aggmtransspace | int4 |  | ÐÑиблизиÑелÑнÑй ÑÑедний ÑÐ°Ð·Ð¼ÐµÑ (в байÑÐ°Ñ ) даннÑÑ ÑоÑÑоÑÐ½Ð¸Ñ Ð¿ÐµÑÐµÑ Ð¾Ð´Ð° Ð´Ð»Ñ Ñежима движÑÑегоÑÑ Ð°Ð³ÑегаÑа, либо Ð½Ð¾Ð»Ñ Ð´Ð»Ñ Ð²ÑбоÑа знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ |
agginitval | text |  | ÐаÑалÑное знаÑение Ð´Ð»Ñ ÑоÑÑоÑÐ½Ð¸Ñ Ð¿ÐµÑÐµÑ Ð¾Ð´Ð°. ÐÑо ÑекÑÑовое поле, ÑодеÑжаÑее знаÑение в виде внеÑнего ÑÑÑокового пÑедÑÑавлениÑ. ÐÑли ÑÑо поле ÑодеÑÐ¶Ð¸Ñ NULL, наÑалÑнÑм знаÑением ÑоÑÑоÑÐ½Ð¸Ñ Ð¿ÐµÑÐµÑ Ð¾Ð´Ð° бÑÐ´ÐµÑ NULL. |
aggminitval | text |  | ÐаÑалÑное знаÑение Ð´Ð»Ñ ÑоÑÑоÑÐ½Ð¸Ñ Ð¿ÐµÑÐµÑ Ð¾Ð´Ð° в Ñежиме движÑÑегоÑÑ Ð°Ð³ÑегаÑа. ÐÑо ÑекÑÑовое поле, ÑодеÑжаÑее знаÑение в виде внеÑнего ÑÑÑокового пÑедÑÑавлениÑ. ÐÑли ÑÑо поле ÑодеÑÐ¶Ð¸Ñ NULL, наÑалÑнÑм знаÑением ÑоÑÑоÑÐ½Ð¸Ñ Ð¿ÐµÑÐµÑ Ð¾Ð´Ð° бÑÐ´ÐµÑ NULL. |
ÐовÑе агÑегаÑнÑе ÑÑнкÑии ÑоздаÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ CREATE AGGREGATE. Ðа дополниÑелÑнÑми ÑведениÑми о ÑазÑабоÑке агÑегаÑнÑÑ ÑÑнкÑий, знаÑении ÑÑнкÑий пеÑÐµÑ Ð¾Ð´Ð° и Ñ. д. обÑаÑиÑеÑÑ Ðº РазделÑ 36.11.