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 
131  SysTable_Aggregation(const SysTable_Aggregation&) = default;
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 
taco::SysTable_Aggregation::m_aggname
std::string m_aggname
Definition: Aggregation.h:114
taco::SysTable_Aggregation::aggtid_colid
static constexpr FieldId aggtid_colid()
Definition: Aggregation.h:148
taco::SysTable_Aggregation::GetDatumVector
std::vector< Datum > GetDatumVector() const
Returns all the fields as a datum vector.
Definition: Aggregation.cpp:41
taco::SysTable_Aggregation::m_aggoprtypid
Oid m_aggoprtypid
Definition: Aggregation.h:109
taco::SysTable_Aggregation::aggid
constexpr Oid aggid() const
Returns the aggregation ID.
Definition: Aggregation.h:23
taco::SysTable_Aggregation::aggrettypid
constexpr Oid aggrettypid() const
Returns the return type of the aggregation finalize function.
Definition: Aggregation.h:47
taco
Definition: datum.h:28
taco::SysTable_Aggregation::aggname
constexpr const std::string & aggname() const
Returns the name of the aggregation.
Definition: Aggregation.h:79
taco::SysTable_Aggregation::m_aggtid
uint8_t m_aggtid
Definition: Aggregation.h:108
taco::SysTable_Aggregation
SysTable_Aggregation is an in-memory cached record in the system catalog SysTable_Aggregation.
Definition: Aggregation.h:16
taco::FieldId
int16_t FieldId
Definition: tdb_base.h:213
taco::SysTable_Aggregation::aggtid
constexpr uint8_t aggtid() const
Returns the type of the aggregation.
Definition: Aggregation.h:31
taco::SysTable_Aggregation::agginitfuncid
constexpr Oid agginitfuncid() const
Returns the initialize function ID.
Definition: Aggregation.h:55
taco::CatCacheInternalAccess
Some internal functions of catalog cache implementations.
Definition: CatCacheBase.h:38
taco::SysTable_Aggregation::SysTable_Aggregation
SysTable_Aggregation(Oid aggid, uint8_t aggtid, Oid aggoprtypid, Oid aggrettypid, Oid agginitfuncid, Oid aggaccfuncid, Oid aggfinalizefuncid, std::string aggname)
Definition: Aggregation.h:86
taco::SysTable_Aggregation::aggname_colid
static constexpr FieldId aggname_colid()
Definition: Aggregation.h:178
taco::SysTable_Aggregation::m_agginitfuncid
Oid m_agginitfuncid
Definition: Aggregation.h:111
taco::SysTable_Aggregation::operator=
SysTable_Aggregation & operator=(const SysTable_Aggregation &)=default
taco::SysTable_Aggregation::Create
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
taco::SysTable_Aggregation::agginitfuncid_colid
static constexpr FieldId agginitfuncid_colid()
Definition: Aggregation.h:163
taco::SysTable_Aggregation::aggoprtypid
constexpr Oid aggoprtypid() const
Returns the type of the datum that the aggregation accumulate function works on.
Definition: Aggregation.h:39
taco::SysTable_Aggregation::aggaccfuncid_colid
static constexpr FieldId aggaccfuncid_colid()
Definition: Aggregation.h:168
taco::BootstrapCatCache
BootstrapCatCache stores hard-coded data needed to bootstrap the entire database catalog.
Definition: BootstrapCatCache.h:21
taco::SysTable_Aggregation::aggaccfuncid
constexpr Oid aggaccfuncid() const
Returns the accumulate function ID.
Definition: Aggregation.h:63
taco::Oid
uint32_t Oid
Definition: tdb_base.h:211
taco::SysTable_Aggregation::m_aggrettypid
Oid m_aggrettypid
Definition: Aggregation.h:110
std
Definition: Record.h:148
taco::SysTable_Aggregation::aggfinalizefuncid_colid
static constexpr FieldId aggfinalizefuncid_colid()
Definition: Aggregation.h:173
taco::SysTable_Aggregation::m_aggfinalizefuncid
Oid m_aggfinalizefuncid
Definition: Aggregation.h:113
taco::SysTable_Aggregation::m_aggaccfuncid
Oid m_aggaccfuncid
Definition: Aggregation.h:112
taco::SysTable_Aggregation::m_aggid
Oid m_aggid
Definition: Aggregation.h:107
taco::SysTable_Aggregation::aggrettypid_colid
static constexpr FieldId aggrettypid_colid()
Definition: Aggregation.h:158
taco::SysTable_Aggregation::aggfinalizefuncid
constexpr Oid aggfinalizefuncid() const
Returns the finalize function ID.
Definition: Aggregation.h:71
taco::SysTable_Aggregation::aggid_colid
static constexpr FieldId aggid_colid()
Definition: Aggregation.h:143
taco::SysTable_Aggregation::aggoprtypid_colid
static constexpr FieldId aggoprtypid_colid()
Definition: Aggregation.h:153