/src/tdengine/include/common/tcommon.h
Line | Count | Source |
1 | | /* |
2 | | * Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com> |
3 | | * |
4 | | * This program is free software: you can use, redistribute, and/or modify |
5 | | * it under the terms of the GNU Affero General Public License, version 3 |
6 | | * or later ("AGPL"), as published by the Free Software Foundation. |
7 | | * |
8 | | * This program is distributed in the hope that it will be useful, but WITHOUT |
9 | | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
10 | | * FITNESS FOR A PARTICULAR PURPOSE. |
11 | | * |
12 | | * You should have received a copy of the GNU Affero General Public License |
13 | | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
14 | | */ |
15 | | |
16 | | #ifndef _TD_COMMON_DEF_H_ |
17 | | #define _TD_COMMON_DEF_H_ |
18 | | |
19 | | #include "tarray.h" |
20 | | #include "tmsg.h" |
21 | | #include "tvariant.h" |
22 | | |
23 | | #ifdef __cplusplus |
24 | | extern "C" { |
25 | | #endif |
26 | | |
27 | | // clang-format off |
28 | | #define IS_META_MSG(x) ( \ |
29 | | x == TDMT_VND_CREATE_STB \ |
30 | | || x == TDMT_VND_ALTER_STB \ |
31 | | || x == TDMT_VND_DROP_STB \ |
32 | | || x == TDMT_VND_CREATE_TABLE \ |
33 | | || x == TDMT_VND_ALTER_TABLE \ |
34 | | || x == TDMT_VND_DROP_TABLE \ |
35 | | || x == TDMT_VND_DELETE \ |
36 | | || x == TDMT_VND_TXN_COMMIT \ |
37 | | || x == TDMT_VND_TXN_ROLLBACK \ |
38 | | ) |
39 | | // clang-format on |
40 | | |
41 | | typedef bool (*state_key_cmpr_fn)(void* pKey1, void* pKey2); |
42 | | |
43 | | typedef struct STableKeyInfo { |
44 | | uint64_t uid; |
45 | | uint64_t groupId; |
46 | | uint64_t baseGId; |
47 | | } STableKeyInfo; |
48 | | |
49 | | typedef struct SWinKey { |
50 | | uint64_t groupId; |
51 | | TSKEY ts; |
52 | | int32_t numInGroup; |
53 | | } SWinKey; |
54 | | |
55 | | typedef struct SSessionKey { |
56 | | STimeWindow win; |
57 | | uint64_t groupId; |
58 | | } SSessionKey; |
59 | | |
60 | | typedef int64_t COUNT_TYPE; |
61 | | |
62 | | typedef struct SVersionRange { |
63 | | int64_t minVer; |
64 | | int64_t maxVer; |
65 | | } SVersionRange; |
66 | | |
67 | 0 | static inline int winKeyCmprImpl(const void* pKey1, const void* pKey2) { |
68 | 0 | SWinKey* pWin1 = (SWinKey*)pKey1; |
69 | 0 | SWinKey* pWin2 = (SWinKey*)pKey2; |
70 | 0 |
|
71 | 0 | if (pWin1->groupId > pWin2->groupId) { |
72 | 0 | return 1; |
73 | 0 | } else if (pWin1->groupId < pWin2->groupId) { |
74 | 0 | return -1; |
75 | 0 | } |
76 | 0 |
|
77 | 0 | if (pWin1->ts > pWin2->ts) { |
78 | 0 | return 1; |
79 | 0 | } else if (pWin1->ts < pWin2->ts) { |
80 | 0 | return -1; |
81 | 0 | } |
82 | 0 |
|
83 | 0 | return 0; |
84 | 0 | } Unexecuted instantiation: sql-fuzzer.c:winKeyCmprImpl Unexecuted instantiation: parser.c:winKeyCmprImpl Unexecuted instantiation: parTranslater.c:winKeyCmprImpl Unexecuted instantiation: parUtil.c:winKeyCmprImpl Unexecuted instantiation: parAstParser.c:winKeyCmprImpl Unexecuted instantiation: parAuthenticator.c:winKeyCmprImpl Unexecuted instantiation: parCalcConst.c:winKeyCmprImpl Unexecuted instantiation: parInsertSql.c:winKeyCmprImpl Unexecuted instantiation: parInsertUtil.c:winKeyCmprImpl Unexecuted instantiation: taos_lemon_sql.tab.c:winKeyCmprImpl Unexecuted instantiation: parAstCreater.c:winKeyCmprImpl Unexecuted instantiation: parInsertSml.c:winKeyCmprImpl Unexecuted instantiation: planLogicCreater.c:winKeyCmprImpl Unexecuted instantiation: planOptimizer.c:winKeyCmprImpl Unexecuted instantiation: planPhysiCreater.c:winKeyCmprImpl Unexecuted instantiation: planSpliter.c:winKeyCmprImpl Unexecuted instantiation: planUtil.c:winKeyCmprImpl Unexecuted instantiation: planValidator.c:winKeyCmprImpl Unexecuted instantiation: catalog.c:winKeyCmprImpl Unexecuted instantiation: ctgAsync.c:winKeyCmprImpl Unexecuted instantiation: ctgCache.c:winKeyCmprImpl Unexecuted instantiation: ctgDbg.c:winKeyCmprImpl Unexecuted instantiation: ctgRemote.c:winKeyCmprImpl Unexecuted instantiation: ctgRent.c:winKeyCmprImpl Unexecuted instantiation: ctgUtil.c:winKeyCmprImpl Unexecuted instantiation: extConnector.c:winKeyCmprImpl Unexecuted instantiation: functionMgt.c:winKeyCmprImpl Unexecuted instantiation: tudf.c:winKeyCmprImpl Unexecuted instantiation: builtins.c:winKeyCmprImpl Unexecuted instantiation: builtinsimpl.c:winKeyCmprImpl Unexecuted instantiation: thistogram.c:winKeyCmprImpl Unexecuted instantiation: tpercentile.c:winKeyCmprImpl Unexecuted instantiation: tavgfunction.c:winKeyCmprImpl Unexecuted instantiation: tminmax.c:winKeyCmprImpl Unexecuted instantiation: tminmaxavx.c:winKeyCmprImpl Unexecuted instantiation: filter.c:winKeyCmprImpl Unexecuted instantiation: scalar.c:winKeyCmprImpl Unexecuted instantiation: sclfunc.c:winKeyCmprImpl Unexecuted instantiation: sclvector.c:winKeyCmprImpl Unexecuted instantiation: nodesCloneFuncs.c:winKeyCmprImpl Unexecuted instantiation: nodesCodeFuncs.c:winKeyCmprImpl Unexecuted instantiation: nodesEqualFuncs.c:winKeyCmprImpl Unexecuted instantiation: nodesMsgFuncs.c:winKeyCmprImpl Unexecuted instantiation: nodesUtilFuncs.c:winKeyCmprImpl Unexecuted instantiation: extTypeMap.c:winKeyCmprImpl Unexecuted instantiation: geomFunc.c:winKeyCmprImpl Unexecuted instantiation: tdigest.c:winKeyCmprImpl Unexecuted instantiation: tlog.c:winKeyCmprImpl Unexecuted instantiation: tdatablock.c:winKeyCmprImpl Unexecuted instantiation: tdataformat.c:winKeyCmprImpl Unexecuted instantiation: tmisce.c:winKeyCmprImpl Unexecuted instantiation: tname.c:winKeyCmprImpl Unexecuted instantiation: ttime.c:winKeyCmprImpl Unexecuted instantiation: streamMsg.c:winKeyCmprImpl |
85 | | |
86 | 0 | static inline int winKeyCmpr(const void* pKey1, int kLen1, const void* pKey2, int kLen2) { |
87 | 0 | return winKeyCmprImpl(pKey1, pKey2); |
88 | 0 | } Unexecuted instantiation: sql-fuzzer.c:winKeyCmpr Unexecuted instantiation: parser.c:winKeyCmpr Unexecuted instantiation: parTranslater.c:winKeyCmpr Unexecuted instantiation: parUtil.c:winKeyCmpr Unexecuted instantiation: parAstParser.c:winKeyCmpr Unexecuted instantiation: parAuthenticator.c:winKeyCmpr Unexecuted instantiation: parCalcConst.c:winKeyCmpr Unexecuted instantiation: parInsertSql.c:winKeyCmpr Unexecuted instantiation: parInsertUtil.c:winKeyCmpr Unexecuted instantiation: taos_lemon_sql.tab.c:winKeyCmpr Unexecuted instantiation: parAstCreater.c:winKeyCmpr Unexecuted instantiation: parInsertSml.c:winKeyCmpr Unexecuted instantiation: planLogicCreater.c:winKeyCmpr Unexecuted instantiation: planOptimizer.c:winKeyCmpr Unexecuted instantiation: planPhysiCreater.c:winKeyCmpr Unexecuted instantiation: planSpliter.c:winKeyCmpr Unexecuted instantiation: planUtil.c:winKeyCmpr Unexecuted instantiation: planValidator.c:winKeyCmpr Unexecuted instantiation: catalog.c:winKeyCmpr Unexecuted instantiation: ctgAsync.c:winKeyCmpr Unexecuted instantiation: ctgCache.c:winKeyCmpr Unexecuted instantiation: ctgDbg.c:winKeyCmpr Unexecuted instantiation: ctgRemote.c:winKeyCmpr Unexecuted instantiation: ctgRent.c:winKeyCmpr Unexecuted instantiation: ctgUtil.c:winKeyCmpr Unexecuted instantiation: extConnector.c:winKeyCmpr Unexecuted instantiation: functionMgt.c:winKeyCmpr Unexecuted instantiation: tudf.c:winKeyCmpr Unexecuted instantiation: builtins.c:winKeyCmpr Unexecuted instantiation: builtinsimpl.c:winKeyCmpr Unexecuted instantiation: thistogram.c:winKeyCmpr Unexecuted instantiation: tpercentile.c:winKeyCmpr Unexecuted instantiation: tavgfunction.c:winKeyCmpr Unexecuted instantiation: tminmax.c:winKeyCmpr Unexecuted instantiation: tminmaxavx.c:winKeyCmpr Unexecuted instantiation: filter.c:winKeyCmpr Unexecuted instantiation: scalar.c:winKeyCmpr Unexecuted instantiation: sclfunc.c:winKeyCmpr Unexecuted instantiation: sclvector.c:winKeyCmpr Unexecuted instantiation: nodesCloneFuncs.c:winKeyCmpr Unexecuted instantiation: nodesCodeFuncs.c:winKeyCmpr Unexecuted instantiation: nodesEqualFuncs.c:winKeyCmpr Unexecuted instantiation: nodesMsgFuncs.c:winKeyCmpr Unexecuted instantiation: nodesUtilFuncs.c:winKeyCmpr Unexecuted instantiation: extTypeMap.c:winKeyCmpr Unexecuted instantiation: geomFunc.c:winKeyCmpr Unexecuted instantiation: tdigest.c:winKeyCmpr Unexecuted instantiation: tlog.c:winKeyCmpr Unexecuted instantiation: tdatablock.c:winKeyCmpr Unexecuted instantiation: tdataformat.c:winKeyCmpr Unexecuted instantiation: tmisce.c:winKeyCmpr Unexecuted instantiation: tname.c:winKeyCmpr Unexecuted instantiation: ttime.c:winKeyCmpr Unexecuted instantiation: streamMsg.c:winKeyCmpr |
89 | | |
90 | | typedef struct { |
91 | | uint64_t groupId; |
92 | | TSKEY ts; |
93 | | int32_t exprIdx; |
94 | | } STupleKey; |
95 | | |
96 | 0 | static inline int STupleKeyCmpr(const void* pKey1, int kLen1, const void* pKey2, int kLen2) { |
97 | 0 | STupleKey* pTuple1 = (STupleKey*)pKey1; |
98 | 0 | STupleKey* pTuple2 = (STupleKey*)pKey2; |
99 | 0 |
|
100 | 0 | if (pTuple1->groupId > pTuple2->groupId) { |
101 | 0 | return 1; |
102 | 0 | } else if (pTuple1->groupId < pTuple2->groupId) { |
103 | 0 | return -1; |
104 | 0 | } |
105 | 0 |
|
106 | 0 | if (pTuple1->ts > pTuple2->ts) { |
107 | 0 | return 1; |
108 | 0 | } else if (pTuple1->ts < pTuple2->ts) { |
109 | 0 | return -1; |
110 | 0 | } |
111 | 0 |
|
112 | 0 | if (pTuple1->exprIdx > pTuple2->exprIdx) { |
113 | 0 | return 1; |
114 | 0 | } else if (pTuple1->exprIdx < pTuple2->exprIdx) { |
115 | 0 | return -1; |
116 | 0 | } |
117 | 0 |
|
118 | 0 | return 0; |
119 | 0 | } Unexecuted instantiation: sql-fuzzer.c:STupleKeyCmpr Unexecuted instantiation: parser.c:STupleKeyCmpr Unexecuted instantiation: parTranslater.c:STupleKeyCmpr Unexecuted instantiation: parUtil.c:STupleKeyCmpr Unexecuted instantiation: parAstParser.c:STupleKeyCmpr Unexecuted instantiation: parAuthenticator.c:STupleKeyCmpr Unexecuted instantiation: parCalcConst.c:STupleKeyCmpr Unexecuted instantiation: parInsertSql.c:STupleKeyCmpr Unexecuted instantiation: parInsertUtil.c:STupleKeyCmpr Unexecuted instantiation: taos_lemon_sql.tab.c:STupleKeyCmpr Unexecuted instantiation: parAstCreater.c:STupleKeyCmpr Unexecuted instantiation: parInsertSml.c:STupleKeyCmpr Unexecuted instantiation: planLogicCreater.c:STupleKeyCmpr Unexecuted instantiation: planOptimizer.c:STupleKeyCmpr Unexecuted instantiation: planPhysiCreater.c:STupleKeyCmpr Unexecuted instantiation: planSpliter.c:STupleKeyCmpr Unexecuted instantiation: planUtil.c:STupleKeyCmpr Unexecuted instantiation: planValidator.c:STupleKeyCmpr Unexecuted instantiation: catalog.c:STupleKeyCmpr Unexecuted instantiation: ctgAsync.c:STupleKeyCmpr Unexecuted instantiation: ctgCache.c:STupleKeyCmpr Unexecuted instantiation: ctgDbg.c:STupleKeyCmpr Unexecuted instantiation: ctgRemote.c:STupleKeyCmpr Unexecuted instantiation: ctgRent.c:STupleKeyCmpr Unexecuted instantiation: ctgUtil.c:STupleKeyCmpr Unexecuted instantiation: extConnector.c:STupleKeyCmpr Unexecuted instantiation: functionMgt.c:STupleKeyCmpr Unexecuted instantiation: tudf.c:STupleKeyCmpr Unexecuted instantiation: builtins.c:STupleKeyCmpr Unexecuted instantiation: builtinsimpl.c:STupleKeyCmpr Unexecuted instantiation: thistogram.c:STupleKeyCmpr Unexecuted instantiation: tpercentile.c:STupleKeyCmpr Unexecuted instantiation: tavgfunction.c:STupleKeyCmpr Unexecuted instantiation: tminmax.c:STupleKeyCmpr Unexecuted instantiation: tminmaxavx.c:STupleKeyCmpr Unexecuted instantiation: filter.c:STupleKeyCmpr Unexecuted instantiation: scalar.c:STupleKeyCmpr Unexecuted instantiation: sclfunc.c:STupleKeyCmpr Unexecuted instantiation: sclvector.c:STupleKeyCmpr Unexecuted instantiation: nodesCloneFuncs.c:STupleKeyCmpr Unexecuted instantiation: nodesCodeFuncs.c:STupleKeyCmpr Unexecuted instantiation: nodesEqualFuncs.c:STupleKeyCmpr Unexecuted instantiation: nodesMsgFuncs.c:STupleKeyCmpr Unexecuted instantiation: nodesUtilFuncs.c:STupleKeyCmpr Unexecuted instantiation: extTypeMap.c:STupleKeyCmpr Unexecuted instantiation: geomFunc.c:STupleKeyCmpr Unexecuted instantiation: tdigest.c:STupleKeyCmpr Unexecuted instantiation: tlog.c:STupleKeyCmpr Unexecuted instantiation: tdatablock.c:STupleKeyCmpr Unexecuted instantiation: tdataformat.c:STupleKeyCmpr Unexecuted instantiation: tmisce.c:STupleKeyCmpr Unexecuted instantiation: tname.c:STupleKeyCmpr Unexecuted instantiation: ttime.c:STupleKeyCmpr Unexecuted instantiation: streamMsg.c:STupleKeyCmpr |
120 | | |
121 | | enum { |
122 | | TMQ_MSG_TYPE__POLL_DATA_RSP = 0, |
123 | | TMQ_MSG_TYPE__POLL_META_RSP, |
124 | | TMQ_MSG_TYPE__EP_RSP, |
125 | | TMQ_MSG_TYPE__POLL_DATA_META_RSP, |
126 | | TMQ_MSG_TYPE__WALINFO_RSP, |
127 | | TMQ_MSG_TYPE__POLL_BATCH_META_RSP, |
128 | | TMQ_MSG_TYPE__POLL_RAW_DATA_RSP, |
129 | | }; |
130 | | |
131 | | static const char* const tmqMsgTypeStr[] = { |
132 | | "data", "meta", "ask ep", "meta data", "wal info", "batch meta", "raw data" |
133 | | }; |
134 | | |
135 | | enum { |
136 | | STREAM_INPUT__DATA_SUBMIT = 1, |
137 | | STREAM_INPUT__DATA_BLOCK, |
138 | | STREAM_INPUT__MERGED_SUBMIT, |
139 | | STREAM_INPUT__RECALCULATE, |
140 | | STREAM_INPUT__DATA_RETRIEVE, |
141 | | STREAM_INPUT__GET_RES, |
142 | | STREAM_INPUT__CHECKPOINT, |
143 | | STREAM_INPUT__CHECKPOINT_TRIGGER, |
144 | | STREAM_INPUT__TRANS_STATE, |
145 | | STREAM_INPUT__REF_DATA_BLOCK, |
146 | | STREAM_INPUT__DESTROY, |
147 | | }; |
148 | | |
149 | | #pragma pack(push, 1) |
150 | | typedef struct SColumnDataAgg { |
151 | | int32_t colId; |
152 | | int16_t numOfNull; |
153 | | union { |
154 | | struct { |
155 | | int64_t sum; |
156 | | int64_t max; |
157 | | int64_t min; |
158 | | }; |
159 | | struct { |
160 | | uint64_t decimal128Sum[2]; |
161 | | uint64_t decimal128Max[2]; |
162 | | uint64_t decimal128Min[2]; |
163 | | uint8_t overflow; |
164 | | }; |
165 | | }; |
166 | | } SColumnDataAgg; |
167 | | #pragma pack(pop) |
168 | | |
169 | 0 | #define DECIMAL_AGG_FLAG 0x80000000 |
170 | | |
171 | | #define COL_AGG_GET_SUM_PTR(pAggs, dataType) \ |
172 | | (!IS_DECIMAL_TYPE(dataType) ? (void*)&pAggs->sum : (void*)pAggs->decimal128Sum) |
173 | | |
174 | | #define COL_AGG_GET_MAX_PTR(pAggs, dataType) \ |
175 | | (!IS_DECIMAL_TYPE(dataType) ? (void*)&pAggs->max : (void*)pAggs->decimal128Max) |
176 | | |
177 | | #define COL_AGG_GET_MIN_PTR(pAggs, dataType) \ |
178 | | (!IS_DECIMAL_TYPE(dataType) ? (void*)&pAggs->min : (void*)pAggs->decimal128Min) |
179 | | |
180 | | typedef struct SBlockID { |
181 | | // The uid of table, from which current data block comes. And it is always 0, if current block is the |
182 | | // result of calculation. |
183 | | uint64_t uid; |
184 | | |
185 | | // Block id, acquired and assigned from executor, which created according to the hysical planner. Block id is used |
186 | | // to mark the stage of exec task. |
187 | | int64_t blockId; |
188 | | |
189 | | // Generated by group/partition by [value|tags]. Created and assigned by table-scan operator, group-by operator, |
190 | | // and partition by operator. |
191 | | uint64_t groupId; |
192 | | |
193 | | // Base group id for stream group generated by trigger |
194 | | uint64_t baseGId; |
195 | | } SBlockID; |
196 | | |
197 | | typedef struct SPkInfo { |
198 | | int8_t type; |
199 | | int32_t bytes; |
200 | | union { |
201 | | int64_t val; |
202 | | uint8_t* pData; |
203 | | } skey; |
204 | | union { |
205 | | int64_t val; |
206 | | uint8_t* pData; |
207 | | } ekey; |
208 | | } SPkInfo; |
209 | | |
210 | | typedef struct SDataBlockInfo { |
211 | | STimeWindow window; |
212 | | int32_t rowSize; |
213 | | uint32_t capacity; |
214 | | int64_t rows; // todo hide this attribute |
215 | | SBlockID id; |
216 | | int16_t hasVarCol; |
217 | | int16_t dataLoad; // denote if the data is loaded or not |
218 | | uint8_t scanFlag; |
219 | | bool blankFill; |
220 | | SValue pks[2]; |
221 | | SColumnDataAgg* pBlockAgg; // borrowed block SMA for dynamic aggregate pruning; do not serialize or copy |
222 | | |
223 | | // TODO: optimize and remove following |
224 | | int64_t version; // used for stream, and need serialization |
225 | | int32_t childId; // used for stream, do not serialize |
226 | | STimeWindow calWin; // used for stream, do not serialize |
227 | | TSKEY watermark; // used for stream |
228 | | |
229 | | char parTbName[TSDB_TABLE_NAME_LEN]; // used for stream partition |
230 | | } SDataBlockInfo; |
231 | | |
232 | | typedef struct SSDataBlock { |
233 | | SColumnDataAgg* pBlockAgg; |
234 | | SArray* pDataBlock; // SArray<SColumnInfoData> |
235 | | SDataBlockInfo info; |
236 | | } SSDataBlock; |
237 | | |
238 | | typedef struct SVarColAttr { |
239 | | int32_t* offset; // start position for each entry in the list |
240 | | uint32_t length; // used buffer size that contain the valid data |
241 | | uint32_t allocLen; // allocated buffer size |
242 | | } SVarColAttr; |
243 | | |
244 | | // pBlockAgg->numOfNull == info.rows, all data are null |
245 | | // pBlockAgg->numOfNull == 0, no data are null. |
246 | | typedef struct SColumnInfoData { |
247 | | char* pData; // the corresponding block data in memory |
248 | | union { |
249 | | char* nullbitmap; // bitmap, one bit for each item in the list |
250 | | SVarColAttr varmeta; |
251 | | }; |
252 | | SColumnInfo info; // column info |
253 | | bool hasNull; // if current column data has null value. |
254 | | bool reassigned; // if current column data is reassigned. |
255 | | } SColumnInfoData; |
256 | | |
257 | | typedef struct SQueryTableDataCond { |
258 | | uint64_t suid; |
259 | | int32_t order; // desc|asc order to iterate the data block |
260 | | int32_t numOfCols; |
261 | | SColumnInfo* colList; |
262 | | int32_t* pSlotList; // the column output destation slot, and it may be null |
263 | | int32_t type; // data block load type: |
264 | | bool skipRollup; |
265 | | STimeWindow twindows; |
266 | | STimeWindow extTwindows[2]; |
267 | | int64_t startVersion; |
268 | | int64_t endVersion; |
269 | | bool notLoadData; // response the actual data, not only the rows in the attribute of info.row of ssdatablock |
270 | | bool cacheSttStatis; |
271 | | } SQueryTableDataCond; |
272 | | |
273 | | int32_t tEncodeDataBlock(void** buf, const SSDataBlock* pBlock); |
274 | | void* tDecodeDataBlock(const void* buf, SSDataBlock* pBlock); |
275 | | |
276 | | void colDataDestroy(SColumnInfoData* pColData); |
277 | | |
278 | | //====================================================================================================================== |
279 | | // the following structure shared by parser and executor |
280 | | typedef struct SColumn { |
281 | | union { |
282 | | uint64_t uid; |
283 | | int64_t dataBlockId; |
284 | | }; |
285 | | |
286 | | int16_t colId; |
287 | | int16_t slotId; |
288 | | |
289 | | char name[TSDB_COL_NAME_LEN]; |
290 | | int16_t colType; // column type: normal column, tag, or window column |
291 | | int16_t type; |
292 | | int32_t bytes; |
293 | | uint8_t precision; |
294 | | uint8_t scale; |
295 | | } SColumn; |
296 | | |
297 | | typedef struct STableBlockDistInfo { |
298 | | uint32_t rowSize; |
299 | | uint16_t numOfFiles; |
300 | | uint32_t numOfTables; |
301 | | uint32_t numOfBlocks; |
302 | | uint64_t totalSize; |
303 | | uint64_t totalRows; |
304 | | int32_t maxRows; |
305 | | int32_t minRows; |
306 | | int32_t defMinRows; |
307 | | int32_t defMaxRows; |
308 | | int32_t firstSeekTimeUs; |
309 | | uint32_t numOfInmemRows; |
310 | | uint32_t numOfSttRows; |
311 | | uint32_t numOfVgroups; |
312 | | int32_t blockRowsHisto[20]; |
313 | | int32_t blockRowsHistoFixed[8]; // buckets: ≤64, ≤128, ≤256, ≤512, ≤1024, ≤2048, ≤4096, >4096 |
314 | | } STableBlockDistInfo; |
315 | | |
316 | | int32_t tSerializeBlockDistInfo(void* buf, int32_t bufLen, const STableBlockDistInfo* pInfo); |
317 | | int32_t tDeserializeBlockDistInfo(void* buf, int32_t bufLen, STableBlockDistInfo* pInfo); |
318 | | |
319 | | typedef struct SDBBlockUsageInfo { |
320 | | uint64_t dataInDiskSize; |
321 | | uint64_t walInDiskSize; |
322 | | uint64_t rawDataSize; |
323 | | } SDBBlockUsageInfo; |
324 | | |
325 | | int32_t tSerializeBlockDbUsage(void* buf, int32_t bufLen, const SDBBlockUsageInfo* pInfo); |
326 | | int32_t tDeserializeBlockDbUsage(void* buf, int32_t bufLen, SDBBlockUsageInfo* pInfo); |
327 | | |
328 | | enum { |
329 | | FUNC_PARAM_TYPE_VALUE = 0x1, |
330 | | FUNC_PARAM_TYPE_COLUMN = 0x2, |
331 | | }; |
332 | | |
333 | | typedef struct SFunctParam { |
334 | | int32_t type; |
335 | | SColumn* pCol; |
336 | | SVariant param; |
337 | | } SFunctParam; |
338 | | |
339 | | // the structure for sql function in select clause |
340 | | typedef struct SResSchame { |
341 | | int8_t type; |
342 | | int32_t slotId; |
343 | | int32_t bytes; |
344 | | int32_t precision; |
345 | | int32_t scale; |
346 | | char name[TSDB_COL_NAME_LEN]; |
347 | | } SResSchema; |
348 | | |
349 | | typedef struct SAggSupporter SAggSupporter; |
350 | | typedef struct SExprSupp SExprSupp; |
351 | | typedef struct SGroupResInfo SGroupResInfo; |
352 | | typedef struct SResultRow SResultRow; |
353 | | typedef struct SResultRowInfo SResultRowInfo; |
354 | | typedef struct SExecTaskInfo SExecTaskInfo; |
355 | | typedef struct SRollupCtx { |
356 | | void* pTsdb; // STsdb* |
357 | | void* pTargets; // SNodeList* |
358 | | void* pBuf; |
359 | | SExprSupp* exprSup; |
360 | | SAggSupporter* aggSup; |
361 | | SResultRow* resultRow; |
362 | | SResultRowInfo* resultRowInfo; |
363 | | SGroupResInfo* pGroupResInfo; |
364 | | SExecTaskInfo* pTaskInfo; |
365 | | SSDataBlock* pInputBlock; // input data block for rollup |
366 | | SSDataBlock* pResBlock; // result data block for rollup |
367 | | SArray* pColValArr; // used the generate the aggregate row |
368 | | int32_t rowSize; |
369 | | int32_t maxBufRows; // max buffer rows for aggregation |
370 | | int64_t winTotalRows; // number of total rows for current window |
371 | | int64_t winStartTs; // start timestamp of current window |
372 | | } SRollupCtx; |
373 | | |
374 | | typedef struct { |
375 | | const char* key; |
376 | | size_t keyLen; |
377 | | uint8_t type; |
378 | | union { |
379 | | const char* value; |
380 | | int64_t i; |
381 | | uint64_t u; |
382 | | double d; |
383 | | float f; |
384 | | }; |
385 | | size_t length; |
386 | | bool keyEscaped; |
387 | | bool valueEscaped; |
388 | | } SSmlKv; |
389 | | |
390 | 0 | #define QUERY_ASC_FORWARD_STEP 1 |
391 | 0 | #define QUERY_DESC_FORWARD_STEP -1 |
392 | | |
393 | 0 | #define GET_FORWARD_DIRECTION_FACTOR(ord) (((ord) != TSDB_ORDER_DESC) ? QUERY_ASC_FORWARD_STEP : QUERY_DESC_FORWARD_STEP) |
394 | | |
395 | | #define SORT_QSORT_T 0x1 |
396 | | #define SORT_SPILLED_MERGE_SORT_T 0x2 |
397 | | typedef struct SSortExecInfo { |
398 | | int32_t sortMethod; |
399 | | int32_t sortBuffer; |
400 | | int32_t loops; // loop count |
401 | | int32_t writeBytes; // write io bytes |
402 | | int32_t readBytes; // read io bytes |
403 | | } SSortExecInfo; |
404 | | |
405 | | typedef struct SExchangeExplainInfo { |
406 | | int8_t mode; // 0: concurrent, 1: sequential |
407 | | int32_t numSources; |
408 | | double avgFetchTimes; |
409 | | uint64_t maxFetchTimes; |
410 | | double avgFetchRows; |
411 | | uint64_t maxFetchRows; |
412 | | double avgFetchCost; // us |
413 | | int64_t maxFetchCost; // us |
414 | | } SExchangeExplainInfo; |
415 | | |
416 | | typedef struct SNonSortExecInfo { |
417 | | int32_t blkNums; |
418 | | } SNonSortExecInfo; |
419 | | |
420 | | typedef struct SFederatedScanExplainInfo { |
421 | | int64_t fetchedRows; |
422 | | int64_t fetchBlockCount; |
423 | | int64_t elapsedTimeUs; |
424 | | } SFederatedScanExplainInfo; |
425 | | |
426 | | typedef struct STUidTagInfo { |
427 | | char* name; |
428 | | uint64_t uid; |
429 | | void* pTagVal; |
430 | | } STUidTagInfo; |
431 | | |
432 | | // stream special block column |
433 | | |
434 | | #define START_TS_COLUMN_INDEX 0 |
435 | | #define END_TS_COLUMN_INDEX 1 |
436 | | #define UID_COLUMN_INDEX 2 |
437 | | #define GROUPID_COLUMN_INDEX 3 |
438 | | #define CALCULATE_START_TS_COLUMN_INDEX 4 |
439 | | #define CALCULATE_END_TS_COLUMN_INDEX 5 |
440 | | #define TABLE_NAME_COLUMN_INDEX 6 |
441 | | #define PRIMARY_KEY_COLUMN_INDEX 7 |
442 | | |
443 | | //steam get result block column |
444 | | #define DATA_TS_COLUMN_INDEX 0 |
445 | | #define DATA_VERSION_COLUMN_INDEX 1 |
446 | | |
447 | | // stream create table block column |
448 | | #define UD_TABLE_NAME_COLUMN_INDEX 0 |
449 | | #define UD_GROUPID_COLUMN_INDEX 1 |
450 | | #define UD_TAG_COLUMN_INDEX 2 |
451 | | |
452 | | // stream notify event block column |
453 | | #define NOTIFY_EVENT_STR_COLUMN_INDEX 0 |
454 | | |
455 | | int32_t taosGenCrashJsonMsg(int signum, char** pMsg, int64_t clusterId, int64_t startTime); |
456 | | |
457 | | #define SHOW_VAR_PRIV_SYSTEM 0x01 |
458 | | #define SHOW_VAR_PRIV_SECURITY 0x02 |
459 | | #define SHOW_VAR_PRIV_AUDIT 0x04 |
460 | | #define SHOW_VAR_PRIV_DEBUG 0x08 |
461 | | #define SHOW_VAR_PRIV_ALL (SHOW_VAR_PRIV_SYSTEM | SHOW_VAR_PRIV_SECURITY | SHOW_VAR_PRIV_AUDIT | SHOW_VAR_PRIV_DEBUG) |
462 | | |
463 | | int32_t dumpConfToDataBlock(SSDataBlock* pBlock, int32_t startCol, char* likePattern, uint8_t showPrivMask); |
464 | | |
465 | 0 | #define TSMA_RES_STB_POSTFIX "_tsma_res_stb_" |
466 | 0 | #define MD5_OUTPUT_LEN 32 |
467 | 0 | #define TSMA_RES_STB_EXTRA_COLUMN_NUM 4 // 3 columns: _wstart, _wend, _wduration, 1 tag: tbname |
468 | | |
469 | 0 | static inline bool isTsmaResSTb(const char* stbName) { |
470 | 0 | static bool showTsmaTables = true; |
471 | 0 | if (showTsmaTables) return false; |
472 | 0 | const char* pos = strstr(stbName, TSMA_RES_STB_POSTFIX); |
473 | 0 | if (pos && strlen(stbName) == (pos - stbName) + strlen(TSMA_RES_STB_POSTFIX)) { |
474 | 0 | return true; |
475 | 0 | } |
476 | 0 | return false; |
477 | 0 | } Unexecuted instantiation: sql-fuzzer.c:isTsmaResSTb Unexecuted instantiation: parser.c:isTsmaResSTb Unexecuted instantiation: parTranslater.c:isTsmaResSTb Unexecuted instantiation: parUtil.c:isTsmaResSTb Unexecuted instantiation: parAstParser.c:isTsmaResSTb Unexecuted instantiation: parAuthenticator.c:isTsmaResSTb Unexecuted instantiation: parCalcConst.c:isTsmaResSTb Unexecuted instantiation: parInsertSql.c:isTsmaResSTb Unexecuted instantiation: parInsertUtil.c:isTsmaResSTb Unexecuted instantiation: taos_lemon_sql.tab.c:isTsmaResSTb Unexecuted instantiation: parAstCreater.c:isTsmaResSTb Unexecuted instantiation: parInsertSml.c:isTsmaResSTb Unexecuted instantiation: planLogicCreater.c:isTsmaResSTb Unexecuted instantiation: planOptimizer.c:isTsmaResSTb Unexecuted instantiation: planPhysiCreater.c:isTsmaResSTb Unexecuted instantiation: planSpliter.c:isTsmaResSTb Unexecuted instantiation: planUtil.c:isTsmaResSTb Unexecuted instantiation: planValidator.c:isTsmaResSTb Unexecuted instantiation: catalog.c:isTsmaResSTb Unexecuted instantiation: ctgAsync.c:isTsmaResSTb Unexecuted instantiation: ctgCache.c:isTsmaResSTb Unexecuted instantiation: ctgDbg.c:isTsmaResSTb Unexecuted instantiation: ctgRemote.c:isTsmaResSTb Unexecuted instantiation: ctgRent.c:isTsmaResSTb Unexecuted instantiation: ctgUtil.c:isTsmaResSTb Unexecuted instantiation: extConnector.c:isTsmaResSTb Unexecuted instantiation: functionMgt.c:isTsmaResSTb Unexecuted instantiation: tudf.c:isTsmaResSTb Unexecuted instantiation: builtins.c:isTsmaResSTb Unexecuted instantiation: builtinsimpl.c:isTsmaResSTb Unexecuted instantiation: thistogram.c:isTsmaResSTb Unexecuted instantiation: tpercentile.c:isTsmaResSTb Unexecuted instantiation: tavgfunction.c:isTsmaResSTb Unexecuted instantiation: tminmax.c:isTsmaResSTb Unexecuted instantiation: tminmaxavx.c:isTsmaResSTb Unexecuted instantiation: filter.c:isTsmaResSTb Unexecuted instantiation: scalar.c:isTsmaResSTb Unexecuted instantiation: sclfunc.c:isTsmaResSTb Unexecuted instantiation: sclvector.c:isTsmaResSTb Unexecuted instantiation: nodesCloneFuncs.c:isTsmaResSTb Unexecuted instantiation: nodesCodeFuncs.c:isTsmaResSTb Unexecuted instantiation: nodesEqualFuncs.c:isTsmaResSTb Unexecuted instantiation: nodesMsgFuncs.c:isTsmaResSTb Unexecuted instantiation: nodesUtilFuncs.c:isTsmaResSTb Unexecuted instantiation: extTypeMap.c:isTsmaResSTb Unexecuted instantiation: geomFunc.c:isTsmaResSTb Unexecuted instantiation: tdigest.c:isTsmaResSTb Unexecuted instantiation: tlog.c:isTsmaResSTb Unexecuted instantiation: tdatablock.c:isTsmaResSTb Unexecuted instantiation: tdataformat.c:isTsmaResSTb Unexecuted instantiation: tmisce.c:isTsmaResSTb Unexecuted instantiation: tname.c:isTsmaResSTb Unexecuted instantiation: ttime.c:isTsmaResSTb Unexecuted instantiation: streamMsg.c:isTsmaResSTb |
478 | | |
479 | 0 | static inline STypeMod typeGetTypeModFromColInfo(const SColumnInfo* pCol) { |
480 | 0 | return typeGetTypeMod(pCol->type, pCol->precision, pCol->scale, pCol->bytes); |
481 | 0 | } Unexecuted instantiation: sql-fuzzer.c:typeGetTypeModFromColInfo Unexecuted instantiation: parser.c:typeGetTypeModFromColInfo Unexecuted instantiation: parTranslater.c:typeGetTypeModFromColInfo Unexecuted instantiation: parUtil.c:typeGetTypeModFromColInfo Unexecuted instantiation: parAstParser.c:typeGetTypeModFromColInfo Unexecuted instantiation: parAuthenticator.c:typeGetTypeModFromColInfo Unexecuted instantiation: parCalcConst.c:typeGetTypeModFromColInfo Unexecuted instantiation: parInsertSql.c:typeGetTypeModFromColInfo Unexecuted instantiation: parInsertUtil.c:typeGetTypeModFromColInfo Unexecuted instantiation: taos_lemon_sql.tab.c:typeGetTypeModFromColInfo Unexecuted instantiation: parAstCreater.c:typeGetTypeModFromColInfo Unexecuted instantiation: parInsertSml.c:typeGetTypeModFromColInfo Unexecuted instantiation: planLogicCreater.c:typeGetTypeModFromColInfo Unexecuted instantiation: planOptimizer.c:typeGetTypeModFromColInfo Unexecuted instantiation: planPhysiCreater.c:typeGetTypeModFromColInfo Unexecuted instantiation: planSpliter.c:typeGetTypeModFromColInfo Unexecuted instantiation: planUtil.c:typeGetTypeModFromColInfo Unexecuted instantiation: planValidator.c:typeGetTypeModFromColInfo Unexecuted instantiation: catalog.c:typeGetTypeModFromColInfo Unexecuted instantiation: ctgAsync.c:typeGetTypeModFromColInfo Unexecuted instantiation: ctgCache.c:typeGetTypeModFromColInfo Unexecuted instantiation: ctgDbg.c:typeGetTypeModFromColInfo Unexecuted instantiation: ctgRemote.c:typeGetTypeModFromColInfo Unexecuted instantiation: ctgRent.c:typeGetTypeModFromColInfo Unexecuted instantiation: ctgUtil.c:typeGetTypeModFromColInfo Unexecuted instantiation: extConnector.c:typeGetTypeModFromColInfo Unexecuted instantiation: functionMgt.c:typeGetTypeModFromColInfo Unexecuted instantiation: tudf.c:typeGetTypeModFromColInfo Unexecuted instantiation: builtins.c:typeGetTypeModFromColInfo Unexecuted instantiation: builtinsimpl.c:typeGetTypeModFromColInfo Unexecuted instantiation: thistogram.c:typeGetTypeModFromColInfo Unexecuted instantiation: tpercentile.c:typeGetTypeModFromColInfo Unexecuted instantiation: tavgfunction.c:typeGetTypeModFromColInfo Unexecuted instantiation: tminmax.c:typeGetTypeModFromColInfo Unexecuted instantiation: tminmaxavx.c:typeGetTypeModFromColInfo Unexecuted instantiation: filter.c:typeGetTypeModFromColInfo Unexecuted instantiation: scalar.c:typeGetTypeModFromColInfo Unexecuted instantiation: sclfunc.c:typeGetTypeModFromColInfo Unexecuted instantiation: sclvector.c:typeGetTypeModFromColInfo Unexecuted instantiation: nodesCloneFuncs.c:typeGetTypeModFromColInfo Unexecuted instantiation: nodesCodeFuncs.c:typeGetTypeModFromColInfo Unexecuted instantiation: nodesEqualFuncs.c:typeGetTypeModFromColInfo Unexecuted instantiation: nodesMsgFuncs.c:typeGetTypeModFromColInfo Unexecuted instantiation: nodesUtilFuncs.c:typeGetTypeModFromColInfo Unexecuted instantiation: extTypeMap.c:typeGetTypeModFromColInfo Unexecuted instantiation: geomFunc.c:typeGetTypeModFromColInfo Unexecuted instantiation: tdigest.c:typeGetTypeModFromColInfo Unexecuted instantiation: tlog.c:typeGetTypeModFromColInfo Unexecuted instantiation: tdatablock.c:typeGetTypeModFromColInfo Unexecuted instantiation: tdataformat.c:typeGetTypeModFromColInfo Unexecuted instantiation: tmisce.c:typeGetTypeModFromColInfo Unexecuted instantiation: tname.c:typeGetTypeModFromColInfo Unexecuted instantiation: ttime.c:typeGetTypeModFromColInfo Unexecuted instantiation: streamMsg.c:typeGetTypeModFromColInfo |
482 | | |
483 | 0 | static inline STypeMod typeGetTypeModFromCol(const SColumn* pCol) { |
484 | 0 | return typeGetTypeMod(pCol->type, pCol->precision, pCol->scale, pCol->bytes); |
485 | 0 | } Unexecuted instantiation: sql-fuzzer.c:typeGetTypeModFromCol Unexecuted instantiation: parser.c:typeGetTypeModFromCol Unexecuted instantiation: parTranslater.c:typeGetTypeModFromCol Unexecuted instantiation: parUtil.c:typeGetTypeModFromCol Unexecuted instantiation: parAstParser.c:typeGetTypeModFromCol Unexecuted instantiation: parAuthenticator.c:typeGetTypeModFromCol Unexecuted instantiation: parCalcConst.c:typeGetTypeModFromCol Unexecuted instantiation: parInsertSql.c:typeGetTypeModFromCol Unexecuted instantiation: parInsertUtil.c:typeGetTypeModFromCol Unexecuted instantiation: taos_lemon_sql.tab.c:typeGetTypeModFromCol Unexecuted instantiation: parAstCreater.c:typeGetTypeModFromCol Unexecuted instantiation: parInsertSml.c:typeGetTypeModFromCol Unexecuted instantiation: planLogicCreater.c:typeGetTypeModFromCol Unexecuted instantiation: planOptimizer.c:typeGetTypeModFromCol Unexecuted instantiation: planPhysiCreater.c:typeGetTypeModFromCol Unexecuted instantiation: planSpliter.c:typeGetTypeModFromCol Unexecuted instantiation: planUtil.c:typeGetTypeModFromCol Unexecuted instantiation: planValidator.c:typeGetTypeModFromCol Unexecuted instantiation: catalog.c:typeGetTypeModFromCol Unexecuted instantiation: ctgAsync.c:typeGetTypeModFromCol Unexecuted instantiation: ctgCache.c:typeGetTypeModFromCol Unexecuted instantiation: ctgDbg.c:typeGetTypeModFromCol Unexecuted instantiation: ctgRemote.c:typeGetTypeModFromCol Unexecuted instantiation: ctgRent.c:typeGetTypeModFromCol Unexecuted instantiation: ctgUtil.c:typeGetTypeModFromCol Unexecuted instantiation: extConnector.c:typeGetTypeModFromCol Unexecuted instantiation: functionMgt.c:typeGetTypeModFromCol Unexecuted instantiation: tudf.c:typeGetTypeModFromCol Unexecuted instantiation: builtins.c:typeGetTypeModFromCol Unexecuted instantiation: builtinsimpl.c:typeGetTypeModFromCol Unexecuted instantiation: thistogram.c:typeGetTypeModFromCol Unexecuted instantiation: tpercentile.c:typeGetTypeModFromCol Unexecuted instantiation: tavgfunction.c:typeGetTypeModFromCol Unexecuted instantiation: tminmax.c:typeGetTypeModFromCol Unexecuted instantiation: tminmaxavx.c:typeGetTypeModFromCol Unexecuted instantiation: filter.c:typeGetTypeModFromCol Unexecuted instantiation: scalar.c:typeGetTypeModFromCol Unexecuted instantiation: sclfunc.c:typeGetTypeModFromCol Unexecuted instantiation: sclvector.c:typeGetTypeModFromCol Unexecuted instantiation: nodesCloneFuncs.c:typeGetTypeModFromCol Unexecuted instantiation: nodesCodeFuncs.c:typeGetTypeModFromCol Unexecuted instantiation: nodesEqualFuncs.c:typeGetTypeModFromCol Unexecuted instantiation: nodesMsgFuncs.c:typeGetTypeModFromCol Unexecuted instantiation: nodesUtilFuncs.c:typeGetTypeModFromCol Unexecuted instantiation: extTypeMap.c:typeGetTypeModFromCol Unexecuted instantiation: geomFunc.c:typeGetTypeModFromCol Unexecuted instantiation: tdigest.c:typeGetTypeModFromCol Unexecuted instantiation: tlog.c:typeGetTypeModFromCol Unexecuted instantiation: tdatablock.c:typeGetTypeModFromCol Unexecuted instantiation: tdataformat.c:typeGetTypeModFromCol Unexecuted instantiation: tmisce.c:typeGetTypeModFromCol Unexecuted instantiation: tname.c:typeGetTypeModFromCol Unexecuted instantiation: ttime.c:typeGetTypeModFromCol Unexecuted instantiation: streamMsg.c:typeGetTypeModFromCol |
486 | | |
487 | | /** |
488 | | @brief Calculate the absolute difference between two int64_t values, |
489 | | and return the result as uint64_t. |
490 | | @note This function utilizes the rule of unsigned integer arithmetic (always |
491 | | mod calculation) to avoid the overflow of the difference calculation and |
492 | | absolute calculation. |
493 | | For example, if a = INT64_MIN(-2^63) and b = 1, the difference b - a is |
494 | | 1 - (-2^63), which is bigger than INT64_MAX(2^63 - 1) and overflow. |
495 | | But if we transfer them to unsigned integer: (uint64_t)a = 2^63, |
496 | | (uint64_t)b = 1. The result is 1 - 2^63 which will be calculated as |
497 | | 1 - 2^63 + 2^64 = 2^64 - 2^63 + 1 = 2^63 + 1, which is not overflow and |
498 | | correct. |
499 | | */ |
500 | 0 | static inline uint64_t safe_abs_diff_i64(int64_t a, int64_t b) { |
501 | 0 | uint64_t ua = (uint64_t)a; |
502 | 0 | uint64_t ub = (uint64_t)b; |
503 | 0 | return a > b ? ua - ub : ub - ua; |
504 | 0 | } Unexecuted instantiation: sql-fuzzer.c:safe_abs_diff_i64 Unexecuted instantiation: parser.c:safe_abs_diff_i64 Unexecuted instantiation: parTranslater.c:safe_abs_diff_i64 Unexecuted instantiation: parUtil.c:safe_abs_diff_i64 Unexecuted instantiation: parAstParser.c:safe_abs_diff_i64 Unexecuted instantiation: parAuthenticator.c:safe_abs_diff_i64 Unexecuted instantiation: parCalcConst.c:safe_abs_diff_i64 Unexecuted instantiation: parInsertSql.c:safe_abs_diff_i64 Unexecuted instantiation: parInsertUtil.c:safe_abs_diff_i64 Unexecuted instantiation: taos_lemon_sql.tab.c:safe_abs_diff_i64 Unexecuted instantiation: parAstCreater.c:safe_abs_diff_i64 Unexecuted instantiation: parInsertSml.c:safe_abs_diff_i64 Unexecuted instantiation: planLogicCreater.c:safe_abs_diff_i64 Unexecuted instantiation: planOptimizer.c:safe_abs_diff_i64 Unexecuted instantiation: planPhysiCreater.c:safe_abs_diff_i64 Unexecuted instantiation: planSpliter.c:safe_abs_diff_i64 Unexecuted instantiation: planUtil.c:safe_abs_diff_i64 Unexecuted instantiation: planValidator.c:safe_abs_diff_i64 Unexecuted instantiation: catalog.c:safe_abs_diff_i64 Unexecuted instantiation: ctgAsync.c:safe_abs_diff_i64 Unexecuted instantiation: ctgCache.c:safe_abs_diff_i64 Unexecuted instantiation: ctgDbg.c:safe_abs_diff_i64 Unexecuted instantiation: ctgRemote.c:safe_abs_diff_i64 Unexecuted instantiation: ctgRent.c:safe_abs_diff_i64 Unexecuted instantiation: ctgUtil.c:safe_abs_diff_i64 Unexecuted instantiation: extConnector.c:safe_abs_diff_i64 Unexecuted instantiation: functionMgt.c:safe_abs_diff_i64 Unexecuted instantiation: tudf.c:safe_abs_diff_i64 Unexecuted instantiation: builtins.c:safe_abs_diff_i64 Unexecuted instantiation: builtinsimpl.c:safe_abs_diff_i64 Unexecuted instantiation: thistogram.c:safe_abs_diff_i64 Unexecuted instantiation: tpercentile.c:safe_abs_diff_i64 Unexecuted instantiation: tavgfunction.c:safe_abs_diff_i64 Unexecuted instantiation: tminmax.c:safe_abs_diff_i64 Unexecuted instantiation: tminmaxavx.c:safe_abs_diff_i64 Unexecuted instantiation: filter.c:safe_abs_diff_i64 Unexecuted instantiation: scalar.c:safe_abs_diff_i64 Unexecuted instantiation: sclfunc.c:safe_abs_diff_i64 Unexecuted instantiation: sclvector.c:safe_abs_diff_i64 Unexecuted instantiation: nodesCloneFuncs.c:safe_abs_diff_i64 Unexecuted instantiation: nodesCodeFuncs.c:safe_abs_diff_i64 Unexecuted instantiation: nodesEqualFuncs.c:safe_abs_diff_i64 Unexecuted instantiation: nodesMsgFuncs.c:safe_abs_diff_i64 Unexecuted instantiation: nodesUtilFuncs.c:safe_abs_diff_i64 Unexecuted instantiation: extTypeMap.c:safe_abs_diff_i64 Unexecuted instantiation: geomFunc.c:safe_abs_diff_i64 Unexecuted instantiation: tdigest.c:safe_abs_diff_i64 Unexecuted instantiation: tlog.c:safe_abs_diff_i64 Unexecuted instantiation: tdatablock.c:safe_abs_diff_i64 Unexecuted instantiation: tdataformat.c:safe_abs_diff_i64 Unexecuted instantiation: tmisce.c:safe_abs_diff_i64 Unexecuted instantiation: tname.c:safe_abs_diff_i64 Unexecuted instantiation: ttime.c:safe_abs_diff_i64 Unexecuted instantiation: streamMsg.c:safe_abs_diff_i64 |
505 | | |
506 | | #ifdef __cplusplus |
507 | | } |
508 | | #endif |
509 | | |
510 | | #endif /*_TD_COMMON_DEF_H_*/ |