1 /*-------------------------------------------------------------------------
2  *
3  * pg_aggregate_d.h
4  *    Macro definitions for pg_aggregate
5  *
6  * Portions Copyright (c) 1996-2020, 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  */
e_strftime(char * s,size_t max,const char * fmt,const struct tm * tm)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 Anum_pg_aggregate_aggfinalextra 12
35 #define Anum_pg_aggregate_aggmfinalextra 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