taco-db  0.1.0
Aggregation.h
Go to the documentation of this file.
1 
7 #ifndef CATALOG_SYSTABLES_Aggregation_H
8 #define CATALOG_SYSTABLES_Aggregation_H
9 
10 namespace taco {
11 
17 public:
18 
22  constexpr Oid
23  aggid() const {
24  return m_aggid;
25  }
26 
30  constexpr uint8_t
31  aggtid() const {
32  return m_aggtid;
33  }
34 
38  constexpr Oid
39  aggoprtypid() const {
40  return m_aggoprtypid;
41  }
42 
46  constexpr Oid
47  aggrettypid() const {
48  return m_aggrettypid;
49  }
50 
54  constexpr Oid
55  agginitfuncid() const {
56  return m_agginitfuncid;
57  }
58 
62  constexpr Oid
63  aggaccfuncid() const {
64  return m_aggaccfuncid;
65  }
66 
70  constexpr Oid
72  return m_aggfinalizefuncid;
73  }
74 
78  constexpr const std::string&
79  aggname() const {
80  return m_aggname;
81  }
82 
83 
84 
85 private:
87  Oid aggid,
88  uint8_t aggtid,
94  std::string aggname
95 
96  ):
97  m_aggid((aggid)),
98  m_aggtid((aggtid)),
104  m_aggname(std::move(aggname))
105 {}
106 
108  uint8_t m_aggtid;
114  std::string m_aggname;
115 
122  std::vector<Datum> GetDatumVector() const;
123 
129  static SysTable_Aggregation *Create(const std::vector<Datum>&);
130 
133 
134  friend class BootstrapCatCache;
136 
137 public:
138  // The following are constants of the field ids in the systables.
139  // These are mostly used by the catalog cache impl. to prevent accidental
140  // misspelling of column names.
141 
142  inline static constexpr FieldId
144  return 0;
145  }
146 
147  inline static constexpr FieldId
149  return 1;
150  }
151 
152  inline static constexpr FieldId
154  return 2;
155  }
156 
157  inline static constexpr FieldId
159  return 3;
160  }
161 
162  inline static constexpr FieldId
164  return 4;
165  }
166 
167  inline static constexpr FieldId
169  return 5;
170  }
171 
172  inline static constexpr FieldId
174  return 6;
175  }
176 
177  inline static constexpr FieldId
179  return 7;
180  }
181 
182 
183 };
184 
185 } // namespace taco
186 
187 #endif // CATALOG_SYSTABLES_Aggregation_H
188 
BootstrapCatCache stores hard-coded data needed to bootstrap the entire database catalog.
Definition: BootstrapCatCache.h:21
Some internal functions of catalog cache implementations.
Definition: CatCacheBase.h:38
SysTable_Aggregation is an in-memory cached record in the system catalog SysTable_Aggregation.
Definition: Aggregation.h:16
static constexpr FieldId aggtid_colid()
Definition: Aggregation.h:148
constexpr Oid aggaccfuncid() const
Returns the accumulate function ID.
Definition: Aggregation.h:63
uint8_t m_aggtid
Definition: Aggregation.h:108
static constexpr FieldId aggname_colid()
Definition: Aggregation.h:178
constexpr Oid aggoprtypid() const
Returns the type of the datum that the aggregation accumulate function works on.
Definition: Aggregation.h:39
constexpr Oid aggid() const
Returns the aggregation ID.
Definition: Aggregation.h:23
constexpr Oid agginitfuncid() const
Returns the initialize function ID.
Definition: Aggregation.h:55
constexpr const std::string & aggname() const
Returns the name of the aggregation.
Definition: Aggregation.h:79
Oid m_agginitfuncid
Definition: Aggregation.h:111
std::vector< Datum > GetDatumVector() const
Returns all the fields as a datum vector.
Definition: Aggregation.cpp:41
constexpr uint8_t aggtid() const
Returns the type of the aggregation.
Definition: Aggregation.h:31
Oid m_aggoprtypid
Definition: Aggregation.h:109
Oid m_aggaccfuncid
Definition: Aggregation.h:112
static constexpr FieldId aggfinalizefuncid_colid()
Definition: Aggregation.h:173
SysTable_Aggregation & operator=(const SysTable_Aggregation &)=default
Oid m_aggid
Definition: Aggregation.h:107
static constexpr FieldId aggrettypid_colid()
Definition: Aggregation.h:158
SysTable_Aggregation(Oid aggid, uint8_t aggtid, Oid aggoprtypid, Oid aggrettypid, Oid agginitfuncid, Oid aggaccfuncid, Oid aggfinalizefuncid, std::string aggname)
Definition: Aggregation.h:86
static constexpr FieldId aggoprtypid_colid()
Definition: Aggregation.h:153
std::string m_aggname
Definition: Aggregation.h:114
static constexpr FieldId aggaccfuncid_colid()
Definition: Aggregation.h:168
static constexpr FieldId aggid_colid()
Definition: Aggregation.h:143
SysTable_Aggregation(const SysTable_Aggregation &)=default
Oid m_aggrettypid
Definition: Aggregation.h:110
constexpr Oid aggrettypid() const
Returns the return type of the aggregation finalize function.
Definition: Aggregation.h:47
Oid m_aggfinalizefuncid
Definition: Aggregation.h:113
static SysTable_Aggregation * Create(const std::vector< Datum > &)
Creates a new SysTable_Aggregation with a data vector read from some record payload.
Definition: Aggregation.cpp:17
static constexpr FieldId agginitfuncid_colid()
Definition: Aggregation.h:163
constexpr Oid aggfinalizefuncid() const
Returns the finalize function ID.
Definition: Aggregation.h:71
Definition: Record.h:148
Definition: datum.h:28
uint32_t Oid
Definition: tdb_base.h:210
int16_t FieldId
Definition: tdb_base.h:212