more row refact
This commit is contained in:
parent
34e5bad70b
commit
f65e61148f
|
@ -304,49 +304,9 @@ int32_t tdAddColToSchema(STSchemaBuilder *pBuilder, int8_t type, int8_t flags,
|
||||||
STSchema *tdGetSchemaFromBuilder(STSchemaBuilder *pBuilder);
|
STSchema *tdGetSchemaFromBuilder(STSchemaBuilder *pBuilder);
|
||||||
|
|
||||||
// ----------------- Semantic timestamp key definition
|
// ----------------- Semantic timestamp key definition
|
||||||
// typedef uint64_t TKEY;
|
|
||||||
#define TKEY TSKEY
|
|
||||||
|
|
||||||
#define TKEY_INVALID UINT64_MAX
|
|
||||||
#define TKEY_NULL TKEY_INVALID
|
|
||||||
#define TKEY_NEGATIVE_FLAG (((TKEY)1) << 63)
|
|
||||||
#define TKEY_VALUE_FILTER (~(TKEY_NEGATIVE_FLAG))
|
|
||||||
|
|
||||||
#define TKEY_IS_NEGATIVE(tkey) (((tkey)&TKEY_NEGATIVE_FLAG) != 0)
|
|
||||||
#define TKEY_IS_DELETED(tkey) (false)
|
|
||||||
|
|
||||||
#define tdGetTKEY(key) (key)
|
|
||||||
#define tdGetKey(tskey) (tskey)
|
|
||||||
|
|
||||||
#define MIN_TS_KEY ((TSKEY)0x8000000000000001)
|
#define MIN_TS_KEY ((TSKEY)0x8000000000000001)
|
||||||
#define MAX_TS_KEY ((TSKEY)0x7fffffffffffffff)
|
#define MAX_TS_KEY ((TSKEY)0x7fffffffffffffff)
|
||||||
|
|
||||||
#define TD_TO_TKEY(key) tdGetTKEY(((key) < MIN_TS_KEY) ? MIN_TS_KEY : (((key) > MAX_TS_KEY) ? MAX_TS_KEY : key))
|
|
||||||
|
|
||||||
static FORCE_INLINE TKEY keyToTkey(TSKEY key) {
|
|
||||||
TSKEY lkey = key;
|
|
||||||
if (key > MAX_TS_KEY) {
|
|
||||||
lkey = MAX_TS_KEY;
|
|
||||||
} else if (key < MIN_TS_KEY) {
|
|
||||||
lkey = MIN_TS_KEY;
|
|
||||||
}
|
|
||||||
|
|
||||||
return tdGetTKEY(lkey);
|
|
||||||
}
|
|
||||||
|
|
||||||
static FORCE_INLINE int32_t tkeyComparFn(const void *tkey1, const void *tkey2) {
|
|
||||||
TSKEY key1 = tdGetKey(*(TKEY *)tkey1);
|
|
||||||
TSKEY key2 = tdGetKey(*(TKEY *)tkey2);
|
|
||||||
|
|
||||||
if (key1 < key2) {
|
|
||||||
return -1;
|
|
||||||
} else if (key1 > key2) {
|
|
||||||
return 1;
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
|
@ -1285,7 +1285,7 @@ static void doClearWindows(SAggSupporter* pAggSup, SExprSupp* pSup1, SInterval*
|
||||||
STimeWindow win = getActiveTimeWindow(NULL, &dumyInfo, tsCols[i], pInterval, TSDB_ORDER_ASC);
|
STimeWindow win = getActiveTimeWindow(NULL, &dumyInfo, tsCols[i], pInterval, TSDB_ORDER_ASC);
|
||||||
step = getNumOfRowsInTimeWindow(&pBlock->info, tsCols, i, win.ekey, binarySearchForKey, NULL, TSDB_ORDER_ASC);
|
step = getNumOfRowsInTimeWindow(&pBlock->info, tsCols, i, win.ekey, binarySearchForKey, NULL, TSDB_ORDER_ASC);
|
||||||
uint64_t winGpId = pGpDatas ? pGpDatas[i] : pBlock->info.groupId;
|
uint64_t winGpId = pGpDatas ? pGpDatas[i] : pBlock->info.groupId;
|
||||||
bool res = doClearWindow(pAggSup, pSup1, (char*)&win.skey, sizeof(TKEY), winGpId, numOfOutput);
|
bool res = doClearWindow(pAggSup, pSup1, (char*)&win.skey, sizeof(TSKEY), winGpId, numOfOutput);
|
||||||
if (pUpWins && res) {
|
if (pUpWins && res) {
|
||||||
SWinRes winRes = {.ts = win.skey, .groupId = winGpId};
|
SWinRes winRes = {.ts = win.skey, .groupId = winGpId};
|
||||||
taosArrayPush(pUpWins, &winRes);
|
taosArrayPush(pUpWins, &winRes);
|
||||||
|
@ -2491,8 +2491,8 @@ static void doHashInterval(SOperatorInfo* pOperatorInfo, SSDataBlock* pSDataBloc
|
||||||
if (IS_FINAL_OP(pInfo)) {
|
if (IS_FINAL_OP(pInfo)) {
|
||||||
forwardRows = 1;
|
forwardRows = 1;
|
||||||
} else {
|
} else {
|
||||||
forwardRows = getNumOfRowsInTimeWindow(&pSDataBlock->info, tsCols, startPos, nextWin.ekey, binarySearchForKey, NULL,
|
forwardRows = getNumOfRowsInTimeWindow(&pSDataBlock->info, tsCols, startPos, nextWin.ekey, binarySearchForKey,
|
||||||
TSDB_ORDER_ASC);
|
NULL, TSDB_ORDER_ASC);
|
||||||
}
|
}
|
||||||
if (pInfo->twAggSup.calTrigger == STREAM_TRIGGER_AT_ONCE && pUpdated) {
|
if (pInfo->twAggSup.calTrigger == STREAM_TRIGGER_AT_ONCE && pUpdated) {
|
||||||
saveResultRow(pResult, tableGroupId, pUpdated);
|
saveResultRow(pResult, tableGroupId, pUpdated);
|
||||||
|
|
Loading…
Reference in New Issue