| #---------------------------------------------------------------------- |
| # |
| # pg_aggregate.dat |
| # Initial contents of the pg_aggregate system catalog. |
| # |
| # Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group |
| # Portions Copyright (c) 1994, Regents of the University of California |
| # |
| # src/include/catalog/pg_aggregate.dat |
| # |
| #---------------------------------------------------------------------- |
| |
| [ |
| |
| # avg |
| { aggfnoid => 'avg(int8)', aggtransfn => 'int8_avg_accum', |
| aggfinalfn => 'numeric_poly_avg', aggcombinefn => 'int8_avg_combine', |
| aggserialfn => 'int8_avg_serialize', aggdeserialfn => 'int8_avg_deserialize', |
| aggmtransfn => 'int8_avg_accum', aggminvtransfn => 'int8_avg_accum_inv', |
| aggmfinalfn => 'numeric_poly_avg', aggtranstype => 'internal', |
| aggtransspace => '48', aggmtranstype => 'internal', aggmtransspace => '48', |
| aggrepsafeexec => 't' }, |
| { aggfnoid => 'avg(int4)', aggtransfn => 'int4_avg_accum', |
| aggfinalfn => 'int8_avg', aggcombinefn => 'int4_avg_combine', |
| aggmtransfn => 'int4_avg_accum', aggminvtransfn => 'int4_avg_accum_inv', |
| aggmfinalfn => 'int8_avg', aggtranstype => '_int8', aggmtranstype => '_int8', |
| agginitval => '{0,0}', aggminitval => '{0,0}', aggrepsafeexec => 't' }, |
| { aggfnoid => 'avg(int2)', aggtransfn => 'int2_avg_accum', |
| aggfinalfn => 'int8_avg', aggcombinefn => 'int4_avg_combine', |
| aggmtransfn => 'int2_avg_accum', aggminvtransfn => 'int2_avg_accum_inv', |
| aggmfinalfn => 'int8_avg', aggtranstype => '_int8', aggmtranstype => '_int8', |
| agginitval => '{0,0}', aggminitval => '{0,0}', aggrepsafeexec => 't' }, |
| { aggfnoid => 'avg(numeric)', aggtransfn => 'numeric_avg_accum', |
| aggfinalfn => 'numeric_avg', aggcombinefn => 'numeric_avg_combine', |
| aggserialfn => 'numeric_avg_serialize', |
| aggdeserialfn => 'numeric_avg_deserialize', |
| aggmtransfn => 'numeric_avg_accum', aggminvtransfn => 'numeric_accum_inv', |
| aggmfinalfn => 'numeric_avg', aggtranstype => 'internal', |
| aggtransspace => '128', aggmtranstype => 'internal', |
| aggmtransspace => '128' }, |
| { aggfnoid => 'avg(float4)', aggtransfn => 'float4_accum', |
| aggfinalfn => 'float8_avg', aggcombinefn => 'float8_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0}' }, |
| { aggfnoid => 'avg(float8)', aggtransfn => 'float8_accum', |
| aggfinalfn => 'float8_avg', aggcombinefn => 'float8_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0}' }, |
| { aggfnoid => 'avg(interval)', aggtransfn => 'interval_accum', |
| aggfinalfn => 'interval_avg', aggcombinefn => 'interval_combine', |
| aggmtransfn => 'interval_accum', aggminvtransfn => 'interval_accum_inv', |
| aggmfinalfn => 'interval_avg', aggtranstype => '_interval', |
| aggmtranstype => '_interval', agginitval => '{0 second,0 second}', |
| aggminitval => '{0 second,0 second}' }, |
| |
| # sum |
| { aggfnoid => 'sum(int8)', aggtransfn => 'int8_avg_accum', |
| aggfinalfn => 'numeric_poly_sum', aggcombinefn => 'int8_avg_combine', |
| aggserialfn => 'int8_avg_serialize', aggdeserialfn => 'int8_avg_deserialize', |
| aggmtransfn => 'int8_avg_accum', aggminvtransfn => 'int8_avg_accum_inv', |
| aggmfinalfn => 'numeric_poly_sum', aggtranstype => 'internal', |
| aggtransspace => '48', aggmtranstype => 'internal', aggmtransspace => '48', |
| aggrepsafeexec => 't' }, |
| { aggfnoid => 'sum(int4)', aggtransfn => 'int4_sum', aggcombinefn => 'int8pl', |
| aggmtransfn => 'int4_avg_accum', aggminvtransfn => 'int4_avg_accum_inv', |
| aggmfinalfn => 'int2int4_sum', aggtranstype => 'int8', |
| aggmtranstype => '_int8', aggminitval => '{0,0}', aggrepsafeexec => 't' }, |
| { aggfnoid => 'sum(int2)', aggtransfn => 'int2_sum', aggcombinefn => 'int8pl', |
| aggmtransfn => 'int2_avg_accum', aggminvtransfn => 'int2_avg_accum_inv', |
| aggmfinalfn => 'int2int4_sum', aggtranstype => 'int8', |
| aggmtranstype => '_int8', aggminitval => '{0,0}' }, |
| { aggfnoid => 'sum(float4)', aggtransfn => 'float4pl', |
| aggcombinefn => 'float4pl', aggtranstype => 'float4' }, |
| { aggfnoid => 'sum(float8)', aggtransfn => 'float8pl', |
| aggcombinefn => 'float8pl', aggtranstype => 'float8' }, |
| { aggfnoid => 'sum(money)', aggtransfn => 'cash_pl', aggcombinefn => 'cash_pl', |
| aggmtransfn => 'cash_pl', aggminvtransfn => 'cash_mi', |
| aggtranstype => 'money', aggmtranstype => 'money' }, |
| { aggfnoid => 'sum(interval)', aggtransfn => 'interval_pl', |
| aggcombinefn => 'interval_pl', aggmtransfn => 'interval_pl', |
| aggminvtransfn => 'interval_mi', aggtranstype => 'interval', |
| aggmtranstype => 'interval' }, |
| { aggfnoid => 'sum(numeric)', aggtransfn => 'numeric_avg_accum', |
| aggfinalfn => 'numeric_sum', aggcombinefn => 'numeric_avg_combine', |
| aggserialfn => 'numeric_avg_serialize', |
| aggdeserialfn => 'numeric_avg_deserialize', |
| aggmtransfn => 'numeric_avg_accum', aggminvtransfn => 'numeric_accum_inv', |
| aggmfinalfn => 'numeric_sum', aggtranstype => 'internal', |
| aggtransspace => '128', aggmtranstype => 'internal', |
| aggmtransspace => '128' }, |
| |
| # max |
| { aggfnoid => 'max(int8)', aggtransfn => 'int8larger', |
| aggcombinefn => 'int8larger', aggsortop => '>(int8,int8)', |
| aggtranstype => 'int8', aggrepsafeexec => 't' }, |
| { aggfnoid => 'max(int4)', aggtransfn => 'int4larger', |
| aggcombinefn => 'int4larger', aggsortop => '>(int4,int4)', |
| aggtranstype => 'int4', aggrepsafeexec => 't' }, |
| { aggfnoid => 'max(int2)', aggtransfn => 'int2larger', |
| aggcombinefn => 'int2larger', aggsortop => '>(int2,int2)', |
| aggtranstype => 'int2', aggrepsafeexec => 't' }, |
| { aggfnoid => 'max(oid)', aggtransfn => 'oidlarger', |
| aggcombinefn => 'oidlarger', aggsortop => '>(oid,oid)', aggtranstype => 'oid', |
| aggrepsafeexec => 't' }, |
| { aggfnoid => 'max(float4)', aggtransfn => 'float4larger', |
| aggcombinefn => 'float4larger', aggsortop => '>(float4,float4)', |
| aggtranstype => 'float4', aggrepsafeexec => 't' }, |
| { aggfnoid => 'max(float8)', aggtransfn => 'float8larger', |
| aggcombinefn => 'float8larger', aggsortop => '>(float8,float8)', |
| aggtranstype => 'float8', aggrepsafeexec => 't' }, |
| { aggfnoid => 'max(date)', aggtransfn => 'date_larger', |
| aggcombinefn => 'date_larger', aggsortop => '>(date,date)', |
| aggtranstype => 'date', aggrepsafeexec => 't' }, |
| { aggfnoid => 'max(time)', aggtransfn => 'time_larger', |
| aggcombinefn => 'time_larger', aggsortop => '>(time,time)', |
| aggtranstype => 'time', aggrepsafeexec => 't' }, |
| { aggfnoid => 'max(timetz)', aggtransfn => 'timetz_larger', |
| aggcombinefn => 'timetz_larger', aggsortop => '>(timetz,timetz)', |
| aggtranstype => 'timetz', aggrepsafeexec => 't' }, |
| { aggfnoid => 'max(money)', aggtransfn => 'cashlarger', |
| aggcombinefn => 'cashlarger', aggsortop => '>(money,money)', |
| aggtranstype => 'money', aggrepsafeexec => 't' }, |
| { aggfnoid => 'max(timestamp)', aggtransfn => 'timestamp_larger', |
| aggcombinefn => 'timestamp_larger', aggsortop => '>(timestamp,timestamp)', |
| aggtranstype => 'timestamp', aggrepsafeexec => 't' }, |
| { aggfnoid => 'max(timestamptz)', aggtransfn => 'timestamptz_larger', |
| aggcombinefn => 'timestamptz_larger', |
| aggsortop => '>(timestamptz,timestamptz)', aggtranstype => 'timestamptz', |
| aggrepsafeexec => 't' }, |
| { aggfnoid => 'max(interval)', aggtransfn => 'interval_larger', |
| aggcombinefn => 'interval_larger', aggsortop => '>(interval,interval)', |
| aggtranstype => 'interval', aggrepsafeexec => 't' }, |
| { aggfnoid => 'max(text)', aggtransfn => 'text_larger', |
| aggcombinefn => 'text_larger', aggsortop => '>(text,text)', |
| aggtranstype => 'text', aggrepsafeexec => 't' }, |
| { aggfnoid => 'max(numeric)', aggtransfn => 'numeric_larger', |
| aggcombinefn => 'numeric_larger', aggsortop => '>(numeric,numeric)', |
| aggtranstype => 'numeric', aggrepsafeexec => 't' }, |
| { aggfnoid => 'max(anyarray)', aggtransfn => 'array_larger', |
| aggcombinefn => 'array_larger', aggsortop => '>(anyarray,anyarray)', |
| aggtranstype => 'anyarray', aggrepsafeexec => 't' }, |
| { aggfnoid => 'max(bpchar)', aggtransfn => 'bpchar_larger', |
| aggcombinefn => 'bpchar_larger', aggsortop => '>(bpchar,bpchar)', |
| aggtranstype => 'bpchar', aggrepsafeexec => 't' }, |
| { aggfnoid => 'max(tid)', aggtransfn => 'tidlarger', |
| aggcombinefn => 'tidlarger', aggsortop => '>(tid,tid)', aggtranstype => 'tid', |
| aggrepsafeexec => 't' }, |
| { aggfnoid => 'max(anyenum)', aggtransfn => 'enum_larger', |
| aggcombinefn => 'enum_larger', aggsortop => '>(anyenum,anyenum)', |
| aggtranstype => 'anyenum', aggrepsafeexec => 't' }, |
| { aggfnoid => 'max(inet)', aggtransfn => 'network_larger', |
| aggcombinefn => 'network_larger', aggsortop => '>(inet,inet)', |
| aggtranstype => 'inet', aggrepsafeexec => 't' }, |
| { aggfnoid => 'max(pg_lsn)', aggtransfn => 'pg_lsn_larger', |
| aggcombinefn => 'pg_lsn_larger', aggsortop => '>(pg_lsn,pg_lsn)', |
| aggtranstype => 'pg_lsn' }, |
| |
| # min |
| { aggfnoid => 'min(int8)', aggtransfn => 'int8smaller', |
| aggcombinefn => 'int8smaller', aggsortop => '<(int8,int8)', |
| aggtranstype => 'int8', aggrepsafeexec => 't' }, |
| { aggfnoid => 'min(int4)', aggtransfn => 'int4smaller', |
| aggcombinefn => 'int4smaller', aggsortop => '<(int4,int4)', |
| aggtranstype => 'int4', aggrepsafeexec => 't' }, |
| { aggfnoid => 'min(int2)', aggtransfn => 'int2smaller', |
| aggcombinefn => 'int2smaller', aggsortop => '<(int2,int2)', |
| aggtranstype => 'int2', aggrepsafeexec => 't' }, |
| { aggfnoid => 'min(oid)', aggtransfn => 'oidsmaller', |
| aggcombinefn => 'oidsmaller', aggsortop => '<(oid,oid)', |
| aggtranstype => 'oid', aggrepsafeexec => 't' }, |
| { aggfnoid => 'min(float4)', aggtransfn => 'float4smaller', |
| aggcombinefn => 'float4smaller', aggsortop => '<(float4,float4)', |
| aggtranstype => 'float4', aggrepsafeexec => 't' }, |
| { aggfnoid => 'min(float8)', aggtransfn => 'float8smaller', |
| aggcombinefn => 'float8smaller', aggsortop => '<(float8,float8)', |
| aggtranstype => 'float8', aggrepsafeexec => 't' }, |
| { aggfnoid => 'min(date)', aggtransfn => 'date_smaller', |
| aggcombinefn => 'date_smaller', aggsortop => '<(date,date)', |
| aggtranstype => 'date', aggrepsafeexec => 't' }, |
| { aggfnoid => 'min(time)', aggtransfn => 'time_smaller', |
| aggcombinefn => 'time_smaller', aggsortop => '<(time,time)', |
| aggtranstype => 'time', aggrepsafeexec => 't' }, |
| { aggfnoid => 'min(timetz)', aggtransfn => 'timetz_smaller', |
| aggcombinefn => 'timetz_smaller', aggsortop => '<(timetz,timetz)', |
| aggtranstype => 'timetz', aggrepsafeexec => 't' }, |
| { aggfnoid => 'min(money)', aggtransfn => 'cashsmaller', |
| aggcombinefn => 'cashsmaller', aggsortop => '<(money,money)', |
| aggtranstype => 'money', aggrepsafeexec => 't' }, |
| { aggfnoid => 'min(timestamp)', aggtransfn => 'timestamp_smaller', |
| aggcombinefn => 'timestamp_smaller', aggsortop => '<(timestamp,timestamp)', |
| aggtranstype => 'timestamp', aggrepsafeexec => 't' }, |
| { aggfnoid => 'min(timestamptz)', aggtransfn => 'timestamptz_smaller', |
| aggcombinefn => 'timestamptz_smaller', |
| aggsortop => '<(timestamptz,timestamptz)', aggtranstype => 'timestamptz', |
| aggrepsafeexec => 't' }, |
| { aggfnoid => 'min(interval)', aggtransfn => 'interval_smaller', |
| aggcombinefn => 'interval_smaller', aggsortop => '<(interval,interval)', |
| aggtranstype => 'interval', aggrepsafeexec => 't' }, |
| { aggfnoid => 'min(text)', aggtransfn => 'text_smaller', |
| aggcombinefn => 'text_smaller', aggsortop => '<(text,text)', |
| aggtranstype => 'text', aggrepsafeexec => 't' }, |
| { aggfnoid => 'min(numeric)', aggtransfn => 'numeric_smaller', |
| aggcombinefn => 'numeric_smaller', aggsortop => '<(numeric,numeric)', |
| aggtranstype => 'numeric', aggrepsafeexec => 't' }, |
| { aggfnoid => 'min(anyarray)', aggtransfn => 'array_smaller', |
| aggcombinefn => 'array_smaller', aggsortop => '<(anyarray,anyarray)', |
| aggtranstype => 'anyarray', aggrepsafeexec => 't' }, |
| { aggfnoid => 'min(bpchar)', aggtransfn => 'bpchar_smaller', |
| aggcombinefn => 'bpchar_smaller', aggsortop => '<(bpchar,bpchar)', |
| aggtranstype => 'bpchar', aggrepsafeexec => 't' }, |
| { aggfnoid => 'min(tid)', aggtransfn => 'tidsmaller', |
| aggcombinefn => 'tidsmaller', aggsortop => '<(tid,tid)', |
| aggtranstype => 'tid', aggrepsafeexec => 't' }, |
| { aggfnoid => 'min(anyenum)', aggtransfn => 'enum_smaller', |
| aggcombinefn => 'enum_smaller', aggsortop => '<(anyenum,anyenum)', |
| aggtranstype => 'anyenum', aggrepsafeexec => 't' }, |
| { aggfnoid => 'min(inet)', aggtransfn => 'network_smaller', |
| aggcombinefn => 'network_smaller', aggsortop => '<(inet,inet)', |
| aggtranstype => 'inet', aggrepsafeexec => 't' }, |
| { aggfnoid => 'min(pg_lsn)', aggtransfn => 'pg_lsn_smaller', |
| aggcombinefn => 'pg_lsn_smaller', aggsortop => '<(pg_lsn,pg_lsn)', |
| aggtranstype => 'pg_lsn' }, |
| |
| # count |
| { aggfnoid => 'count(any)', aggtransfn => 'int8inc_any', |
| aggcombinefn => 'int8pl', aggmtransfn => 'int8inc_any', |
| aggminvtransfn => 'int8dec_any', aggtranstype => 'int8', |
| aggmtranstype => 'int8', agginitval => '0', aggminitval => '0', |
| aggrepsafeexec => 't' }, |
| { aggfnoid => 'count()', aggtransfn => 'int8inc', aggcombinefn => 'int8pl', |
| aggmtransfn => 'int8inc', aggminvtransfn => 'int8dec', aggtranstype => 'int8', |
| aggmtranstype => 'int8', agginitval => '0', aggminitval => '0', |
| aggrepsafeexec => 't' }, |
| |
| # var_pop |
| { aggfnoid => 'var_pop(int8)', aggtransfn => 'int8_accum', |
| aggfinalfn => 'numeric_var_pop', aggcombinefn => 'numeric_combine', |
| aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', |
| aggmtransfn => 'int8_accum', aggminvtransfn => 'int8_accum_inv', |
| aggmfinalfn => 'numeric_var_pop', aggtranstype => 'internal', |
| aggtransspace => '128', aggmtranstype => 'internal', |
| aggmtransspace => '128' }, |
| { aggfnoid => 'var_pop(int4)', aggtransfn => 'int4_accum', |
| aggfinalfn => 'numeric_poly_var_pop', aggcombinefn => 'numeric_poly_combine', |
| aggserialfn => 'numeric_poly_serialize', |
| aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int4_accum', |
| aggminvtransfn => 'int4_accum_inv', aggmfinalfn => 'numeric_poly_var_pop', |
| aggtranstype => 'internal', aggtransspace => '48', |
| aggmtranstype => 'internal', aggmtransspace => '48' }, |
| { aggfnoid => 'var_pop(int2)', aggtransfn => 'int2_accum', |
| aggfinalfn => 'numeric_poly_var_pop', aggcombinefn => 'numeric_poly_combine', |
| aggserialfn => 'numeric_poly_serialize', |
| aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int2_accum', |
| aggminvtransfn => 'int2_accum_inv', aggmfinalfn => 'numeric_poly_var_pop', |
| aggtranstype => 'internal', aggtransspace => '48', |
| aggmtranstype => 'internal', aggmtransspace => '48' }, |
| { aggfnoid => 'var_pop(float4)', aggtransfn => 'float4_accum', |
| aggfinalfn => 'float8_var_pop', aggcombinefn => 'float8_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0}' }, |
| { aggfnoid => 'var_pop(float8)', aggtransfn => 'float8_accum', |
| aggfinalfn => 'float8_var_pop', aggcombinefn => 'float8_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0}' }, |
| { aggfnoid => 'var_pop(numeric)', aggtransfn => 'numeric_accum', |
| aggfinalfn => 'numeric_var_pop', aggcombinefn => 'numeric_combine', |
| aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', |
| aggmtransfn => 'numeric_accum', aggminvtransfn => 'numeric_accum_inv', |
| aggmfinalfn => 'numeric_var_pop', aggtranstype => 'internal', |
| aggtransspace => '128', aggmtranstype => 'internal', |
| aggmtransspace => '128' }, |
| |
| # var_samp |
| { aggfnoid => 'var_samp(int8)', aggtransfn => 'int8_accum', |
| aggfinalfn => 'numeric_var_samp', aggcombinefn => 'numeric_combine', |
| aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', |
| aggmtransfn => 'int8_accum', aggminvtransfn => 'int8_accum_inv', |
| aggmfinalfn => 'numeric_var_samp', aggtranstype => 'internal', |
| aggtransspace => '128', aggmtranstype => 'internal', |
| aggmtransspace => '128' }, |
| { aggfnoid => 'var_samp(int4)', aggtransfn => 'int4_accum', |
| aggfinalfn => 'numeric_poly_var_samp', aggcombinefn => 'numeric_poly_combine', |
| aggserialfn => 'numeric_poly_serialize', |
| aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int4_accum', |
| aggminvtransfn => 'int4_accum_inv', aggmfinalfn => 'numeric_poly_var_samp', |
| aggtranstype => 'internal', aggtransspace => '48', |
| aggmtranstype => 'internal', aggmtransspace => '48' }, |
| { aggfnoid => 'var_samp(int2)', aggtransfn => 'int2_accum', |
| aggfinalfn => 'numeric_poly_var_samp', aggcombinefn => 'numeric_poly_combine', |
| aggserialfn => 'numeric_poly_serialize', |
| aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int2_accum', |
| aggminvtransfn => 'int2_accum_inv', aggmfinalfn => 'numeric_poly_var_samp', |
| aggtranstype => 'internal', aggtransspace => '48', |
| aggmtranstype => 'internal', aggmtransspace => '48' }, |
| { aggfnoid => 'var_samp(float4)', aggtransfn => 'float4_accum', |
| aggfinalfn => 'float8_var_samp', aggcombinefn => 'float8_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0}' }, |
| { aggfnoid => 'var_samp(float8)', aggtransfn => 'float8_accum', |
| aggfinalfn => 'float8_var_samp', aggcombinefn => 'float8_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0}' }, |
| { aggfnoid => 'var_samp(numeric)', aggtransfn => 'numeric_accum', |
| aggfinalfn => 'numeric_var_samp', aggcombinefn => 'numeric_combine', |
| aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', |
| aggmtransfn => 'numeric_accum', aggminvtransfn => 'numeric_accum_inv', |
| aggmfinalfn => 'numeric_var_samp', aggtranstype => 'internal', |
| aggtransspace => '128', aggmtranstype => 'internal', |
| aggmtransspace => '128' }, |
| |
| # variance: historical Postgres syntax for var_samp |
| { aggfnoid => 'variance(int8)', aggtransfn => 'int8_accum', |
| aggfinalfn => 'numeric_var_samp', aggcombinefn => 'numeric_combine', |
| aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', |
| aggmtransfn => 'int8_accum', aggminvtransfn => 'int8_accum_inv', |
| aggmfinalfn => 'numeric_var_samp', aggtranstype => 'internal', |
| aggtransspace => '128', aggmtranstype => 'internal', |
| aggmtransspace => '128' }, |
| { aggfnoid => 'variance(int4)', aggtransfn => 'int4_accum', |
| aggfinalfn => 'numeric_poly_var_samp', aggcombinefn => 'numeric_poly_combine', |
| aggserialfn => 'numeric_poly_serialize', |
| aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int4_accum', |
| aggminvtransfn => 'int4_accum_inv', aggmfinalfn => 'numeric_poly_var_samp', |
| aggtranstype => 'internal', aggtransspace => '48', |
| aggmtranstype => 'internal', aggmtransspace => '48' }, |
| { aggfnoid => 'variance(int2)', aggtransfn => 'int2_accum', |
| aggfinalfn => 'numeric_poly_var_samp', aggcombinefn => 'numeric_poly_combine', |
| aggserialfn => 'numeric_poly_serialize', |
| aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int2_accum', |
| aggminvtransfn => 'int2_accum_inv', aggmfinalfn => 'numeric_poly_var_samp', |
| aggtranstype => 'internal', aggtransspace => '48', |
| aggmtranstype => 'internal', aggmtransspace => '48' }, |
| { aggfnoid => 'variance(float4)', aggtransfn => 'float4_accum', |
| aggfinalfn => 'float8_var_samp', aggcombinefn => 'float8_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0}' }, |
| { aggfnoid => 'variance(float8)', aggtransfn => 'float8_accum', |
| aggfinalfn => 'float8_var_samp', aggcombinefn => 'float8_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0}' }, |
| { aggfnoid => 'variance(numeric)', aggtransfn => 'numeric_accum', |
| aggfinalfn => 'numeric_var_samp', aggcombinefn => 'numeric_combine', |
| aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', |
| aggmtransfn => 'numeric_accum', aggminvtransfn => 'numeric_accum_inv', |
| aggmfinalfn => 'numeric_var_samp', aggtranstype => 'internal', |
| aggtransspace => '128', aggmtranstype => 'internal', |
| aggmtransspace => '128' }, |
| |
| # stddev_pop |
| { aggfnoid => 'stddev_pop(int8)', aggtransfn => 'int8_accum', |
| aggfinalfn => 'numeric_stddev_pop', aggcombinefn => 'numeric_combine', |
| aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', |
| aggmtransfn => 'int8_accum', aggminvtransfn => 'int8_accum_inv', |
| aggmfinalfn => 'numeric_stddev_pop', aggtranstype => 'internal', |
| aggtransspace => '128', aggmtranstype => 'internal', |
| aggmtransspace => '128' }, |
| { aggfnoid => 'stddev_pop(int4)', aggtransfn => 'int4_accum', |
| aggfinalfn => 'numeric_poly_stddev_pop', |
| aggcombinefn => 'numeric_poly_combine', |
| aggserialfn => 'numeric_poly_serialize', |
| aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int4_accum', |
| aggminvtransfn => 'int4_accum_inv', aggmfinalfn => 'numeric_poly_stddev_pop', |
| aggtranstype => 'internal', aggtransspace => '48', |
| aggmtranstype => 'internal', aggmtransspace => '48' }, |
| { aggfnoid => 'stddev_pop(int2)', aggtransfn => 'int2_accum', |
| aggfinalfn => 'numeric_poly_stddev_pop', |
| aggcombinefn => 'numeric_poly_combine', |
| aggserialfn => 'numeric_poly_serialize', |
| aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int2_accum', |
| aggminvtransfn => 'int2_accum_inv', aggmfinalfn => 'numeric_poly_stddev_pop', |
| aggtranstype => 'internal', aggtransspace => '48', |
| aggmtranstype => 'internal', aggmtransspace => '48' }, |
| { aggfnoid => 'stddev_pop(float4)', aggtransfn => 'float4_accum', |
| aggfinalfn => 'float8_stddev_pop', aggcombinefn => 'float8_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0}' }, |
| { aggfnoid => 'stddev_pop(float8)', aggtransfn => 'float8_accum', |
| aggfinalfn => 'float8_stddev_pop', aggcombinefn => 'float8_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0}' }, |
| { aggfnoid => 'stddev_pop(numeric)', aggtransfn => 'numeric_accum', |
| aggfinalfn => 'numeric_stddev_pop', aggcombinefn => 'numeric_combine', |
| aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', |
| aggmtransfn => 'numeric_accum', aggminvtransfn => 'numeric_accum_inv', |
| aggmfinalfn => 'numeric_stddev_pop', aggtranstype => 'internal', |
| aggtransspace => '128', aggmtranstype => 'internal', |
| aggmtransspace => '128' }, |
| |
| # stddev_samp |
| { aggfnoid => 'stddev_samp(int8)', aggtransfn => 'int8_accum', |
| aggfinalfn => 'numeric_stddev_samp', aggcombinefn => 'numeric_combine', |
| aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', |
| aggmtransfn => 'int8_accum', aggminvtransfn => 'int8_accum_inv', |
| aggmfinalfn => 'numeric_stddev_samp', aggtranstype => 'internal', |
| aggtransspace => '128', aggmtranstype => 'internal', |
| aggmtransspace => '128' }, |
| { aggfnoid => 'stddev_samp(int4)', aggtransfn => 'int4_accum', |
| aggfinalfn => 'numeric_poly_stddev_samp', |
| aggcombinefn => 'numeric_poly_combine', |
| aggserialfn => 'numeric_poly_serialize', |
| aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int4_accum', |
| aggminvtransfn => 'int4_accum_inv', aggmfinalfn => 'numeric_poly_stddev_samp', |
| aggtranstype => 'internal', aggtransspace => '48', |
| aggmtranstype => 'internal', aggmtransspace => '48' }, |
| { aggfnoid => 'stddev_samp(int2)', aggtransfn => 'int2_accum', |
| aggfinalfn => 'numeric_poly_stddev_samp', |
| aggcombinefn => 'numeric_poly_combine', |
| aggserialfn => 'numeric_poly_serialize', |
| aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int2_accum', |
| aggminvtransfn => 'int2_accum_inv', aggmfinalfn => 'numeric_poly_stddev_samp', |
| aggtranstype => 'internal', aggtransspace => '48', |
| aggmtranstype => 'internal', aggmtransspace => '48' }, |
| { aggfnoid => 'stddev_samp(float4)', aggtransfn => 'float4_accum', |
| aggfinalfn => 'float8_stddev_samp', aggcombinefn => 'float8_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0}' }, |
| { aggfnoid => 'stddev_samp(float8)', aggtransfn => 'float8_accum', |
| aggfinalfn => 'float8_stddev_samp', aggcombinefn => 'float8_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0}' }, |
| { aggfnoid => 'stddev_samp(numeric)', aggtransfn => 'numeric_accum', |
| aggfinalfn => 'numeric_stddev_samp', aggcombinefn => 'numeric_combine', |
| aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', |
| aggmtransfn => 'numeric_accum', aggminvtransfn => 'numeric_accum_inv', |
| aggmfinalfn => 'numeric_stddev_samp', aggtranstype => 'internal', |
| aggtransspace => '128', aggmtranstype => 'internal', |
| aggmtransspace => '128' }, |
| |
| # stddev: historical Postgres syntax for stddev_samp |
| { aggfnoid => 'stddev(int8)', aggtransfn => 'int8_accum', |
| aggfinalfn => 'numeric_stddev_samp', aggcombinefn => 'numeric_combine', |
| aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', |
| aggmtransfn => 'int8_accum', aggminvtransfn => 'int8_accum_inv', |
| aggmfinalfn => 'numeric_stddev_samp', aggtranstype => 'internal', |
| aggtransspace => '128', aggmtranstype => 'internal', |
| aggmtransspace => '128' }, |
| { aggfnoid => 'stddev(int4)', aggtransfn => 'int4_accum', |
| aggfinalfn => 'numeric_poly_stddev_samp', |
| aggcombinefn => 'numeric_poly_combine', |
| aggserialfn => 'numeric_poly_serialize', |
| aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int4_accum', |
| aggminvtransfn => 'int4_accum_inv', aggmfinalfn => 'numeric_poly_stddev_samp', |
| aggtranstype => 'internal', aggtransspace => '48', |
| aggmtranstype => 'internal', aggmtransspace => '48' }, |
| { aggfnoid => 'stddev(int2)', aggtransfn => 'int2_accum', |
| aggfinalfn => 'numeric_poly_stddev_samp', |
| aggcombinefn => 'numeric_poly_combine', |
| aggserialfn => 'numeric_poly_serialize', |
| aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int2_accum', |
| aggminvtransfn => 'int2_accum_inv', aggmfinalfn => 'numeric_poly_stddev_samp', |
| aggtranstype => 'internal', aggtransspace => '48', |
| aggmtranstype => 'internal', aggmtransspace => '48' }, |
| { aggfnoid => 'stddev(float4)', aggtransfn => 'float4_accum', |
| aggfinalfn => 'float8_stddev_samp', aggcombinefn => 'float8_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0}' }, |
| { aggfnoid => 'stddev(float8)', aggtransfn => 'float8_accum', |
| aggfinalfn => 'float8_stddev_samp', aggcombinefn => 'float8_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0}' }, |
| { aggfnoid => 'stddev(numeric)', aggtransfn => 'numeric_accum', |
| aggfinalfn => 'numeric_stddev_samp', aggcombinefn => 'numeric_combine', |
| aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', |
| aggmtransfn => 'numeric_accum', aggminvtransfn => 'numeric_accum_inv', |
| aggmfinalfn => 'numeric_stddev_samp', aggtranstype => 'internal', |
| aggtransspace => '128', aggmtranstype => 'internal', |
| aggmtransspace => '128' }, |
| |
| # SQL2003 binary regression aggregates |
| { aggfnoid => 'regr_count', aggtransfn => 'int8inc_float8_float8', |
| aggcombinefn => 'int8pl', aggtranstype => 'int8', agginitval => '0' }, |
| { aggfnoid => 'regr_sxx', aggtransfn => 'float8_regr_accum', |
| aggfinalfn => 'float8_regr_sxx', aggcombinefn => 'float8_regr_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0,0,0,0}' }, |
| { aggfnoid => 'regr_syy', aggtransfn => 'float8_regr_accum', |
| aggfinalfn => 'float8_regr_syy', aggcombinefn => 'float8_regr_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0,0,0,0}' }, |
| { aggfnoid => 'regr_sxy', aggtransfn => 'float8_regr_accum', |
| aggfinalfn => 'float8_regr_sxy', aggcombinefn => 'float8_regr_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0,0,0,0}' }, |
| { aggfnoid => 'regr_avgx', aggtransfn => 'float8_regr_accum', |
| aggfinalfn => 'float8_regr_avgx', aggcombinefn => 'float8_regr_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0,0,0,0}' }, |
| { aggfnoid => 'regr_avgy', aggtransfn => 'float8_regr_accum', |
| aggfinalfn => 'float8_regr_avgy', aggcombinefn => 'float8_regr_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0,0,0,0}' }, |
| { aggfnoid => 'regr_r2', aggtransfn => 'float8_regr_accum', |
| aggfinalfn => 'float8_regr_r2', aggcombinefn => 'float8_regr_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0,0,0,0}' }, |
| { aggfnoid => 'regr_slope', aggtransfn => 'float8_regr_accum', |
| aggfinalfn => 'float8_regr_slope', aggcombinefn => 'float8_regr_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0,0,0,0}' }, |
| { aggfnoid => 'regr_intercept', aggtransfn => 'float8_regr_accum', |
| aggfinalfn => 'float8_regr_intercept', aggcombinefn => 'float8_regr_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0,0,0,0}' }, |
| { aggfnoid => 'covar_pop', aggtransfn => 'float8_regr_accum', |
| aggfinalfn => 'float8_covar_pop', aggcombinefn => 'float8_regr_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0,0,0,0}' }, |
| { aggfnoid => 'covar_samp', aggtransfn => 'float8_regr_accum', |
| aggfinalfn => 'float8_covar_samp', aggcombinefn => 'float8_regr_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0,0,0,0}' }, |
| { aggfnoid => 'corr', aggtransfn => 'float8_regr_accum', |
| aggfinalfn => 'float8_corr', aggcombinefn => 'float8_regr_combine', |
| aggtranstype => '_float8', agginitval => '{0,0,0,0,0,0}' }, |
| |
| # boolean-and and boolean-or |
| { aggfnoid => 'bool_and', aggtransfn => 'booland_statefunc', |
| aggcombinefn => 'booland_statefunc', aggmtransfn => 'bool_accum', |
| aggminvtransfn => 'bool_accum_inv', aggmfinalfn => 'bool_alltrue', |
| aggsortop => '<(bool,bool)', aggtranstype => 'bool', |
| aggmtranstype => 'internal', aggmtransspace => '16' }, |
| { aggfnoid => 'bool_or', aggtransfn => 'boolor_statefunc', |
| aggcombinefn => 'boolor_statefunc', aggmtransfn => 'bool_accum', |
| aggminvtransfn => 'bool_accum_inv', aggmfinalfn => 'bool_anytrue', |
| aggsortop => '>(bool,bool)', aggtranstype => 'bool', |
| aggmtranstype => 'internal', aggmtransspace => '16' }, |
| { aggfnoid => 'every', aggtransfn => 'booland_statefunc', |
| aggcombinefn => 'booland_statefunc', aggmtransfn => 'bool_accum', |
| aggminvtransfn => 'bool_accum_inv', aggmfinalfn => 'bool_alltrue', |
| aggsortop => '<(bool,bool)', aggtranstype => 'bool', |
| aggmtranstype => 'internal', aggmtransspace => '16' }, |
| |
| # bitwise integer |
| { aggfnoid => 'bit_and(int2)', aggtransfn => 'int2and', |
| aggcombinefn => 'int2and', aggtranstype => 'int2' }, |
| { aggfnoid => 'bit_or(int2)', aggtransfn => 'int2or', aggcombinefn => 'int2or', |
| aggtranstype => 'int2' }, |
| { aggfnoid => 'bit_xor(int2)', aggtransfn => 'int2xor', |
| aggcombinefn => 'int2xor', aggtranstype => 'int2' }, |
| { aggfnoid => 'bit_and(int4)', aggtransfn => 'int4and', |
| aggcombinefn => 'int4and', aggtranstype => 'int4' }, |
| { aggfnoid => 'bit_or(int4)', aggtransfn => 'int4or', aggcombinefn => 'int4or', |
| aggtranstype => 'int4' }, |
| { aggfnoid => 'bit_xor(int4)', aggtransfn => 'int4xor', |
| aggcombinefn => 'int4xor', aggtranstype => 'int4' }, |
| { aggfnoid => 'bit_and(int8)', aggtransfn => 'int8and', |
| aggcombinefn => 'int8and', aggtranstype => 'int8' }, |
| { aggfnoid => 'bit_or(int8)', aggtransfn => 'int8or', aggcombinefn => 'int8or', |
| aggtranstype => 'int8' }, |
| { aggfnoid => 'bit_xor(int8)', aggtransfn => 'int8xor', |
| aggcombinefn => 'int8xor', aggtranstype => 'int8' }, |
| { aggfnoid => 'bit_and(bit)', aggtransfn => 'bitand', aggcombinefn => 'bitand', |
| aggtranstype => 'bit' }, |
| { aggfnoid => 'bit_or(bit)', aggtransfn => 'bitor', aggcombinefn => 'bitor', |
| aggtranstype => 'bit' }, |
| { aggfnoid => 'bit_xor(bit)', aggtransfn => 'bitxor', aggcombinefn => 'bitxor', |
| aggtranstype => 'bit' }, |
| |
| # xml |
| { aggfnoid => 'xmlagg', aggtransfn => 'xmlconcat2', aggtranstype => 'xml' }, |
| |
| # array |
| { aggfnoid => 'array_agg(anynonarray)', aggtransfn => 'array_agg_transfn', |
| aggfinalfn => 'array_agg_finalfn', aggcombinefn => 'array_agg_combine', |
| aggserialfn => 'array_agg_serialize', |
| aggdeserialfn => 'array_agg_deserialize', aggfinalextra => 't', |
| aggtranstype => 'internal' }, |
| { aggfnoid => 'array_agg(anyarray)', aggtransfn => 'array_agg_array_transfn', |
| aggfinalfn => 'array_agg_array_finalfn', |
| aggcombinefn => 'array_agg_array_combine', |
| aggserialfn => 'array_agg_array_serialize', |
| aggdeserialfn => 'array_agg_array_deserialize', aggfinalextra => 't', |
| aggtranstype => 'internal' }, |
| { aggfnoid => 'gp_array_agg(anynonarray)', aggtransfn => 'array_agg_transfn', |
| aggfinalfn => 'array_agg_finalfn', aggcombinefn => 'array_agg_combine', |
| aggserialfn => 'array_agg_serialize', |
| aggdeserialfn => 'array_agg_deserialize', aggfinalextra => 't', |
| aggtranstype => 'internal' }, |
| { aggfnoid => 'gp_array_agg(anyarray)', aggtransfn => 'array_agg_array_transfn', |
| aggfinalfn => 'array_agg_array_finalfn', |
| aggcombinefn => 'array_agg_array_combine', |
| aggserialfn => 'array_agg_array_serialize', |
| aggdeserialfn => 'array_agg_array_deserialize', aggfinalextra => 't', |
| aggtranstype => 'internal' }, |
| |
| # text |
| { aggfnoid => 'string_agg(text,text)', aggtransfn => 'string_agg_transfn', |
| aggfinalfn => 'string_agg_finalfn', aggtranstype => 'internal' }, |
| |
| # bytea |
| { aggfnoid => 'string_agg(bytea,bytea)', |
| aggtransfn => 'bytea_string_agg_transfn', |
| aggfinalfn => 'bytea_string_agg_finalfn', aggtranstype => 'internal' }, |
| |
| # range |
| { aggfnoid => 'range_intersect_agg(anyrange)', |
| aggtransfn => 'range_intersect_agg_transfn', |
| aggcombinefn => 'range_intersect_agg_transfn', aggtranstype => 'anyrange' }, |
| { aggfnoid => 'range_intersect_agg(anymultirange)', |
| aggtransfn => 'multirange_intersect_agg_transfn', |
| aggcombinefn => 'multirange_intersect_agg_transfn', |
| aggtranstype => 'anymultirange' }, |
| { aggfnoid => 'range_agg(anyrange)', aggtransfn => 'range_agg_transfn', |
| aggfinalfn => 'range_agg_finalfn', aggfinalextra => 't', |
| aggtranstype => 'internal' }, |
| |
| # json |
| { aggfnoid => 'json_agg', aggtransfn => 'json_agg_transfn', |
| aggfinalfn => 'json_agg_finalfn', aggtranstype => 'internal' }, |
| { aggfnoid => 'json_object_agg', aggtransfn => 'json_object_agg_transfn', |
| aggfinalfn => 'json_object_agg_finalfn', aggtranstype => 'internal' }, |
| |
| # jsonb |
| { aggfnoid => 'jsonb_agg', aggtransfn => 'jsonb_agg_transfn', |
| aggfinalfn => 'jsonb_agg_finalfn', aggtranstype => 'internal' }, |
| { aggfnoid => 'jsonb_object_agg', aggtransfn => 'jsonb_object_agg_transfn', |
| aggfinalfn => 'jsonb_object_agg_finalfn', aggtranstype => 'internal' }, |
| |
| # ordered-set and hypothetical-set aggregates |
| { aggfnoid => 'percentile_disc(float8,anyelement)', aggkind => 'o', |
| aggnumdirectargs => '1', aggtransfn => 'ordered_set_transition', |
| aggfinalfn => 'percentile_disc_final', aggfinalextra => 't', |
| aggfinalmodify => 's', aggmfinalmodify => 's', aggtranstype => 'internal' }, |
| { aggfnoid => 'percentile_cont(float8,float8)', aggkind => 'o', |
| aggnumdirectargs => '1', aggtransfn => 'ordered_set_transition', |
| aggfinalfn => 'percentile_cont_float8_final', aggfinalmodify => 's', |
| aggmfinalmodify => 's', aggtranstype => 'internal' }, |
| { aggfnoid => 'percentile_cont(float8,interval)', aggkind => 'o', |
| aggnumdirectargs => '1', aggtransfn => 'ordered_set_transition', |
| aggfinalfn => 'percentile_cont_interval_final', aggfinalmodify => 's', |
| aggmfinalmodify => 's', aggtranstype => 'internal' }, |
| { aggfnoid => 'percentile_disc(_float8,anyelement)', aggkind => 'o', |
| aggnumdirectargs => '1', aggtransfn => 'ordered_set_transition', |
| aggfinalfn => 'percentile_disc_multi_final', aggfinalextra => 't', |
| aggfinalmodify => 's', aggmfinalmodify => 's', aggtranstype => 'internal' }, |
| { aggfnoid => 'percentile_cont(_float8,float8)', aggkind => 'o', |
| aggnumdirectargs => '1', aggtransfn => 'ordered_set_transition', |
| aggfinalfn => 'percentile_cont_float8_multi_final', aggfinalmodify => 's', |
| aggmfinalmodify => 's', aggtranstype => 'internal' }, |
| { aggfnoid => 'percentile_cont(_float8,interval)', aggkind => 'o', |
| aggnumdirectargs => '1', aggtransfn => 'ordered_set_transition', |
| aggfinalfn => 'percentile_cont_interval_multi_final', aggfinalmodify => 's', |
| aggmfinalmodify => 's', aggtranstype => 'internal' }, |
| { aggfnoid => 'mode', aggkind => 'o', aggtransfn => 'ordered_set_transition', |
| aggfinalfn => 'mode_final', aggfinalextra => 't', aggfinalmodify => 's', |
| aggmfinalmodify => 's', aggtranstype => 'internal' }, |
| { aggfnoid => 'rank(any)', aggkind => 'h', aggnumdirectargs => '1', |
| aggtransfn => 'ordered_set_transition_multi', aggfinalfn => 'rank_final', |
| aggfinalextra => 't', aggfinalmodify => 'w', aggmfinalmodify => 'w', |
| aggtranstype => 'internal' }, |
| { aggfnoid => 'percent_rank(any)', aggkind => 'h', aggnumdirectargs => '1', |
| aggtransfn => 'ordered_set_transition_multi', |
| aggfinalfn => 'percent_rank_final', aggfinalextra => 't', |
| aggfinalmodify => 'w', aggmfinalmodify => 'w', aggtranstype => 'internal' }, |
| { aggfnoid => 'cume_dist(any)', aggkind => 'h', aggnumdirectargs => '1', |
| aggtransfn => 'ordered_set_transition_multi', aggfinalfn => 'cume_dist_final', |
| aggfinalextra => 't', aggfinalmodify => 'w', aggmfinalmodify => 'w', |
| aggtranstype => 'internal' }, |
| { aggfnoid => 'dense_rank(any)', aggkind => 'h', aggnumdirectargs => '1', |
| aggtransfn => 'ordered_set_transition_multi', |
| aggfinalfn => 'dense_rank_final', aggfinalextra => 't', aggfinalmodify => 'w', |
| aggmfinalmodify => 'w', aggtranstype => 'internal' }, |
| |
| # MPP Aggregate -- array_sum -- special for prospective customer. |
| { aggfnoid => 'array_sum(_int4)', aggtransfn => 'array_add(_int4,_int4)', |
| aggtranstype => '_int4', agginitval => '{}' }, |
| |
| # sum(array[]) |
| { aggfnoid => 'sum(_int2)', aggtransfn => 'int2_matrix_accum(_int8,_int2)', |
| aggcombinefn => 'int8_matrix_accum(_int8,_int8)', aggtranstype => '_int8' }, |
| { aggfnoid => 'sum(_int4)', aggtransfn => 'int4_matrix_accum(_int8,_int4)', |
| aggcombinefn => 'int8_matrix_accum(_int8,_int8)', aggtranstype => '_int8' }, |
| { aggfnoid => 'sum(_int8)', aggtransfn => 'int8_matrix_accum(_int8,_int8)', |
| aggcombinefn => 'int8_matrix_accum(_int8,_int8)', aggtranstype => '_int8' }, |
| { aggfnoid => 'sum(_float8)', |
| aggtransfn => 'float8_matrix_accum(_float8,_float8)', |
| aggcombinefn => 'float8_matrix_accum(_float8,_float8)', |
| aggtranstype => '_float8' }, |
| |
| { aggfnoid => 'pivot_sum(_text,text,int4)', |
| aggtransfn => 'int4_pivot_accum(_int8,_text,text,int4)', |
| aggcombinefn => 'int8_matrix_accum(_int8,_int8)', aggtranstype => '_int8' }, |
| |
| { aggfnoid => 'pivot_sum(_text,text,int8)', |
| aggtransfn => 'int8_pivot_accum(_int8,_text,text,int8)', |
| aggcombinefn => 'int8_matrix_accum(_int8,_int8)', aggtranstype => '_int8' }, |
| { aggfnoid => 'pivot_sum(_text,text,float8)', |
| aggtransfn => 'float8_pivot_accum(_float8,_text,text,float8)', |
| aggcombinefn => 'float8_matrix_accum(_float8,_float8)', |
| aggtranstype => '_float8' }, |
| |
| # GPDB: additional variants of percentile_cont, for timestamps |
| { aggfnoid => 'percentile_cont(float8,timestamp)', aggkind => 'o', |
| aggnumdirectargs => '1', aggtransfn => 'ordered_set_transition', |
| aggfinalfn => 'percentile_cont_timestamp_final', aggtranstype => 'internal' }, |
| { aggfnoid => 'percentile_cont(_float8,timestamp)', aggkind => 'o', |
| aggnumdirectargs => '1', aggtransfn => 'ordered_set_transition', |
| aggfinalfn => 'percentile_cont_timestamp_multi_final', |
| aggtranstype => 'internal' }, |
| { aggfnoid => 'percentile_cont(float8,timestamptz)', aggkind => 'o', |
| aggnumdirectargs => '1', aggtransfn => 'ordered_set_transition', |
| aggfinalfn => 'percentile_cont_timestamptz_final', |
| aggtranstype => 'internal' }, |
| { aggfnoid => 'percentile_cont(_float8,timestamptz)', aggkind => 'o', |
| aggnumdirectargs => '1', aggtransfn => 'ordered_set_transition', |
| aggfinalfn => 'percentile_cont_timestamptz_multi_final', |
| aggtranstype => 'internal' }, |
| |
| # median |
| { aggfnoid => 'median(float8,float8)', aggkind => 'o', aggnumdirectargs => '1', |
| aggtransfn => 'ordered_set_transition', |
| aggfinalfn => 'percentile_cont_float8_final', aggtranstype => 'internal' }, |
| { aggfnoid => 'median(float8,interval)', aggkind => 'o', |
| aggnumdirectargs => '1', aggtransfn => 'ordered_set_transition', |
| aggfinalfn => 'percentile_cont_interval_final', aggtranstype => 'internal' }, |
| { aggfnoid => 'median(float8,timestamp)', aggkind => 'o', |
| aggnumdirectargs => '1', aggtransfn => 'ordered_set_transition', |
| aggfinalfn => 'percentile_cont_timestamp_final', aggtranstype => 'internal' }, |
| { aggfnoid => 'median(float8,timestamptz)', aggkind => 'o', |
| aggnumdirectargs => '1', aggtransfn => 'ordered_set_transition', |
| aggfinalfn => 'percentile_cont_timestamptz_final', |
| aggtranstype => 'internal' }, |
| |
| # hyperloglog |
| { aggfnoid => 'gp_hyperloglog_accum(anyelement)', |
| aggtransfn => 'gp_hyperloglog_add_item_agg_default', |
| aggfinalfn => 'gp_hyperloglog_comp', aggcombinefn => 'gp_hyperloglog_merge', |
| aggtranstype => 'gp_hyperloglog_estimator' }, |
| |
| # GPDB: additional variants of percentile_cont and percentile_disc |
| { aggfnoid => 'gp_percentile_cont(float8,float8,int8,int8)', |
| aggtransfn => 'gp_percentile_cont_float8_transition', |
| aggfinalfn => 'gp_percentile_final', aggtranstype => 'float8' }, |
| { aggfnoid => 'gp_percentile_cont(interval,float8,int8,int8)', |
| aggtransfn => 'gp_percentile_cont_interval_transition', |
| aggfinalfn => 'gp_percentile_final', aggtranstype => 'interval' }, |
| { aggfnoid => 'gp_percentile_cont(timestamp,float8,int8,int8)', |
| aggtransfn => 'gp_percentile_cont_timestamp_transition', |
| aggfinalfn => 'gp_percentile_final', aggtranstype => 'timestamp' }, |
| { aggfnoid => 'gp_percentile_cont(timestamptz,float8,int8,int8)', |
| aggtransfn => 'gp_percentile_cont_timestamptz_transition', |
| aggfinalfn => 'gp_percentile_final', aggtranstype => 'timestamptz' }, |
| { aggfnoid => 'gp_percentile_disc(anyelement,float8,int8,int8)', |
| aggtransfn => 'gp_percentile_disc_transition', |
| aggfinalfn => 'gp_percentile_final', aggtranstype => 'anyelement' }, |
| |
| |
| ] |