1 | /*------------------------------------------------------------------------- |
2 | * |
3 | * pg_aggregate_d.h |
4 | * Macro definitions for pg_aggregate |
5 | * |
6 | * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group |
7 | * Portions Copyright (c) 1994, Regents of the University of California |
8 | * |
9 | * NOTES |
10 | * ****************************** |
11 | * *** DO NOT EDIT THIS FILE! *** |
12 | * ****************************** |
13 | * |
14 | * It has been GENERATED by src/backend/catalog/genbki.pl |
15 | * |
16 | *------------------------------------------------------------------------- |
17 | */ |
18 | #ifndef PG_AGGREGATE_D_H |
19 | #define PG_AGGREGATE_D_H |
20 | |
21 | #define AggregateRelationId 2600 |
22 | |
23 | #define Anum_pg_aggregate_aggfnoid 1 |
24 | #define Anum_pg_aggregate_aggkind 2 |
25 | #define Anum_pg_aggregate_aggnumdirectargs 3 |
26 | #define Anum_pg_aggregate_aggtransfn 4 |
27 | #define Anum_pg_aggregate_aggfinalfn 5 |
28 | #define Anum_pg_aggregate_aggcombinefn 6 |
29 | #define Anum_pg_aggregate_aggserialfn 7 |
30 | #define Anum_pg_aggregate_aggdeserialfn 8 |
31 | #define Anum_pg_aggregate_aggmtransfn 9 |
32 | #define Anum_pg_aggregate_aggminvtransfn 10 |
33 | #define Anum_pg_aggregate_aggmfinalfn 11 |
34 | #define 12 |
35 | #define 13 |
36 | #define Anum_pg_aggregate_aggfinalmodify 14 |
37 | #define Anum_pg_aggregate_aggmfinalmodify 15 |
38 | #define Anum_pg_aggregate_aggsortop 16 |
39 | #define Anum_pg_aggregate_aggtranstype 17 |
40 | #define Anum_pg_aggregate_aggtransspace 18 |
41 | #define Anum_pg_aggregate_aggmtranstype 19 |
42 | #define Anum_pg_aggregate_aggmtransspace 20 |
43 | #define Anum_pg_aggregate_agginitval 21 |
44 | #define Anum_pg_aggregate_aggminitval 22 |
45 | |
46 | #define Natts_pg_aggregate 22 |
47 | |
48 | |
49 | /* |
50 | * Symbolic values for aggkind column. We distinguish normal aggregates |
51 | * from ordered-set aggregates (which have two sets of arguments, namely |
52 | * direct and aggregated arguments) and from hypothetical-set aggregates |
53 | * (which are a subclass of ordered-set aggregates in which the last |
54 | * direct arguments have to match up in number and datatypes with the |
55 | * aggregated arguments). |
56 | */ |
57 | #define AGGKIND_NORMAL 'n' |
58 | #define AGGKIND_ORDERED_SET 'o' |
59 | #define AGGKIND_HYPOTHETICAL 'h' |
60 | |
61 | /* Use this macro to test for "ordered-set agg including hypothetical case" */ |
62 | #define AGGKIND_IS_ORDERED_SET(kind) ((kind) != AGGKIND_NORMAL) |
63 | |
64 | /* |
65 | * Symbolic values for aggfinalmodify and aggmfinalmodify columns. |
66 | * Preferably, finalfns do not modify the transition state value at all, |
67 | * but in some cases that would cost too much performance. We distinguish |
68 | * "pure read only" and "trashes it arbitrarily" cases, as well as the |
69 | * intermediate case where multiple finalfn calls are allowed but the |
70 | * transfn cannot be applied anymore after the first finalfn call. |
71 | */ |
72 | #define AGGMODIFY_READ_ONLY 'r' |
73 | #define AGGMODIFY_SHAREABLE 's' |
74 | #define AGGMODIFY_READ_WRITE 'w' |
75 | |
76 | |
77 | #endif /* PG_AGGREGATE_D_H */ |
78 | |