diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/catalog/catversion.h | 4 | ||||
-rw-r--r-- | src/include/catalog/pg_aggregate.h | 166 | ||||
-rw-r--r-- | src/include/catalog/pg_proc.h | 8 | ||||
-rw-r--r-- | src/include/utils/builtins.h | 4 |
4 files changed, 98 insertions, 84 deletions
diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h index 4243ce19b28..cb3868ea155 100644 --- a/src/include/catalog/catversion.h +++ b/src/include/catalog/catversion.h @@ -37,7 +37,7 @@ * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/catversion.h,v 1.263 2005/04/06 16:34:07 tgl Exp $ + * $PostgreSQL: pgsql/src/include/catalog/catversion.h,v 1.264 2005/04/12 04:26:28 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -53,6 +53,6 @@ */ /* yyyymmddN */ -#define CATALOG_VERSION_NO 200504061 +#define CATALOG_VERSION_NO 200504111 #endif diff --git a/src/include/catalog/pg_aggregate.h b/src/include/catalog/pg_aggregate.h index 854e9e888f6..6e339c76873 100644 --- a/src/include/catalog/pg_aggregate.h +++ b/src/include/catalog/pg_aggregate.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_aggregate.h,v 1.49 2005/02/28 03:45:22 neilc Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_aggregate.h,v 1.50 2005/04/12 04:26:28 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -35,9 +35,10 @@ * * aggfnoid pg_proc OID of the aggregate itself * aggtransfn transition function - * aggfinalfn final function + * aggfinalfn final function (0 if none) + * aggsortop associated sort operator (0 if none) * aggtranstype type of aggregate's transition (state) data - * agginitval initial value for transition state + * agginitval initial value for transition state (can be NULL) * ---------------------------------------------------------------- */ CATALOG(pg_aggregate) BKI_WITHOUT_OIDS @@ -45,6 +46,7 @@ CATALOG(pg_aggregate) BKI_WITHOUT_OIDS regproc aggfnoid; regproc aggtransfn; regproc aggfinalfn; + Oid aggsortop; Oid aggtranstype; text agginitval; /* VARIABLE LENGTH FIELD */ } FormData_pg_aggregate; @@ -61,12 +63,13 @@ typedef FormData_pg_aggregate *Form_pg_aggregate; * ---------------- */ -#define Natts_pg_aggregate 5 +#define Natts_pg_aggregate 6 #define Anum_pg_aggregate_aggfnoid 1 #define Anum_pg_aggregate_aggtransfn 2 #define Anum_pg_aggregate_aggfinalfn 3 -#define Anum_pg_aggregate_aggtranstype 4 -#define Anum_pg_aggregate_agginitval 5 +#define Anum_pg_aggregate_aggsortop 4 +#define Anum_pg_aggregate_aggtranstype 5 +#define Anum_pg_aggregate_agginitval 6 /* ---------------- @@ -75,107 +78,110 @@ typedef FormData_pg_aggregate *Form_pg_aggregate; */ /* avg */ -DATA(insert ( 2100 int8_accum numeric_avg 1231 "{0,0,0}" )); -DATA(insert ( 2101 int4_avg_accum int8_avg 1016 "{0,0}" )); -DATA(insert ( 2102 int2_avg_accum int8_avg 1016 "{0,0}" )); -DATA(insert ( 2103 numeric_accum numeric_avg 1231 "{0,0,0}" )); -DATA(insert ( 2104 float4_accum float8_avg 1022 "{0,0,0}" )); -DATA(insert ( 2105 float8_accum float8_avg 1022 "{0,0,0}" )); -DATA(insert ( 2106 interval_accum interval_avg 1187 "{0 second,0 second}" )); +DATA(insert ( 2100 int8_accum numeric_avg 0 1231 "{0,0,0}" )); +DATA(insert ( 2101 int4_avg_accum int8_avg 0 1016 "{0,0}" )); +DATA(insert ( 2102 int2_avg_accum int8_avg 0 1016 "{0,0}" )); +DATA(insert ( 2103 numeric_accum numeric_avg 0 1231 "{0,0,0}" )); +DATA(insert ( 2104 float4_accum float8_avg 0 1022 "{0,0,0}" )); +DATA(insert ( 2105 float8_accum float8_avg 0 1022 "{0,0,0}" )); +DATA(insert ( 2106 interval_accum interval_avg 0 1187 "{0 second,0 second}" )); /* sum */ -DATA(insert ( 2107 int8_sum - 1700 _null_ )); -DATA(insert ( 2108 int4_sum - 20 _null_ )); -DATA(insert ( 2109 int2_sum - 20 _null_ )); -DATA(insert ( 2110 float4pl - 700 _null_ )); -DATA(insert ( 2111 float8pl - 701 _null_ )); -DATA(insert ( 2112 cash_pl - 790 _null_ )); -DATA(insert ( 2113 interval_pl - 1186 _null_ )); -DATA(insert ( 2114 numeric_add - 1700 _null_ )); +DATA(insert ( 2107 int8_sum - 0 1700 _null_ )); +DATA(insert ( 2108 int4_sum - 0 20 _null_ )); +DATA(insert ( 2109 int2_sum - 0 20 _null_ )); +DATA(insert ( 2110 float4pl - 0 700 _null_ )); +DATA(insert ( 2111 float8pl - 0 701 _null_ )); +DATA(insert ( 2112 cash_pl - 0 790 _null_ )); +DATA(insert ( 2113 interval_pl - 0 1186 _null_ )); +DATA(insert ( 2114 numeric_add - 0 1700 _null_ )); /* max */ -DATA(insert ( 2115 int8larger - 20 _null_ )); -DATA(insert ( 2116 int4larger - 23 _null_ )); -DATA(insert ( 2117 int2larger - 21 _null_ )); -DATA(insert ( 2118 oidlarger - 26 _null_ )); -DATA(insert ( 2119 float4larger - 700 _null_ )); -DATA(insert ( 2120 float8larger - 701 _null_ )); -DATA(insert ( 2121 int4larger - 702 _null_ )); -DATA(insert ( 2122 date_larger - 1082 _null_ )); -DATA(insert ( 2123 time_larger - 1083 _null_ )); -DATA(insert ( 2124 timetz_larger - 1266 _null_ )); -DATA(insert ( 2125 cashlarger - 790 _null_ )); -DATA(insert ( 2126 timestamp_larger - 1114 _null_ )); -DATA(insert ( 2127 timestamptz_larger - 1184 _null_ )); -DATA(insert ( 2128 interval_larger - 1186 _null_ )); -DATA(insert ( 2129 text_larger - 25 _null_ )); -DATA(insert ( 2130 numeric_larger - 1700 _null_ )); -DATA(insert ( 2050 array_larger - 2277 _null_ )); +DATA(insert ( 2115 int8larger - 413 20 _null_ )); +DATA(insert ( 2116 int4larger - 521 23 _null_ )); +DATA(insert ( 2117 int2larger - 520 21 _null_ )); +DATA(insert ( 2118 oidlarger - 610 26 _null_ )); +DATA(insert ( 2119 float4larger - 623 700 _null_ )); +DATA(insert ( 2120 float8larger - 674 701 _null_ )); +DATA(insert ( 2121 int4larger - 563 702 _null_ )); +DATA(insert ( 2122 date_larger - 1097 1082 _null_ )); +DATA(insert ( 2123 time_larger - 1112 1083 _null_ )); +DATA(insert ( 2124 timetz_larger - 1554 1266 _null_ )); +DATA(insert ( 2125 cashlarger - 903 790 _null_ )); +DATA(insert ( 2126 timestamp_larger - 2064 1114 _null_ )); +DATA(insert ( 2127 timestamptz_larger - 1324 1184 _null_ )); +DATA(insert ( 2128 interval_larger - 1334 1186 _null_ )); +DATA(insert ( 2129 text_larger - 666 25 _null_ )); +DATA(insert ( 2130 numeric_larger - 1756 1700 _null_ )); +DATA(insert ( 2050 array_larger - 1073 2277 _null_ )); +DATA(insert ( 2244 bpchar_larger - 1060 1042 _null_ )); /* min */ -DATA(insert ( 2131 int8smaller - 20 _null_ )); -DATA(insert ( 2132 int4smaller - 23 _null_ )); -DATA(insert ( 2133 int2smaller - 21 _null_ )); -DATA(insert ( 2134 oidsmaller - 26 _null_ )); -DATA(insert ( 2135 float4smaller - 700 _null_ )); -DATA(insert ( 2136 float8smaller - 701 _null_ )); -DATA(insert ( 2137 int4smaller - 702 _null_ )); -DATA(insert ( 2138 date_smaller - 1082 _null_ )); -DATA(insert ( 2139 time_smaller - 1083 _null_ )); -DATA(insert ( 2140 timetz_smaller - 1266 _null_ )); -DATA(insert ( 2141 cashsmaller - 790 _null_ )); -DATA(insert ( 2142 timestamp_smaller - 1114 _null_ )); -DATA(insert ( 2143 timestamptz_smaller - 1184 _null_ )); -DATA(insert ( 2144 interval_smaller - 1186 _null_ )); -DATA(insert ( 2145 text_smaller - 25 _null_ )); -DATA(insert ( 2146 numeric_smaller - 1700 _null_ )); -DATA(insert ( 2051 array_smaller - 2277 _null_ )); +DATA(insert ( 2131 int8smaller - 412 20 _null_ )); +DATA(insert ( 2132 int4smaller - 97 23 _null_ )); +DATA(insert ( 2133 int2smaller - 95 21 _null_ )); +DATA(insert ( 2134 oidsmaller - 609 26 _null_ )); +DATA(insert ( 2135 float4smaller - 622 700 _null_ )); +DATA(insert ( 2136 float8smaller - 672 701 _null_ )); +DATA(insert ( 2137 int4smaller - 562 702 _null_ )); +DATA(insert ( 2138 date_smaller - 1095 1082 _null_ )); +DATA(insert ( 2139 time_smaller - 1110 1083 _null_ )); +DATA(insert ( 2140 timetz_smaller - 1552 1266 _null_ )); +DATA(insert ( 2141 cashsmaller - 902 790 _null_ )); +DATA(insert ( 2142 timestamp_smaller - 2062 1114 _null_ )); +DATA(insert ( 2143 timestamptz_smaller - 1322 1184 _null_ )); +DATA(insert ( 2144 interval_smaller - 1332 1186 _null_ )); +DATA(insert ( 2145 text_smaller - 664 25 _null_ )); +DATA(insert ( 2146 numeric_smaller - 1754 1700 _null_ )); +DATA(insert ( 2051 array_smaller - 1072 2277 _null_ )); +DATA(insert ( 2245 bpchar_smaller - 1058 1042 _null_ )); /* * Using int8inc for count() is cheating a little, since it really only * takes 1 parameter not 2, but nodeAgg.c won't complain ... */ -DATA(insert ( 2147 int8inc - 20 0 )); +DATA(insert ( 2147 int8inc - 0 20 0 )); /* variance */ -DATA(insert ( 2148 int8_accum numeric_variance 1231 "{0,0,0}" )); -DATA(insert ( 2149 int4_accum numeric_variance 1231 "{0,0,0}" )); -DATA(insert ( 2150 int2_accum numeric_variance 1231 "{0,0,0}" )); -DATA(insert ( 2151 float4_accum float8_variance 1022 "{0,0,0}" )); -DATA(insert ( 2152 float8_accum float8_variance 1022 "{0,0,0}" )); -DATA(insert ( 2153 numeric_accum numeric_variance 1231 "{0,0,0}" )); +DATA(insert ( 2148 int8_accum numeric_variance 0 1231 "{0,0,0}" )); +DATA(insert ( 2149 int4_accum numeric_variance 0 1231 "{0,0,0}" )); +DATA(insert ( 2150 int2_accum numeric_variance 0 1231 "{0,0,0}" )); +DATA(insert ( 2151 float4_accum float8_variance 0 1022 "{0,0,0}" )); +DATA(insert ( 2152 float8_accum float8_variance 0 1022 "{0,0,0}" )); +DATA(insert ( 2153 numeric_accum numeric_variance 0 1231 "{0,0,0}" )); /* stddev */ -DATA(insert ( 2154 int8_accum numeric_stddev 1231 "{0,0,0}" )); -DATA(insert ( 2155 int4_accum numeric_stddev 1231 "{0,0,0}" )); -DATA(insert ( 2156 int2_accum numeric_stddev 1231 "{0,0,0}" )); -DATA(insert ( 2157 float4_accum float8_stddev 1022 "{0,0,0}" )); -DATA(insert ( 2158 float8_accum float8_stddev 1022 "{0,0,0}" )); -DATA(insert ( 2159 numeric_accum numeric_stddev 1231 "{0,0,0}" )); +DATA(insert ( 2154 int8_accum numeric_stddev 0 1231 "{0,0,0}" )); +DATA(insert ( 2155 int4_accum numeric_stddev 0 1231 "{0,0,0}" )); +DATA(insert ( 2156 int2_accum numeric_stddev 0 1231 "{0,0,0}" )); +DATA(insert ( 2157 float4_accum float8_stddev 0 1022 "{0,0,0}" )); +DATA(insert ( 2158 float8_accum float8_stddev 0 1022 "{0,0,0}" )); +DATA(insert ( 2159 numeric_accum numeric_stddev 0 1231 "{0,0,0}" )); /* boolean-and and boolean-or */ -DATA(insert ( 2517 booland_statefunc - 16 _null_ )); -DATA(insert ( 2518 boolor_statefunc - 16 _null_ )); -DATA(insert ( 2519 booland_statefunc - 16 _null_ )); +DATA(insert ( 2517 booland_statefunc - 0 16 _null_ )); +DATA(insert ( 2518 boolor_statefunc - 0 16 _null_ )); +DATA(insert ( 2519 booland_statefunc - 0 16 _null_ )); /* bitwise integer */ -DATA(insert ( 2236 int2and - 21 _null_ )); -DATA(insert ( 2237 int2or - 21 _null_ )); -DATA(insert ( 2238 int4and - 23 _null_ )); -DATA(insert ( 2239 int4or - 23 _null_ )); -DATA(insert ( 2240 int8and - 20 _null_ )); -DATA(insert ( 2241 int8or - 20 _null_ )); -DATA(insert ( 2242 bitand - 1560 _null_ )); -DATA(insert ( 2243 bitor - 1560 _null_ )); +DATA(insert ( 2236 int2and - 0 21 _null_ )); +DATA(insert ( 2237 int2or - 0 21 _null_ )); +DATA(insert ( 2238 int4and - 0 23 _null_ )); +DATA(insert ( 2239 int4or - 0 23 _null_ )); +DATA(insert ( 2240 int8and - 0 20 _null_ )); +DATA(insert ( 2241 int8or - 0 20 _null_ )); +DATA(insert ( 2242 bitand - 0 1560 _null_ )); +DATA(insert ( 2243 bitor - 0 1560 _null_ )); /* * prototypes for functions in pg_aggregate.c */ extern void AggregateCreate(const char *aggName, Oid aggNamespace, + Oid aggBaseType, List *aggtransfnName, List *aggfinalfnName, - Oid aggBaseType, + List *aggsortopName, Oid aggTransType, const char *agginitval); diff --git a/src/include/catalog/pg_proc.h b/src/include/catalog/pg_proc.h index cb90a5e04c3..d9bf85973cb 100644 --- a/src/include/catalog/pg_proc.h +++ b/src/include/catalog/pg_proc.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_proc.h,v 1.357 2005/03/31 22:46:18 tgl Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_proc.h,v 1.358 2005/04/12 04:26:28 tgl Exp $ * * NOTES * The script catalog/genbki.sh reads this file and generates .bki @@ -1372,6 +1372,10 @@ DATA(insert OID = 1052 ( bpcharge PGNSP PGUID 12 f f t f i 2 16 "1042 1042" DESCR("greater-than-or-equal"); DATA(insert OID = 1053 ( bpcharne PGNSP PGUID 12 f f t f i 2 16 "1042 1042" _null_ _null_ _null_ bpcharne - _null_ )); DESCR("not equal"); +DATA(insert OID = 1063 ( bpchar_larger PGNSP PGUID 12 f f t f i 2 1042 "1042 1042" _null_ _null_ _null_ bpchar_larger - _null_ )); +DESCR("larger of two"); +DATA(insert OID = 1064 ( bpchar_smaller PGNSP PGUID 12 f f t f i 2 1042 "1042 1042" _null_ _null_ _null_ bpchar_smaller - _null_ )); +DESCR("smaller of two"); DATA(insert OID = 1078 ( bpcharcmp PGNSP PGUID 12 f f t f i 2 23 "1042 1042" _null_ _null_ _null_ bpcharcmp - _null_ )); DESCR("less-equal-greater"); DATA(insert OID = 1080 ( hashbpchar PGNSP PGUID 12 f f t f i 1 23 "1042" _null_ _null_ _null_ hashbpchar - _null_ )); @@ -3048,6 +3052,7 @@ DATA(insert OID = 2128 ( max PGNSP PGUID 12 t f f f i 1 1186 "1186" _null_ _ DATA(insert OID = 2129 ( max PGNSP PGUID 12 t f f f i 1 25 "25" _null_ _null_ _null_ aggregate_dummy - _null_ )); DATA(insert OID = 2130 ( max PGNSP PGUID 12 t f f f i 1 1700 "1700" _null_ _null_ _null_ aggregate_dummy - _null_ )); DATA(insert OID = 2050 ( max PGNSP PGUID 12 t f f f i 1 2277 "2277" _null_ _null_ _null_ aggregate_dummy - _null_ )); +DATA(insert OID = 2244 ( max PGNSP PGUID 12 t f f f i 1 1042 "1042" _null_ _null_ _null_ aggregate_dummy - _null_ )); DATA(insert OID = 2131 ( min PGNSP PGUID 12 t f f f i 1 20 "20" _null_ _null_ _null_ aggregate_dummy - _null_ )); DATA(insert OID = 2132 ( min PGNSP PGUID 12 t f f f i 1 23 "23" _null_ _null_ _null_ aggregate_dummy - _null_ )); @@ -3066,6 +3071,7 @@ DATA(insert OID = 2144 ( min PGNSP PGUID 12 t f f f i 1 1186 "1186" _null_ _ DATA(insert OID = 2145 ( min PGNSP PGUID 12 t f f f i 1 25 "25" _null_ _null_ _null_ aggregate_dummy - _null_ )); DATA(insert OID = 2146 ( min PGNSP PGUID 12 t f f f i 1 1700 "1700" _null_ _null_ _null_ aggregate_dummy - _null_ )); DATA(insert OID = 2051 ( min PGNSP PGUID 12 t f f f i 1 2277 "2277" _null_ _null_ _null_ aggregate_dummy - _null_ )); +DATA(insert OID = 2245 ( min PGNSP PGUID 12 t f f f i 1 1042 "1042" _null_ _null_ _null_ aggregate_dummy - _null_ )); DATA(insert OID = 2147 ( count PGNSP PGUID 12 t f f f i 1 20 "2276" _null_ _null_ _null_ aggregate_dummy - _null_ )); diff --git a/src/include/utils/builtins.h b/src/include/utils/builtins.h index 4caa5b4cba2..96e33786eec 100644 --- a/src/include/utils/builtins.h +++ b/src/include/utils/builtins.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/utils/builtins.h,v 1.254 2005/03/29 00:17:18 tgl Exp $ + * $PostgreSQL: pgsql/src/include/utils/builtins.h,v 1.255 2005/04/12 04:26:32 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -522,6 +522,8 @@ extern Datum bpcharle(PG_FUNCTION_ARGS); extern Datum bpchargt(PG_FUNCTION_ARGS); extern Datum bpcharge(PG_FUNCTION_ARGS); extern Datum bpcharcmp(PG_FUNCTION_ARGS); +extern Datum bpchar_larger(PG_FUNCTION_ARGS); +extern Datum bpchar_smaller(PG_FUNCTION_ARGS); extern Datum bpcharlen(PG_FUNCTION_ARGS); extern Datum bpcharoctetlen(PG_FUNCTION_ARGS); extern Datum hashbpchar(PG_FUNCTION_ARGS); |