[td-13039] refactor.
This commit is contained in:
parent
be73f15a17
commit
024dd9966f
|
@ -416,7 +416,11 @@ typedef struct {
|
|||
* But for data in vnode side, we need all the following information.
|
||||
*/
|
||||
typedef struct {
|
||||
int16_t colId;
|
||||
union {
|
||||
int16_t colId;
|
||||
int16_t slotId;
|
||||
};
|
||||
|
||||
int16_t type;
|
||||
int16_t bytes;
|
||||
SColumnFilterList flist;
|
||||
|
|
|
@ -315,8 +315,6 @@ SSDataBlock* createOutputBuf(SExprInfo* pExpr, int32_t numOfOutput, int32_t numO
|
|||
}
|
||||
|
||||
SSDataBlock* createOutputBuf_rv(SArray* pExprInfo, int32_t numOfRows) {
|
||||
const static int32_t minSize = 8;
|
||||
|
||||
size_t numOfOutput = taosArrayGetSize(pExprInfo);
|
||||
|
||||
SSDataBlock *res = calloc(1, sizeof(SSDataBlock));
|
||||
|
@ -330,15 +328,28 @@ SSDataBlock* createOutputBuf_rv(SArray* pExprInfo, int32_t numOfRows) {
|
|||
idata.info.type = pExpr->base.resSchema.type;
|
||||
idata.info.bytes = pExpr->base.resSchema.bytes;
|
||||
idata.info.colId = pExpr->base.resSchema.colId;
|
||||
|
||||
int32_t size = TMAX(idata.info.bytes * numOfRows, minSize);
|
||||
idata.pData = calloc(1, size); // at least to hold a pointer on x64 platform
|
||||
taosArrayPush(res->pDataBlock, &idata);
|
||||
}
|
||||
|
||||
blockDataEnsureCapacity(res, numOfRows);
|
||||
return res;
|
||||
}
|
||||
|
||||
SSDataBlock* createOutputBuf_rv1(SDataBlockDescNode* pNode) {
|
||||
int32_t numOfCols = LIST_LENGTH(pNode->pSlots);
|
||||
SSDataBlock* pBlock = calloc(1, sizeof(SSDataBlock));
|
||||
pBlock->info.numOfCols = numOfCols;
|
||||
pBlock->pDataBlock = taosArrayInit(numOfCols, sizeof(SColumnInfoData));
|
||||
|
||||
for(int32_t i = 0; i < numOfCols; ++i) {
|
||||
SColumnInfoData idata = {{0}};
|
||||
SSlotDescNode* pDescNode = nodesListGetNode(pNode->pSlots, i);
|
||||
idata.info.type = pDescNode->dataType.type;
|
||||
idata.info.bytes = pDescNode->dataType.bytes;
|
||||
idata.info.slotId = pDescNode->slotId;
|
||||
}
|
||||
}
|
||||
|
||||
static bool isSelectivityWithTagsQuery(SqlFunctionCtx *pCtx, int32_t numOfOutput) {
|
||||
return true;
|
||||
// bool hasTags = false;
|
||||
|
@ -8041,6 +8052,10 @@ static tsdbReaderT doCreateDataReader(STableScanPhysiNode* pTableScanNode, SRead
|
|||
static int32_t doCreateTableGroup(void* metaHandle, int32_t tableType, uint64_t tableUid, STableGroupInfo* pGroupInfo, uint64_t queryId, uint64_t taskId);
|
||||
|
||||
SOperatorInfo* doCreateOperatorTreeNode(SPhysiNode* pPhyNode, SExecTaskInfo* pTaskInfo, SReadHandle* pHandle, uint64_t queryId, uint64_t taskId, STableGroupInfo* pTableGroupInfo) {
|
||||
if (nodeType(pPhyNode) == QUERY_NODE_PHYSICAL_PLAN_PROJECT) { // ignore the project node
|
||||
pPhyNode = nodesListGetNode(pPhyNode->pChildren, 0);
|
||||
}
|
||||
|
||||
if (pPhyNode->pChildren == NULL || LIST_LENGTH(pPhyNode->pChildren) == 0) {
|
||||
if (QUERY_NODE_PHYSICAL_PLAN_TABLE_SCAN == nodeType(pPhyNode)) {
|
||||
SScanPhysiNode* pScanPhyNode = (SScanPhysiNode*)pPhyNode;
|
||||
|
@ -8119,15 +8134,15 @@ static tsdbReaderT createDataReaderImpl(STableScanPhysiNode* pTableScanNode, STa
|
|||
|
||||
cond.twindow = pTableScanNode->scanRange;
|
||||
cond.type = BLOCK_LOAD_OFFSET_SEQ_ORDER;
|
||||
// cond.type = pTableScanNode->scanFlag;
|
||||
|
||||
for (int32_t i = 0; i < cond.numOfCols; ++i) {
|
||||
// SExprInfo* pExprInfo = taosArrayGetP(pTableScanNode->scan.node.pTargets, i);
|
||||
// assert(pExprInfo->pExpr->nodeType == TEXPR_COL_NODE);
|
||||
STargetNode* pNode = (STargetNode*)nodesListGetNode(pTableScanNode->scan.pScanCols, i);
|
||||
|
||||
// SSchema* pSchema = pExprInfo->pExpr->pSchema;
|
||||
// cond.colList[i].type = pSchema->type;
|
||||
// cond.colList[i].bytes = pSchema->bytes;
|
||||
// cond.colList[i].colId = pSchema->colId;
|
||||
SColumnNode* pColNode = (SColumnNode*)pNode->pExpr;
|
||||
cond.colList[i].type = pColNode->colType;
|
||||
cond.colList[i].bytes = pColNode->node.resType.type;
|
||||
cond.colList[i].colId = pColNode->colId;
|
||||
}
|
||||
|
||||
return tsdbQueryTables(readHandle, &cond, pGroupInfo, queryId, taskId);
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -41,6 +41,14 @@
|
|||
|
||||
namespace {
|
||||
|
||||
SColumnInfo createColumnInfo(int32_t colId, int32_t type, int32_t bytes) {
|
||||
SColumnInfo info = {0};
|
||||
info.colId = colId;
|
||||
info.type = type;
|
||||
info.bytes = bytes;
|
||||
return info;
|
||||
}
|
||||
|
||||
int64_t scltLeftV = 21, scltRightV = 10;
|
||||
double scltLeftVd = 21.0, scltRightVd = 10.0;
|
||||
|
||||
|
@ -914,7 +922,7 @@ TEST(columnTest, smallint_value_add_int_column) {
|
|||
|
||||
SArray *blockList = taosArrayInit(2, POINTER_BYTES);
|
||||
taosArrayPush(blockList, &src);
|
||||
SColumnInfo colInfo = {.colId = 1, .type = TSDB_DATA_TYPE_DOUBLE, .bytes = sizeof(double)};
|
||||
SColumnInfo colInfo = createColumnInfo(1, TSDB_DATA_TYPE_DOUBLE, sizeof(double));
|
||||
int16_t dataBlockId = 0, slotId = 0;
|
||||
scltAppendReservedSlot(blockList, &dataBlockId, &slotId, true, rowNum, &colInfo);
|
||||
scltMakeTargetNode(&opNode, dataBlockId, slotId, opNode);
|
||||
|
@ -954,7 +962,7 @@ TEST(columnTest, bigint_column_multi_binary_column) {
|
|||
|
||||
SArray *blockList = taosArrayInit(1, POINTER_BYTES);
|
||||
taosArrayPush(blockList, &src);
|
||||
SColumnInfo colInfo = {.colId = 1, .type = TSDB_DATA_TYPE_DOUBLE, .bytes = sizeof(double)};
|
||||
SColumnInfo colInfo = createColumnInfo(1, TSDB_DATA_TYPE_DOUBLE, sizeof(double));
|
||||
int16_t dataBlockId = 0, slotId = 0;
|
||||
scltAppendReservedSlot(blockList, &dataBlockId, &slotId, false, rowNum, &colInfo);
|
||||
scltMakeTargetNode(&opNode, dataBlockId, slotId, opNode);
|
||||
|
@ -992,7 +1000,7 @@ TEST(columnTest, smallint_column_and_binary_column) {
|
|||
|
||||
SArray *blockList = taosArrayInit(1, POINTER_BYTES);
|
||||
taosArrayPush(blockList, &src);
|
||||
SColumnInfo colInfo = {.colId = 1, .type = TSDB_DATA_TYPE_BIGINT, .bytes = sizeof(int64_t)};
|
||||
SColumnInfo colInfo = createColumnInfo(1, TSDB_DATA_TYPE_BIGINT, sizeof(int64_t));
|
||||
int16_t dataBlockId = 0, slotId = 0;
|
||||
scltAppendReservedSlot(blockList, &dataBlockId, &slotId, false, rowNum, &colInfo);
|
||||
scltMakeTargetNode(&opNode, dataBlockId, slotId, opNode);
|
||||
|
@ -1025,7 +1033,7 @@ TEST(columnTest, smallint_column_or_float_column) {
|
|||
|
||||
SArray *blockList = taosArrayInit(1, POINTER_BYTES);
|
||||
taosArrayPush(blockList, &src);
|
||||
SColumnInfo colInfo = {.colId = 1, .type = TSDB_DATA_TYPE_BIGINT, .bytes = sizeof(int64_t)};
|
||||
SColumnInfo colInfo = createColumnInfo(1, TSDB_DATA_TYPE_BIGINT, sizeof(int64_t));
|
||||
int16_t dataBlockId = 0, slotId = 0;
|
||||
scltAppendReservedSlot(blockList, &dataBlockId, &slotId, true, rowNum, &colInfo);
|
||||
scltMakeTargetNode(&opNode, dataBlockId, slotId, opNode);
|
||||
|
@ -1058,7 +1066,7 @@ TEST(columnTest, smallint_column_or_double_value) {
|
|||
|
||||
SArray *blockList = taosArrayInit(1, POINTER_BYTES);
|
||||
taosArrayPush(blockList, &src);
|
||||
SColumnInfo colInfo = {.colId = 1, .type = TSDB_DATA_TYPE_BIGINT, .bytes = sizeof(int64_t)};
|
||||
SColumnInfo colInfo = createColumnInfo(1, TSDB_DATA_TYPE_BIGINT, sizeof(int64_t));
|
||||
int16_t dataBlockId = 0, slotId = 0;
|
||||
scltAppendReservedSlot(blockList, &dataBlockId, &slotId, true, rowNum, &colInfo);
|
||||
scltMakeTargetNode(&opNode, dataBlockId, slotId, opNode);
|
||||
|
@ -1091,7 +1099,7 @@ TEST(columnTest, smallint_column_greater_double_value) {
|
|||
|
||||
SArray *blockList = taosArrayInit(1, POINTER_BYTES);
|
||||
taosArrayPush(blockList, &src);
|
||||
SColumnInfo colInfo = {.colId = 1, .type = TSDB_DATA_TYPE_BOOL, .bytes = sizeof(bool)};
|
||||
SColumnInfo colInfo = createColumnInfo(1, TSDB_DATA_TYPE_BOOL, sizeof(bool));
|
||||
int16_t dataBlockId = 0, slotId = 0;
|
||||
scltAppendReservedSlot(blockList, &dataBlockId, &slotId, true, rowNum, &colInfo);
|
||||
scltMakeTargetNode(&opNode, dataBlockId, slotId, opNode);
|
||||
|
@ -1131,7 +1139,7 @@ TEST(columnTest, int_column_in_double_list) {
|
|||
|
||||
SArray *blockList = taosArrayInit(1, POINTER_BYTES);
|
||||
taosArrayPush(blockList, &src);
|
||||
SColumnInfo colInfo = {.colId = 1, .type = TSDB_DATA_TYPE_BOOL, .bytes = sizeof(bool)};
|
||||
SColumnInfo colInfo = createColumnInfo(1, TSDB_DATA_TYPE_BOOL, sizeof(bool));
|
||||
int16_t dataBlockId = 0, slotId = 0;
|
||||
scltAppendReservedSlot(blockList, &dataBlockId, &slotId, true, rowNum, &colInfo);
|
||||
scltMakeTargetNode(&opNode, dataBlockId, slotId, opNode);
|
||||
|
@ -1190,7 +1198,7 @@ TEST(columnTest, binary_column_in_binary_list) {
|
|||
|
||||
SArray *blockList = taosArrayInit(1, POINTER_BYTES);
|
||||
taosArrayPush(blockList, &src);
|
||||
SColumnInfo colInfo = {.colId = 1, .type = TSDB_DATA_TYPE_BOOL, .bytes = sizeof(bool)};
|
||||
SColumnInfo colInfo = createColumnInfo(1, TSDB_DATA_TYPE_BOOL, sizeof(bool));
|
||||
int16_t dataBlockId = 0, slotId = 0;
|
||||
scltAppendReservedSlot(blockList, &dataBlockId, &slotId, false, rowNum, &colInfo);
|
||||
scltMakeTargetNode(&opNode, dataBlockId, slotId, opNode);
|
||||
|
@ -1234,7 +1242,7 @@ TEST(columnTest, binary_column_like_binary) {
|
|||
|
||||
SArray *blockList = taosArrayInit(1, POINTER_BYTES);
|
||||
taosArrayPush(blockList, &src);
|
||||
SColumnInfo colInfo = {.colId = 1, .type = TSDB_DATA_TYPE_BOOL, .bytes = sizeof(bool)};
|
||||
SColumnInfo colInfo = createColumnInfo(1, TSDB_DATA_TYPE_BOOL, sizeof(bool));
|
||||
int16_t dataBlockId = 0, slotId = 0;
|
||||
scltAppendReservedSlot(blockList, &dataBlockId, &slotId, false, rowNum, &colInfo);
|
||||
scltMakeTargetNode(&opNode, dataBlockId, slotId, opNode);
|
||||
|
@ -1276,7 +1284,7 @@ TEST(columnTest, binary_column_is_true) {
|
|||
|
||||
SArray *blockList = taosArrayInit(1, POINTER_BYTES);
|
||||
taosArrayPush(blockList, &src);
|
||||
SColumnInfo colInfo = {.colId = 1, .type = TSDB_DATA_TYPE_BOOL, .bytes = sizeof(bool)};
|
||||
SColumnInfo colInfo = createColumnInfo(1, TSDB_DATA_TYPE_BOOL, sizeof(bool));
|
||||
int16_t dataBlockId = 0, slotId = 0;
|
||||
scltAppendReservedSlot(blockList, &dataBlockId, &slotId, false, rowNum, &colInfo);
|
||||
scltMakeTargetNode(&opNode, dataBlockId, slotId, opNode);
|
||||
|
@ -1320,7 +1328,7 @@ TEST(columnTest, binary_column_is_null) {
|
|||
|
||||
SArray *blockList = taosArrayInit(1, POINTER_BYTES);
|
||||
taosArrayPush(blockList, &src);
|
||||
SColumnInfo colInfo = {.colId = 1, .type = TSDB_DATA_TYPE_BOOL, .bytes = sizeof(bool)};
|
||||
SColumnInfo colInfo = createColumnInfo(1, TSDB_DATA_TYPE_BOOL, sizeof(bool));
|
||||
int16_t dataBlockId = 0, slotId = 0;
|
||||
scltAppendReservedSlot(blockList, &dataBlockId, &slotId, false, rowNum, &colInfo);
|
||||
scltMakeTargetNode(&opNode, dataBlockId, slotId, opNode);
|
||||
|
@ -1363,7 +1371,7 @@ TEST(columnTest, binary_column_is_not_null) {
|
|||
|
||||
SArray *blockList = taosArrayInit(1, POINTER_BYTES);
|
||||
taosArrayPush(blockList, &src);
|
||||
SColumnInfo colInfo = {.colId = 1, .type = TSDB_DATA_TYPE_BOOL, .bytes = sizeof(bool)};
|
||||
SColumnInfo colInfo = createColumnInfo(1, TSDB_DATA_TYPE_BOOL, sizeof(bool));
|
||||
int16_t dataBlockId = 0, slotId = 0;
|
||||
scltAppendReservedSlot(blockList, &dataBlockId, &slotId, false, rowNum, &colInfo);
|
||||
scltMakeTargetNode(&opNode, dataBlockId, slotId, opNode);
|
||||
|
@ -1405,7 +1413,7 @@ TEST(columnTest, greater_and_lower) {
|
|||
|
||||
SArray *blockList = taosArrayInit(1, POINTER_BYTES);
|
||||
taosArrayPush(blockList, &src);
|
||||
SColumnInfo colInfo = {.colId = 1, .type = TSDB_DATA_TYPE_BOOL, .bytes = sizeof(bool)};
|
||||
SColumnInfo colInfo = createColumnInfo(1, TSDB_DATA_TYPE_BOOL, sizeof(bool));
|
||||
int16_t dataBlockId = 0, slotId = 0;
|
||||
scltAppendReservedSlot(blockList, &dataBlockId, &slotId, false, rowNum, &colInfo);
|
||||
scltMakeTargetNode(&logicNode, dataBlockId, slotId, logicNode);
|
||||
|
|
Loading…
Reference in New Issue