~ubuntu-branches/ubuntu/oneiric/postgresql-9.1/oneiric-security

« back to all changes in this revision

Viewing changes to src/include/catalog/pg_aggregate.h

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2011-05-11 10:41:53 UTC
  • Revision ID: james.westby@ubuntu.com-20110511104153-psbh2o58553fv1m0
Tags: upstream-9.1~beta1
ImportĀ upstreamĀ versionĀ 9.1~beta1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*-------------------------------------------------------------------------
 
2
 *
 
3
 * pg_aggregate.h
 
4
 *        definition of the system "aggregate" relation (pg_aggregate)
 
5
 *        along with the relation's initial contents.
 
6
 *
 
7
 *
 
8
 * Portions Copyright (c) 1996-2011, PostgreSQL Global Development Group
 
9
 * Portions Copyright (c) 1994, Regents of the University of California
 
10
 *
 
11
 * src/include/catalog/pg_aggregate.h
 
12
 *
 
13
 * NOTES
 
14
 *        the genbki.pl script reads this file and generates .bki
 
15
 *        information from the DATA() statements.
 
16
 *
 
17
 *-------------------------------------------------------------------------
 
18
 */
 
19
#ifndef PG_AGGREGATE_H
 
20
#define PG_AGGREGATE_H
 
21
 
 
22
#include "catalog/genbki.h"
 
23
#include "nodes/pg_list.h"
 
24
 
 
25
/* ----------------------------------------------------------------
 
26
 *              pg_aggregate definition.
 
27
 *
 
28
 *              cpp turns this into typedef struct FormData_pg_aggregate
 
29
 *
 
30
 *      aggfnoid                        pg_proc OID of the aggregate itself
 
31
 *      aggtransfn                      transition function
 
32
 *      aggfinalfn                      final function (0 if none)
 
33
 *      aggsortop                       associated sort operator (0 if none)
 
34
 *      aggtranstype            type of aggregate's transition (state) data
 
35
 *      agginitval                      initial value for transition state (can be NULL)
 
36
 * ----------------------------------------------------------------
 
37
 */
 
38
#define AggregateRelationId  2600
 
39
 
 
40
CATALOG(pg_aggregate,2600) BKI_WITHOUT_OIDS
 
41
{
 
42
        regproc         aggfnoid;
 
43
        regproc         aggtransfn;
 
44
        regproc         aggfinalfn;
 
45
        Oid                     aggsortop;
 
46
        Oid                     aggtranstype;
 
47
        text            agginitval;             /* VARIABLE LENGTH FIELD */
 
48
} FormData_pg_aggregate;
 
49
 
 
50
/* ----------------
 
51
 *              Form_pg_aggregate corresponds to a pointer to a tuple with
 
52
 *              the format of pg_aggregate relation.
 
53
 * ----------------
 
54
 */
 
55
typedef FormData_pg_aggregate *Form_pg_aggregate;
 
56
 
 
57
/* ----------------
 
58
 *              compiler constants for pg_aggregate
 
59
 * ----------------
 
60
 */
 
61
 
 
62
#define Natts_pg_aggregate                              6
 
63
#define Anum_pg_aggregate_aggfnoid              1
 
64
#define Anum_pg_aggregate_aggtransfn    2
 
65
#define Anum_pg_aggregate_aggfinalfn    3
 
66
#define Anum_pg_aggregate_aggsortop             4
 
67
#define Anum_pg_aggregate_aggtranstype  5
 
68
#define Anum_pg_aggregate_agginitval    6
 
69
 
 
70
 
 
71
/* ----------------
 
72
 * initial contents of pg_aggregate
 
73
 * ---------------
 
74
 */
 
75
 
 
76
/* avg */
 
77
DATA(insert ( 2100      int8_avg_accum  numeric_avg             0       1231    "{0,0}" ));
 
78
DATA(insert ( 2101      int4_avg_accum  int8_avg                0       1016    "{0,0}" ));
 
79
DATA(insert ( 2102      int2_avg_accum  int8_avg                0       1016    "{0,0}" ));
 
80
DATA(insert ( 2103      numeric_avg_accum       numeric_avg             0       1231    "{0,0}" ));
 
81
DATA(insert ( 2104      float4_accum    float8_avg              0       1022    "{0,0,0}" ));
 
82
DATA(insert ( 2105      float8_accum    float8_avg              0       1022    "{0,0,0}" ));
 
83
DATA(insert ( 2106      interval_accum  interval_avg    0       1187    "{0 second,0 second}" ));
 
84
 
 
85
/* sum */
 
86
DATA(insert ( 2107      int8_sum                -                               0       1700    _null_ ));
 
87
DATA(insert ( 2108      int4_sum                -                               0       20              _null_ ));
 
88
DATA(insert ( 2109      int2_sum                -                               0       20              _null_ ));
 
89
DATA(insert ( 2110      float4pl                -                               0       700             _null_ ));
 
90
DATA(insert ( 2111      float8pl                -                               0       701             _null_ ));
 
91
DATA(insert ( 2112      cash_pl                 -                               0       790             _null_ ));
 
92
DATA(insert ( 2113      interval_pl             -                               0       1186    _null_ ));
 
93
DATA(insert ( 2114      numeric_add             -                               0       1700    _null_ ));
 
94
 
 
95
/* max */
 
96
DATA(insert ( 2115      int8larger              -                               413             20              _null_ ));
 
97
DATA(insert ( 2116      int4larger              -                               521             23              _null_ ));
 
98
DATA(insert ( 2117      int2larger              -                               520             21              _null_ ));
 
99
DATA(insert ( 2118      oidlarger               -                               610             26              _null_ ));
 
100
DATA(insert ( 2119      float4larger    -                               623             700             _null_ ));
 
101
DATA(insert ( 2120      float8larger    -                               674             701             _null_ ));
 
102
DATA(insert ( 2121      int4larger              -                               563             702             _null_ ));
 
103
DATA(insert ( 2122      date_larger             -                               1097    1082    _null_ ));
 
104
DATA(insert ( 2123      time_larger             -                               1112    1083    _null_ ));
 
105
DATA(insert ( 2124      timetz_larger   -                               1554    1266    _null_ ));
 
106
DATA(insert ( 2125      cashlarger              -                               903             790             _null_ ));
 
107
DATA(insert ( 2126      timestamp_larger        -                       2064    1114    _null_ ));
 
108
DATA(insert ( 2127      timestamptz_larger      -                       1324    1184    _null_ ));
 
109
DATA(insert ( 2128      interval_larger -                               1334    1186    _null_ ));
 
110
DATA(insert ( 2129      text_larger             -                               666             25              _null_ ));
 
111
DATA(insert ( 2130      numeric_larger  -                               1756    1700    _null_ ));
 
112
DATA(insert ( 2050      array_larger    -                               1073    2277    _null_ ));
 
113
DATA(insert ( 2244      bpchar_larger   -                               1060    1042    _null_ ));
 
114
DATA(insert ( 2797      tidlarger               -                               2800    27              _null_ ));
 
115
DATA(insert ( 3526      enum_larger             -                               3519    3500    _null_ ));
 
116
 
 
117
/* min */
 
118
DATA(insert ( 2131      int8smaller             -                               412             20              _null_ ));
 
119
DATA(insert ( 2132      int4smaller             -                               97              23              _null_ ));
 
120
DATA(insert ( 2133      int2smaller             -                               95              21              _null_ ));
 
121
DATA(insert ( 2134      oidsmaller              -                               609             26              _null_ ));
 
122
DATA(insert ( 2135      float4smaller   -                               622             700             _null_ ));
 
123
DATA(insert ( 2136      float8smaller   -                               672             701             _null_ ));
 
124
DATA(insert ( 2137      int4smaller             -                               562             702             _null_ ));
 
125
DATA(insert ( 2138      date_smaller    -                               1095    1082    _null_ ));
 
126
DATA(insert ( 2139      time_smaller    -                               1110    1083    _null_ ));
 
127
DATA(insert ( 2140      timetz_smaller  -                               1552    1266    _null_ ));
 
128
DATA(insert ( 2141      cashsmaller             -                               902             790             _null_ ));
 
129
DATA(insert ( 2142      timestamp_smaller       -                       2062    1114    _null_ ));
 
130
DATA(insert ( 2143      timestamptz_smaller -                   1322    1184    _null_ ));
 
131
DATA(insert ( 2144      interval_smaller        -                       1332    1186    _null_ ));
 
132
DATA(insert ( 2145      text_smaller    -                               664             25              _null_ ));
 
133
DATA(insert ( 2146      numeric_smaller -                               1754    1700    _null_ ));
 
134
DATA(insert ( 2051      array_smaller   -                               1072    2277    _null_ ));
 
135
DATA(insert ( 2245      bpchar_smaller  -                               1058    1042    _null_ ));
 
136
DATA(insert ( 2798      tidsmaller              -                               2799    27              _null_ ));
 
137
DATA(insert ( 3527      enum_smaller    -                               3518    3500    _null_ ));
 
138
 
 
139
/* count */
 
140
DATA(insert ( 2147      int8inc_any             -                               0               20              "0" ));
 
141
DATA(insert ( 2803      int8inc                 -                               0               20              "0" ));
 
142
 
 
143
/* var_pop */
 
144
DATA(insert ( 2718      int8_accum      numeric_var_pop 0       1231    "{0,0,0}" ));
 
145
DATA(insert ( 2719      int4_accum      numeric_var_pop 0       1231    "{0,0,0}" ));
 
146
DATA(insert ( 2720      int2_accum      numeric_var_pop 0       1231    "{0,0,0}" ));
 
147
DATA(insert ( 2721      float4_accum    float8_var_pop 0        1022    "{0,0,0}" ));
 
148
DATA(insert ( 2722      float8_accum    float8_var_pop 0        1022    "{0,0,0}" ));
 
149
DATA(insert ( 2723      numeric_accum  numeric_var_pop 0        1231    "{0,0,0}" ));
 
150
 
 
151
/* var_samp */
 
152
DATA(insert ( 2641      int8_accum      numeric_var_samp        0       1231    "{0,0,0}" ));
 
153
DATA(insert ( 2642      int4_accum      numeric_var_samp        0       1231    "{0,0,0}" ));
 
154
DATA(insert ( 2643      int2_accum      numeric_var_samp        0       1231    "{0,0,0}" ));
 
155
DATA(insert ( 2644      float4_accum    float8_var_samp 0       1022    "{0,0,0}" ));
 
156
DATA(insert ( 2645      float8_accum    float8_var_samp 0       1022    "{0,0,0}" ));
 
157
DATA(insert ( 2646      numeric_accum  numeric_var_samp 0       1231    "{0,0,0}" ));
 
158
 
 
159
/* variance: historical Postgres syntax for var_samp */
 
160
DATA(insert ( 2148      int8_accum      numeric_var_samp        0       1231    "{0,0,0}" ));
 
161
DATA(insert ( 2149      int4_accum      numeric_var_samp        0       1231    "{0,0,0}" ));
 
162
DATA(insert ( 2150      int2_accum      numeric_var_samp        0       1231    "{0,0,0}" ));
 
163
DATA(insert ( 2151      float4_accum    float8_var_samp 0       1022    "{0,0,0}" ));
 
164
DATA(insert ( 2152      float8_accum    float8_var_samp 0       1022    "{0,0,0}" ));
 
165
DATA(insert ( 2153      numeric_accum  numeric_var_samp 0       1231    "{0,0,0}" ));
 
166
 
 
167
/* stddev_pop */
 
168
DATA(insert ( 2724      int8_accum      numeric_stddev_pop              0       1231    "{0,0,0}" ));
 
169
DATA(insert ( 2725      int4_accum      numeric_stddev_pop              0       1231    "{0,0,0}" ));
 
170
DATA(insert ( 2726      int2_accum      numeric_stddev_pop              0       1231    "{0,0,0}" ));
 
171
DATA(insert ( 2727      float4_accum    float8_stddev_pop       0       1022    "{0,0,0}" ));
 
172
DATA(insert ( 2728      float8_accum    float8_stddev_pop       0       1022    "{0,0,0}" ));
 
173
DATA(insert ( 2729      numeric_accum   numeric_stddev_pop      0       1231    "{0,0,0}" ));
 
174
 
 
175
/* stddev_samp */
 
176
DATA(insert ( 2712      int8_accum      numeric_stddev_samp             0       1231    "{0,0,0}" ));
 
177
DATA(insert ( 2713      int4_accum      numeric_stddev_samp             0       1231    "{0,0,0}" ));
 
178
DATA(insert ( 2714      int2_accum      numeric_stddev_samp             0       1231    "{0,0,0}" ));
 
179
DATA(insert ( 2715      float4_accum    float8_stddev_samp      0       1022    "{0,0,0}" ));
 
180
DATA(insert ( 2716      float8_accum    float8_stddev_samp      0       1022    "{0,0,0}" ));
 
181
DATA(insert ( 2717      numeric_accum   numeric_stddev_samp 0   1231    "{0,0,0}" ));
 
182
 
 
183
/* stddev: historical Postgres syntax for stddev_samp */
 
184
DATA(insert ( 2154      int8_accum      numeric_stddev_samp             0       1231    "{0,0,0}" ));
 
185
DATA(insert ( 2155      int4_accum      numeric_stddev_samp             0       1231    "{0,0,0}" ));
 
186
DATA(insert ( 2156      int2_accum      numeric_stddev_samp             0       1231    "{0,0,0}" ));
 
187
DATA(insert ( 2157      float4_accum    float8_stddev_samp      0       1022    "{0,0,0}" ));
 
188
DATA(insert ( 2158      float8_accum    float8_stddev_samp      0       1022    "{0,0,0}" ));
 
189
DATA(insert ( 2159      numeric_accum   numeric_stddev_samp 0   1231    "{0,0,0}" ));
 
190
 
 
191
/* SQL2003 binary regression aggregates */
 
192
DATA(insert ( 2818      int8inc_float8_float8           -                               0       20              "0" ));
 
193
DATA(insert ( 2819      float8_regr_accum       float8_regr_sxx                 0       1022    "{0,0,0,0,0,0}" ));
 
194
DATA(insert ( 2820      float8_regr_accum       float8_regr_syy                 0       1022    "{0,0,0,0,0,0}" ));
 
195
DATA(insert ( 2821      float8_regr_accum       float8_regr_sxy                 0       1022    "{0,0,0,0,0,0}" ));
 
196
DATA(insert ( 2822      float8_regr_accum       float8_regr_avgx                0       1022    "{0,0,0,0,0,0}" ));
 
197
DATA(insert ( 2823      float8_regr_accum       float8_regr_avgy                0       1022    "{0,0,0,0,0,0}" ));
 
198
DATA(insert ( 2824      float8_regr_accum       float8_regr_r2                  0       1022    "{0,0,0,0,0,0}" ));
 
199
DATA(insert ( 2825      float8_regr_accum       float8_regr_slope               0       1022    "{0,0,0,0,0,0}" ));
 
200
DATA(insert ( 2826      float8_regr_accum       float8_regr_intercept   0       1022    "{0,0,0,0,0,0}" ));
 
201
DATA(insert ( 2827      float8_regr_accum       float8_covar_pop                0       1022    "{0,0,0,0,0,0}" ));
 
202
DATA(insert ( 2828      float8_regr_accum       float8_covar_samp               0       1022    "{0,0,0,0,0,0}" ));
 
203
DATA(insert ( 2829      float8_regr_accum       float8_corr                             0       1022    "{0,0,0,0,0,0}" ));
 
204
 
 
205
/* boolean-and and boolean-or */
 
206
DATA(insert ( 2517      booland_statefunc       -                       0       16              _null_ ));
 
207
DATA(insert ( 2518      boolor_statefunc        -                       0       16              _null_ ));
 
208
DATA(insert ( 2519      booland_statefunc       -                       0       16              _null_ ));
 
209
 
 
210
/* bitwise integer */
 
211
DATA(insert ( 2236 int2and                -                                     0       21              _null_ ));
 
212
DATA(insert ( 2237 int2or                 -                                     0       21              _null_ ));
 
213
DATA(insert ( 2238 int4and                -                                     0       23              _null_ ));
 
214
DATA(insert ( 2239 int4or                 -                                     0       23              _null_ ));
 
215
DATA(insert ( 2240 int8and                -                                     0       20              _null_ ));
 
216
DATA(insert ( 2241 int8or                 -                                     0       20              _null_ ));
 
217
DATA(insert ( 2242 bitand                 -                                     0       1560    _null_ ));
 
218
DATA(insert ( 2243 bitor                  -                                     0       1560    _null_ ));
 
219
 
 
220
/* xml */
 
221
DATA(insert ( 2901 xmlconcat2     -                                     0       142             _null_ ));
 
222
 
 
223
/* array */
 
224
DATA(insert ( 2335      array_agg_transfn       array_agg_finalfn               0       2281    _null_ ));
 
225
 
 
226
/* text */
 
227
DATA(insert ( 3538      string_agg_transfn      string_agg_finalfn              0       2281    _null_ ));
 
228
 
 
229
/*
 
230
 * prototypes for functions in pg_aggregate.c
 
231
 */
 
232
extern void AggregateCreate(const char *aggName,
 
233
                                Oid aggNamespace,
 
234
                                Oid *aggArgTypes,
 
235
                                int numArgs,
 
236
                                List *aggtransfnName,
 
237
                                List *aggfinalfnName,
 
238
                                List *aggsortopName,
 
239
                                Oid aggTransType,
 
240
                                const char *agginitval);
 
241
 
 
242
#endif   /* PG_AGGREGATE_H */