• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

taosdata / TDengine / #3798

31 Mar 2025 10:39AM UTC coverage: 9.424% (-20.9%) from 30.372%
#3798

push

travis-ci

happyguoxy
test:add test cases

21549 of 307601 branches covered (7.01%)

Branch coverage included in aggregate %.

36084 of 303967 relevant lines covered (11.87%)

58620.7 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/source/dnode/vnode/src/vnd/vnodeInitApi.c
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
#include "meta.h"
17
#include "storageapi.h"
18
#include "tstreamUpdate.h"
19
#include "vnodeInt.h"
20

21
static void initTsdbReaderAPI(TsdReader* pReader);
22
static void initMetadataAPI(SStoreMeta* pMeta);
23
static void initTqAPI(SStoreTqReader* pTq);
24
static void initStateStoreAPI(SStateStore* pStore);
25
static void initMetaReaderAPI(SStoreMetaReader* pMetaReader);
26
static void initMetaFilterAPI(SMetaDataFilterAPI* pFilter);
27
static void initFunctionStateStore(SFunctionStateStore* pStore);
28
static void initCacheFn(SStoreCacheReader* pCache);
29
static void initSnapshotFn(SStoreSnapshotFn* pSnapshot);
30

31
void initStorageAPI(SStorageAPI* pAPI) {
×
32
  initTsdbReaderAPI(&pAPI->tsdReader);
×
33
  initMetadataAPI(&pAPI->metaFn);
×
34
  initStateStoreAPI(&pAPI->stateStore);
×
35
  initMetaReaderAPI(&pAPI->metaReaderFn);
×
36
  initMetaFilterAPI(&pAPI->metaFilter);
×
37
  initTqAPI(&pAPI->tqReaderFn);
×
38
  initFunctionStateStore(&pAPI->functionStore);
×
39
  initCacheFn(&pAPI->cacheFn);
×
40
  initSnapshotFn(&pAPI->snapshotFn);
×
41
}
×
42

43
void initTsdbReaderAPI(TsdReader* pReader) {
×
44
  pReader->tsdReaderOpen = (int32_t(*)(void*, SQueryTableDataCond*, void*, int32_t, SSDataBlock*, void**, const char*,
×
45
                                       SHashObj**))tsdbReaderOpen2;
46
  pReader->tsdReaderClose = tsdbReaderClose2;
×
47

48
  pReader->tsdNextDataBlock = tsdbNextDataBlock2;
×
49

50
  pReader->tsdReaderRetrieveDataBlock = tsdbRetrieveDataBlock2;
×
51
  pReader->tsdReaderReleaseDataBlock = tsdbReleaseDataBlock2;
×
52

53
  pReader->tsdReaderRetrieveBlockSMAInfo = tsdbRetrieveDatablockSMA2;
×
54

55
  pReader->tsdReaderNotifyClosing = tsdbReaderSetCloseFlag;
×
56
  pReader->tsdReaderResetStatus = tsdbReaderReset2;
×
57

58
  pReader->tsdReaderGetDataBlockDistInfo = tsdbGetFileBlocksDistInfo2;
×
59
  pReader->tsdReaderGetNumOfInMemRows = tsdbGetNumOfRowsInMemTable2;  // todo this function should be moved away
×
60

61
  pReader->tsdSetQueryTableList = tsdbSetTableList2;
×
62
  pReader->tsdSetReaderTaskId = tsdbReaderSetId;
×
63

64
  pReader->tsdSetFilesetDelimited = (void (*)(void*))tsdbSetFilesetDelimited;
×
65
  pReader->tsdSetSetNotifyCb = (void (*)(void*, TsdReaderNotifyCbFn, void*))tsdbReaderSetNotifyCb;
×
66

67
  // file set iterate
68
  pReader->fileSetReaderOpen = tsdbFileSetReaderOpen;
×
69
  pReader->fileSetReadNext = tsdbFileSetReaderNext;
×
70
  pReader->fileSetGetEntryField = tsdbFileSetGetEntryField;
×
71
  pReader->fileSetReaderClose = tsdbFileSetReaderClose;
×
72

73
  pReader->getProgress = (int32_t (*)(const void*, void**, uint64_t*))tsdbReaderGetProgress;
×
74
  pReader->setProgress = (int32_t (*)(void*, const void*, uint64_t))tsdbReaderSetProgress;
×
75
}
×
76

77
void initMetadataAPI(SStoreMeta* pMeta) {
×
78
  pMeta->isTableExisted = metaIsTableExist;
×
79

80
  pMeta->openTableMetaCursor = metaOpenTbCursor;
×
81
  pMeta->closeTableMetaCursor = metaCloseTbCursor;
×
82
  pMeta->pauseTableMetaCursor = metaPauseTbCursor;
×
83
  pMeta->resumeTableMetaCursor = metaResumeTbCursor;
×
84
  pMeta->cursorNext = metaTbCursorNext;
×
85
  pMeta->cursorPrev = metaTbCursorPrev;
×
86

87
  pMeta->getBasicInfo = vnodeGetInfo;
×
88
  pMeta->getNumOfChildTables = metaGetStbStats;
×
89

90
  pMeta->getChildTableList = vnodeGetCtbIdList;
×
91

92
  pMeta->storeGetIndexInfo = vnodeGetIdx;
×
93
  pMeta->getInvertIndex = vnodeGetIvtIdx;
×
94

95
  pMeta->extractTagVal = (const void* (*)(const void*, int16_t, STagVal*))metaGetTableTagVal;
×
96
  pMeta->getTableTags = metaGetTableTags;
×
97
  pMeta->getTableTagsByUid = metaGetTableTagsByUids;
×
98

99
  pMeta->getTableUidByName = metaGetTableUidByName;
×
100
  pMeta->getTableTypeSuidByName = metaGetTableTypeSuidByName;
×
101
  pMeta->getTableNameByUid = metaGetTableNameByUid;
×
102

103
  pMeta->getTableSchema = vnodeGetTableSchema;
×
104
  pMeta->storeGetTableList = vnodeGetTableList;
×
105

106
  pMeta->getCachedTableList = metaGetCachedTableUidList;
×
107
  pMeta->putCachedTableList = metaUidFilterCachePut;
×
108

109
  pMeta->metaGetCachedTbGroup = metaGetCachedTbGroup;
×
110
  pMeta->metaPutTbGroupToCache = metaPutTbGroupToCache;
×
111

112
  pMeta->openCtbCursor = metaOpenCtbCursor;
×
113
  pMeta->resumeCtbCursor = metaResumeCtbCursor;
×
114
  pMeta->pauseCtbCursor = metaPauseCtbCursor;
×
115
  pMeta->closeCtbCursor = metaCloseCtbCursor;
×
116
  pMeta->ctbCursorNext = metaCtbCursorNext;
×
117
  pMeta->getDBSize = vnodeGetDBSize;
×
118
}
×
119

120
void initTqAPI(SStoreTqReader* pTq) {
×
121
#ifdef USE_TQ
122
  pTq->tqReaderOpen = tqReaderOpen;
×
123
  pTq->tqReaderSetColIdList = tqReaderSetColIdList;
×
124

125
  pTq->tqReaderClose = tqReaderClose;
×
126
  pTq->tqReaderSeek = tqReaderSeek;
×
127
  pTq->tqRetrieveBlock = tqRetrieveDataBlock;
×
128

129
  pTq->tqGetTablePrimaryKey = tqGetTablePrimaryKey;
×
130
  pTq->tqSetTablePrimaryKey = tqSetTablePrimaryKey;
×
131
  pTq->tqReaderNextBlockInWal = tqNextBlockInWal;
×
132

133
  pTq->tqNextBlockImpl = tqNextBlockImpl;  // todo remove it
×
134

135
  pTq->tqReaderAddTables = tqReaderAddTbUidList;
×
136
  pTq->tqReaderSetQueryTableList = tqReaderSetTbUidList;
×
137

138
  pTq->tqReaderRemoveTables = tqReaderRemoveTbUidList;
×
139

140
  pTq->tqReaderIsQueriedTable = tqReaderIsQueriedTable;
×
141
  pTq->tqReaderCurrentBlockConsumed = tqCurrentBlockConsumed;
×
142

143
  pTq->tqReaderGetWalReader = tqGetWalReader;  // todo remove it
×
144
  //  pTq->tqReaderRetrieveTaosXBlock = tqRetrieveTaosxBlock;  // todo remove it
145

146
  pTq->tqReaderSetSubmitMsg = tqReaderSetSubmitMsg;  // todo remove it
×
147
  pTq->tqGetResultBlock = tqGetResultBlock;
×
148

149
  //  pTq->tqReaderNextBlockFilterOut = tqNextDataBlockFilterOut;
150
  pTq->tqGetResultBlockTime = tqGetResultBlockTime;
×
151

152
  pTq->tqGetStreamExecProgress = tqGetStreamExecInfo;
×
153

154
  pTq->tqReaderSetVtableInfo = tqReaderSetVtableInfo;
×
155
#endif
156
}
×
157

158
void initStateStoreAPI(SStateStore* pStore) {
×
159
#ifdef USE_STREAM
160
  pStore->streamFileStateInit = streamFileStateInit;
×
161
  pStore->updateInfoDestoryColseWinSBF = updateInfoDestoryColseWinSBF;
×
162

163
  pStore->streamStatePutParName = streamStatePutParName;
×
164
  pStore->streamStateGetParName = streamStateGetParName;
×
165
  pStore->streamStateDeleteParName = streamStateDeleteParName;
×
166
  pStore->streamStateSetParNameInvalid = streamStateSetParNameInvalid;
×
167

168
  pStore->streamStateAddIfNotExist = streamStateAddIfNotExist;
×
169
  pStore->streamStateReleaseBuf = streamStateReleaseBuf;
×
170
  pStore->streamStateClearBuff = streamStateClearBuff;
×
171
  pStore->streamStateFreeVal = streamStateFreeVal;
×
172

173
  pStore->streamStatePut = streamStatePut;
×
174
  pStore->streamStateGet = streamStateGet;
×
175
  pStore->streamStateCheck = streamStateCheck;
×
176
  pStore->streamStateGetByPos = streamStateGetByPos;
×
177
  pStore->streamStateDel = streamStateDel;
×
178
  pStore->streamStateDelByGroupId = streamStateDelByGroupId;
×
179
  pStore->streamStateClear = streamStateClear;
×
180
  pStore->streamStateSaveInfo = streamStateSaveInfo;
×
181
  pStore->streamStateGetInfo = streamStateGetInfo;
×
182
  pStore->streamStateGetNumber = streamStateGetNumber;
×
183
  pStore->streamStateDeleteInfo = streamStateDeleteInfo;
×
184
  pStore->streamStateSetNumber = streamStateSetNumber;
×
185
  pStore->streamStateGetPrev = streamStateGetPrev;
×
186
  pStore->streamStateGetAllPrev = streamStateGetAllPrev;
×
187

188
  pStore->streamStateFillPut = streamStateFillPut;
×
189
  pStore->streamStateFillGet = streamStateFillGet;
×
190
  pStore->streamStateFillAddIfNotExist = streamStateFillAddIfNotExist;
×
191
  pStore->streamStateFillDel = streamStateFillDel;
×
192
  pStore->streamStateFillGetNext = streamStateFillGetNext;
×
193
  pStore->streamStateFillGetPrev = streamStateFillGetPrev;
×
194

195
  pStore->streamStateCurNext = streamStateCurNext;
×
196
  pStore->streamStateCurPrev = streamStateCurPrev;
×
197

198
  pStore->streamStateGetAndCheckCur = streamStateGetAndCheckCur;
×
199
  pStore->streamStateSeekKeyNext = streamStateSeekKeyNext;
×
200
  pStore->streamStateFillSeekKeyNext = streamStateFillSeekKeyNext;
×
201
  pStore->streamStateFillSeekKeyPrev = streamStateFillSeekKeyPrev;
×
202
  pStore->streamStateFreeCur = streamStateFreeCur;
×
203

204
  pStore->streamStateFillGetGroupKVByCur = streamStateFillGetGroupKVByCur;
×
205
  pStore->streamStateGetKVByCur = streamStateGetKVByCur;
×
206

207
  pStore->streamStateClearExpiredState = streamStateClearExpiredState;
×
208
  pStore->streamStateClearExpiredSessionState = streamStateClearExpiredSessionState;
×
209
  pStore->streamStateSetRecFlag = streamStateSetRecFlag;
×
210
  pStore->streamStateGetRecFlag = streamStateGetRecFlag;
×
211

212
  pStore->streamStateSessionAddIfNotExist = streamStateSessionAddIfNotExist;
×
213
  pStore->streamStateSessionPut = streamStateSessionPut;
×
214
  pStore->streamStateSessionGet = streamStateSessionGet;
×
215
  pStore->streamStateSessionDel = streamStateSessionDel;
×
216
  pStore->streamStateSessionReset = streamStateSessionReset;
×
217
  pStore->streamStateSessionClear = streamStateSessionClear;
×
218
  pStore->streamStateSessionGetKVByCur = streamStateSessionGetKVByCur;
×
219
  pStore->streamStateStateAddIfNotExist = streamStateStateAddIfNotExist;
×
220
  pStore->streamStateSessionGetKeyByRange = streamStateSessionGetKeyByRange;
×
221
  pStore->streamStateCountGetKeyByRange = streamStateCountGetKeyByRange;
×
222
  pStore->streamStateSessionAllocWinBuffByNextPosition = streamStateSessionAllocWinBuffByNextPosition;
×
223
  pStore->streamStateSessionSaveToDisk = streamStateSessionSaveToDisk;
×
224
  pStore->streamStateFlushReaminInfoToDisk = streamStateFlushReaminInfoToDisk;
×
225
  pStore->streamStateSessionDeleteAll = streamStateSessionDeleteAll;
×
226

227
  pStore->streamStateCountWinAddIfNotExist = streamStateCountWinAddIfNotExist;
×
228
  pStore->streamStateCountWinAdd = streamStateCountWinAdd;
×
229

230
  pStore->updateInfoInit = updateInfoInit;
×
231
  pStore->updateInfoFillBlockData = updateInfoFillBlockData;
×
232
  pStore->updateInfoIsUpdated = updateInfoIsUpdated;
×
233
  pStore->updateInfoIsTableInserted = updateInfoIsTableInserted;
×
234
  pStore->updateInfoDestroy = updateInfoDestroy;
×
235
  pStore->windowSBfDelete = windowSBfDelete;
×
236
  pStore->windowSBfAdd = windowSBfAdd;
×
237
  pStore->isIncrementalTimeStamp = isIncrementalTimeStamp;
×
238

239
  pStore->updateInfoInitP = updateInfoInitP;
×
240
  pStore->updateInfoAddCloseWindowSBF = updateInfoAddCloseWindowSBF;
×
241
  pStore->updateInfoDestoryColseWinSBF = updateInfoDestoryColseWinSBF;
×
242
  pStore->updateInfoSerialize = updateInfoSerialize;
×
243
  pStore->updateInfoDeserialize = updateInfoDeserialize;
×
244

245
  pStore->streamStateSessionSeekKeyPrev = streamStateSessionSeekKeyPrev;
×
246
  pStore->streamStateSessionSeekKeyNext = streamStateSessionSeekKeyNext;
×
247
  pStore->streamStateCountSeekKeyPrev = streamStateCountSeekKeyPrev;
×
248
  pStore->streamStateSessionSeekKeyCurrentPrev = streamStateSessionSeekKeyCurrentPrev;
×
249
  pStore->streamStateSessionSeekKeyCurrentNext = streamStateSessionSeekKeyCurrentNext;
×
250

251
  pStore->streamStateGroupPut = streamStateGroupPut;
×
252
  pStore->streamStateGroupGetCur = streamStateGroupGetCur;
×
253
  pStore->streamStateGroupCurNext = streamStateGroupCurNext;
×
254
  pStore->streamStateGroupGetKVByCur = streamStateGroupGetKVByCur;
×
255

256
  pStore->streamFileStateDestroy = streamFileStateDestroy;
×
257
  pStore->streamFileStateClear = streamFileStateClear;
×
258
  pStore->needClearDiskBuff = needClearDiskBuff;
×
259

260
  pStore->streamStateGetAndSetTsData = streamStateGetAndSetTsData;
×
261
  pStore->streamStateTsDataCommit = streamStateTsDataCommit;
×
262
  pStore->streamStateInitTsDataState = streamStateInitTsDataState;
×
263
  pStore->streamStateDestroyTsDataState = streamStateDestroyTsDataState;
×
264
  pStore->streamStateRecoverTsData = streamStateRecoverTsData;
×
265
  pStore->streamStateReloadTsDataState = streamStateReloadTsDataState;
×
266
  pStore->streamStateMergeAndSaveScanRange = streamStateMergeAndSaveScanRange;
×
267
  pStore->streamStateMergeAllScanRange = streamStateMergeAllScanRange;
×
268
  pStore->streamStatePopScanRange = streamStatePopScanRange;
×
269

270
  pStore->streamStateCheckSessionState = streamStateCheckSessionState;
×
271
  pStore->streamStateGetLastStateCur = streamStateGetLastStateCur;
×
272
  pStore->streamStateLastStateCurNext = streamStateLastStateCurNext;
×
273
  pStore->streamStateNLastStateGetKVByCur = streamStateNLastStateGetKVByCur;
×
274
  pStore->streamStateGetLastSessionStateCur = streamStateGetLastSessionStateCur;
×
275
  pStore->streamStateLastSessionStateCurNext = streamStateLastSessionStateCurNext;
×
276
  pStore->streamStateNLastSessionStateGetKVByCur = streamStateNLastSessionStateGetKVByCur;
×
277

278
  pStore->streamStateOpen = streamStateOpen;
×
279
  pStore->streamStateClose = streamStateClose;
×
280
  pStore->streamStateBegin = streamStateBegin;
×
281
  pStore->streamStateCommit = streamStateCommit;
×
282
  pStore->streamStateDestroy = streamStateDestroy;
×
283
  pStore->streamStateReloadInfo = streamStateReloadInfo;
×
284
  pStore->streamStateCopyBackend = streamStateCopyBackend;
×
285
#endif
286
}
×
287

288
void initMetaReaderAPI(SStoreMetaReader* pMetaReader) {
×
289
  pMetaReader->initReader = _metaReaderInit;
×
290
  pMetaReader->clearReader = metaReaderClear;
×
291

292
  pMetaReader->getTableEntryByUid = metaReaderGetTableEntryByUid;
×
293

294
  pMetaReader->getEntryGetUidCache = metaReaderGetTableEntryByUidCache;
×
295
  pMetaReader->getTableEntryByName = metaGetTableEntryByName;
×
296

297
  pMetaReader->readerReleaseLock = metaReaderReleaseLock;
×
298
}
×
299

300
void initMetaFilterAPI(SMetaDataFilterAPI* pFilter) {
×
301
  pFilter->metaFilterCreateTime = metaFilterCreateTime;
×
302
  pFilter->metaFilterTableIds = metaFilterTableIds;
×
303
  pFilter->metaFilterTableName = metaFilterTableName;
×
304
  pFilter->metaFilterTtl = metaFilterTtl;
×
305
}
×
306

307
void initFunctionStateStore(SFunctionStateStore* pStore) {
×
308
#ifdef USE_STREAM
309
  pStore->streamStateFuncPut = streamStateFuncPut;
×
310
  pStore->streamStateFuncGet = streamStateFuncGet;
×
311
#endif
312
}
×
313

314
void initCacheFn(SStoreCacheReader* pCache) {
×
315
  pCache->openReader = tsdbCacherowsReaderOpen;
×
316
  pCache->closeReader = tsdbCacherowsReaderClose;
×
317
  pCache->retrieveRows = tsdbRetrieveCacheRows;
×
318
  pCache->reuseReader = tsdbReuseCacherowsReader;
×
319
}
×
320

321
void initSnapshotFn(SStoreSnapshotFn* pSnapshot) {
×
322
  pSnapshot->taosXGetTablePrimaryKey = taosXGetTablePrimaryKey;
×
323
  pSnapshot->taosXSetTablePrimaryKey = taosXSetTablePrimaryKey;
×
324
  pSnapshot->setForSnapShot = setForSnapShot;
×
325
  pSnapshot->destroySnapshot = destroySnapContext;
×
326
  pSnapshot->getMetaTableInfoFromSnapshot = getMetaTableInfoFromSnapshot;
×
327
  pSnapshot->getTableInfoFromSnapshot = getTableInfoFromSnapshot;
×
328
}
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc