feature/qnode
This commit is contained in:
parent
2d58e1fed7
commit
62e5ecd6d4
|
@ -183,7 +183,7 @@ int32_t sclInitParam(SNode* node, SScalarParam *param, SScalarCtx *ctx, int32_t
|
||||||
SCL_ERR_RET(TSDB_CODE_QRY_INVALID_INPUT);
|
SCL_ERR_RET(TSDB_CODE_QRY_INVALID_INPUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
SSDataBlock *block = taosArrayGet(ctx->pBlockList, ref->tupleId);
|
SSDataBlock *block = *(SSDataBlock **)taosArrayGet(ctx->pBlockList, ref->tupleId);
|
||||||
|
|
||||||
if (NULL == block || ref->slotId >= taosArrayGetSize(block->pDataBlock)) {
|
if (NULL == block || ref->slotId >= taosArrayGetSize(block->pDataBlock)) {
|
||||||
sclError("column slotId is too big, slodId:%d, dataBlockSize:%d", ref->slotId, (int32_t)taosArrayGetSize(block->pDataBlock));
|
sclError("column slotId is too big, slodId:%d, dataBlockSize:%d", ref->slotId, (int32_t)taosArrayGetSize(block->pDataBlock));
|
||||||
|
|
|
@ -56,6 +56,35 @@ void scltInitLogFile() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void scltAppendReservedSlot(SArray *pBlockList, int16_t *tupleId, int16_t *slotId, bool newBlock, int32_t rows, SColumnInfo *colInfo) {
|
||||||
|
if (newBlock) {
|
||||||
|
SSDataBlock *res = (SSDataBlock *)calloc(1, sizeof(SSDataBlock));
|
||||||
|
res->info.numOfCols = 1;
|
||||||
|
res->info.rows = rows;
|
||||||
|
res->pDataBlock = taosArrayInit(1, sizeof(SColumnInfoData));
|
||||||
|
SColumnInfoData idata = {{0}};
|
||||||
|
idata.info = *colInfo;
|
||||||
|
|
||||||
|
taosArrayPush(res->pDataBlock, &idata);
|
||||||
|
taosArrayPush(pBlockList, &res);
|
||||||
|
|
||||||
|
blockDataEnsureCapacity(res, rows);
|
||||||
|
|
||||||
|
*tupleId = taosArrayGetSize(pBlockList) - 1;
|
||||||
|
*slotId = 0;
|
||||||
|
} else {
|
||||||
|
SSDataBlock *res = *(SSDataBlock **)taosArrayGetLast(pBlockList);
|
||||||
|
res->info.numOfCols++;
|
||||||
|
SColumnInfoData idata = {{0}};
|
||||||
|
idata.info = *colInfo;
|
||||||
|
|
||||||
|
taosArrayPush(res->pDataBlock, &idata);
|
||||||
|
blockDataEnsureCapacity(res, rows);
|
||||||
|
|
||||||
|
*tupleId = taosArrayGetSize(pBlockList) - 1;
|
||||||
|
*slotId = taosArrayGetSize(res->pDataBlock) - 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void scltMakeValueNode(SNode **pNode, int32_t dataType, void *value) {
|
void scltMakeValueNode(SNode **pNode, int32_t dataType, void *value) {
|
||||||
SNode *node = nodesMakeNode(QUERY_NODE_VALUE);
|
SNode *node = nodesMakeNode(QUERY_NODE_VALUE);
|
||||||
|
@ -74,7 +103,7 @@ void scltMakeValueNode(SNode **pNode, int32_t dataType, void *value) {
|
||||||
*pNode = (SNode *)vnode;
|
*pNode = (SNode *)vnode;
|
||||||
}
|
}
|
||||||
|
|
||||||
void scltMakeColRefNode(SNode **pNode, SSDataBlock **block, int32_t dataType, int32_t dataBytes, int32_t rowNum, void *value) {
|
void scltMakeColumnNode(SNode **pNode, SSDataBlock **block, int32_t dataType, int32_t dataBytes, int32_t rowNum, void *value) {
|
||||||
SNode *node = nodesMakeNode(QUERY_NODE_COLUMN);
|
SNode *node = nodesMakeNode(QUERY_NODE_COLUMN);
|
||||||
SColumnNode *rnode = (SColumnNode *)node;
|
SColumnNode *rnode = (SColumnNode *)node;
|
||||||
rnode->node.resType.type = dataType;
|
rnode->node.resType.type = dataType;
|
||||||
|
@ -90,7 +119,7 @@ void scltMakeColRefNode(SNode **pNode, SSDataBlock **block, int32_t dataType, in
|
||||||
SColumnInfoData idata = {{0}};
|
SColumnInfoData idata = {{0}};
|
||||||
idata.info.type = TSDB_DATA_TYPE_NULL;
|
idata.info.type = TSDB_DATA_TYPE_NULL;
|
||||||
idata.info.bytes = 10;
|
idata.info.bytes = 10;
|
||||||
idata.info.colId = 0;
|
idata.info.colId = i + 1;
|
||||||
|
|
||||||
int32_t size = idata.info.bytes * rowNum;
|
int32_t size = idata.info.bytes * rowNum;
|
||||||
idata.pData = (char *)calloc(1, size);
|
idata.pData = (char *)calloc(1, size);
|
||||||
|
@ -100,7 +129,7 @@ void scltMakeColRefNode(SNode **pNode, SSDataBlock **block, int32_t dataType, in
|
||||||
SColumnInfoData idata = {{0}};
|
SColumnInfoData idata = {{0}};
|
||||||
idata.info.type = dataType;
|
idata.info.type = dataType;
|
||||||
idata.info.bytes = dataBytes;
|
idata.info.bytes = dataBytes;
|
||||||
idata.info.colId = 55;
|
idata.info.colId = 3;
|
||||||
idata.pData = (char *)value;
|
idata.pData = (char *)value;
|
||||||
if (IS_VAR_DATA_TYPE(dataType)) {
|
if (IS_VAR_DATA_TYPE(dataType)) {
|
||||||
idata.varmeta.offset = (int32_t *)calloc(rowNum, sizeof(int32_t));
|
idata.varmeta.offset = (int32_t *)calloc(rowNum, sizeof(int32_t));
|
||||||
|
@ -111,7 +140,7 @@ void scltMakeColRefNode(SNode **pNode, SSDataBlock **block, int32_t dataType, in
|
||||||
taosArrayPush(res->pDataBlock, &idata);
|
taosArrayPush(res->pDataBlock, &idata);
|
||||||
|
|
||||||
rnode->slotId = 2;
|
rnode->slotId = 2;
|
||||||
rnode->colId = 55;
|
rnode->colId = 3;
|
||||||
|
|
||||||
*block = res;
|
*block = res;
|
||||||
} else {
|
} else {
|
||||||
|
@ -121,12 +150,12 @@ void scltMakeColRefNode(SNode **pNode, SSDataBlock **block, int32_t dataType, in
|
||||||
SColumnInfoData idata = {{0}};
|
SColumnInfoData idata = {{0}};
|
||||||
idata.info.type = dataType;
|
idata.info.type = dataType;
|
||||||
idata.info.bytes = dataBytes;
|
idata.info.bytes = dataBytes;
|
||||||
idata.info.colId = 55 + idx;
|
idata.info.colId = 1 + idx;
|
||||||
idata.pData = (char *)value;
|
idata.pData = (char *)value;
|
||||||
taosArrayPush(res->pDataBlock, &idata);
|
taosArrayPush(res->pDataBlock, &idata);
|
||||||
|
|
||||||
rnode->slotId = idx;
|
rnode->slotId = idx;
|
||||||
rnode->colId = 55 + idx;
|
rnode->colId = 1 + idx;
|
||||||
}
|
}
|
||||||
|
|
||||||
*pNode = (SNode *)rnode;
|
*pNode = (SNode *)rnode;
|
||||||
|
@ -171,6 +200,17 @@ void scltMakeLogicNode(SNode **pNode, ELogicConditionType opType, SNode **nodeLi
|
||||||
*pNode = (SNode *)onode;
|
*pNode = (SNode *)onode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void scltMakeTargetNode(SNode **pNode, int16_t tupleId, int16_t slotId, SNode *snode) {
|
||||||
|
SNode *node = nodesMakeNode(QUERY_NODE_TARGET);
|
||||||
|
STargetNode *onode = (STargetNode *)node;
|
||||||
|
onode->pExpr = snode;
|
||||||
|
onode->tupleId = tupleId;
|
||||||
|
onode->slotId = slotId;
|
||||||
|
|
||||||
|
*pNode = (SNode *)onode;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -802,22 +842,32 @@ TEST(columnTest, smallint_value_add_int_column) {
|
||||||
int16_t rightv[5]= {0, -5, -4, 23, 100};
|
int16_t rightv[5]= {0, -5, -4, 23, 100};
|
||||||
double eRes[5] = {1.0, -4, -3, 24, 101};
|
double eRes[5] = {1.0, -4, -3, 24, 101};
|
||||||
SSDataBlock *src = NULL;
|
SSDataBlock *src = NULL;
|
||||||
SScalarParam res = {0};
|
|
||||||
int32_t rowNum = sizeof(rightv)/sizeof(rightv[0]);
|
int32_t rowNum = sizeof(rightv)/sizeof(rightv[0]);
|
||||||
scltMakeValueNode(&pLeft, TSDB_DATA_TYPE_INT, &leftv);
|
scltMakeValueNode(&pLeft, TSDB_DATA_TYPE_INT, &leftv);
|
||||||
scltMakeColRefNode(&pRight, &src, TSDB_DATA_TYPE_SMALLINT, sizeof(int16_t), rowNum, rightv);
|
scltMakeColumnNode(&pRight, &src, TSDB_DATA_TYPE_SMALLINT, sizeof(int16_t), rowNum, rightv);
|
||||||
scltMakeOpNode(&opNode, OP_TYPE_ADD, TSDB_DATA_TYPE_DOUBLE, pLeft, pRight);
|
scltMakeOpNode(&opNode, OP_TYPE_ADD, TSDB_DATA_TYPE_DOUBLE, pLeft, pRight);
|
||||||
|
|
||||||
|
SArray *blockList = taosArrayInit(2, POINTER_BYTES);
|
||||||
|
taosArrayPush(blockList, &src);
|
||||||
|
SColumnInfo colInfo = {.colId = 1, .type = TSDB_DATA_TYPE_DOUBLE, .bytes = sizeof(double)};
|
||||||
|
int16_t tupleId = 0, slotId = 0;
|
||||||
|
scltAppendReservedSlot(blockList, &tupleId, &slotId, true, rowNum, &colInfo);
|
||||||
|
scltMakeTargetNode(&opNode, tupleId, slotId, opNode);
|
||||||
|
|
||||||
int32_t code = scalarCalculate(opNode, src, &res);
|
int32_t code = scalarCalculate(opNode, blockList, NULL);
|
||||||
ASSERT_EQ(code, 0);
|
ASSERT_EQ(code, 0);
|
||||||
ASSERT_EQ(res.num, rowNum);
|
|
||||||
ASSERT_EQ(res.type, TSDB_DATA_TYPE_DOUBLE);
|
SSDataBlock *res = *(SSDataBlock **)taosArrayGetLast(blockList);
|
||||||
ASSERT_EQ(res.bytes, tDataTypes[TSDB_DATA_TYPE_DOUBLE].bytes);
|
ASSERT_EQ(res->info.rows, rowNum);
|
||||||
|
SColumnInfoData *column = (SColumnInfoData *)taosArrayGetLast(res->pDataBlock);
|
||||||
|
ASSERT_EQ(column->info.type, TSDB_DATA_TYPE_DOUBLE);
|
||||||
|
ASSERT_EQ(column->info.bytes, tDataTypes[TSDB_DATA_TYPE_DOUBLE].bytes);
|
||||||
for (int32_t i = 0; i < rowNum; ++i) {
|
for (int32_t i = 0; i < rowNum; ++i) {
|
||||||
ASSERT_EQ(*((double *)res.data + i), eRes[i]);
|
ASSERT_EQ(*((double *)colDataGet(column, i)), eRes[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
TEST(columnTest, bigint_column_multi_binary_column) {
|
TEST(columnTest, bigint_column_multi_binary_column) {
|
||||||
SNode *pLeft = NULL, *pRight = NULL, *opNode = NULL;
|
SNode *pLeft = NULL, *pRight = NULL, *opNode = NULL;
|
||||||
int64_t leftv[5]= {1, 2, 3, 4, 5};
|
int64_t leftv[5]= {1, 2, 3, 4, 5};
|
||||||
|
@ -831,8 +881,8 @@ TEST(columnTest, bigint_column_multi_binary_column) {
|
||||||
SSDataBlock *src = NULL;
|
SSDataBlock *src = NULL;
|
||||||
SScalarParam res = {0};
|
SScalarParam res = {0};
|
||||||
int32_t rowNum = sizeof(rightv)/sizeof(rightv[0]);
|
int32_t rowNum = sizeof(rightv)/sizeof(rightv[0]);
|
||||||
scltMakeColRefNode(&pLeft, &src, TSDB_DATA_TYPE_BIGINT, sizeof(int64_t), rowNum, leftv);
|
scltMakeColumnNode(&pLeft, &src, TSDB_DATA_TYPE_BIGINT, sizeof(int64_t), rowNum, leftv);
|
||||||
scltMakeColRefNode(&pRight, &src, TSDB_DATA_TYPE_BINARY, 5, rowNum, rightv);
|
scltMakeColumnNode(&pRight, &src, TSDB_DATA_TYPE_BINARY, 5, rowNum, rightv);
|
||||||
scltMakeOpNode(&opNode, OP_TYPE_MULTI, TSDB_DATA_TYPE_DOUBLE, pLeft, pRight);
|
scltMakeOpNode(&opNode, OP_TYPE_MULTI, TSDB_DATA_TYPE_DOUBLE, pLeft, pRight);
|
||||||
|
|
||||||
int32_t code = scalarCalculate(opNode, src, &res);
|
int32_t code = scalarCalculate(opNode, src, &res);
|
||||||
|
@ -858,8 +908,8 @@ TEST(columnTest, smallint_column_and_binary_column) {
|
||||||
SSDataBlock *src = NULL;
|
SSDataBlock *src = NULL;
|
||||||
SScalarParam res = {0};
|
SScalarParam res = {0};
|
||||||
int32_t rowNum = sizeof(rightv)/sizeof(rightv[0]);
|
int32_t rowNum = sizeof(rightv)/sizeof(rightv[0]);
|
||||||
scltMakeColRefNode(&pLeft, &src, TSDB_DATA_TYPE_SMALLINT, sizeof(int16_t), rowNum, leftv);
|
scltMakeColumnNode(&pLeft, &src, TSDB_DATA_TYPE_SMALLINT, sizeof(int16_t), rowNum, leftv);
|
||||||
scltMakeColRefNode(&pRight, &src, TSDB_DATA_TYPE_BINARY, 5, rowNum, rightv);
|
scltMakeColumnNode(&pRight, &src, TSDB_DATA_TYPE_BINARY, 5, rowNum, rightv);
|
||||||
scltMakeOpNode(&opNode, OP_TYPE_BIT_AND, TSDB_DATA_TYPE_BIGINT, pLeft, pRight);
|
scltMakeOpNode(&opNode, OP_TYPE_BIT_AND, TSDB_DATA_TYPE_BIGINT, pLeft, pRight);
|
||||||
|
|
||||||
int32_t code = scalarCalculate(opNode, src, &res);
|
int32_t code = scalarCalculate(opNode, src, &res);
|
||||||
|
@ -880,8 +930,8 @@ TEST(columnTest, smallint_column_or_float_column) {
|
||||||
SSDataBlock *src = NULL;
|
SSDataBlock *src = NULL;
|
||||||
SScalarParam res = {0};
|
SScalarParam res = {0};
|
||||||
int32_t rowNum = sizeof(rightv)/sizeof(rightv[0]);
|
int32_t rowNum = sizeof(rightv)/sizeof(rightv[0]);
|
||||||
scltMakeColRefNode(&pLeft, &src, TSDB_DATA_TYPE_SMALLINT, sizeof(int16_t), rowNum, leftv);
|
scltMakeColumnNode(&pLeft, &src, TSDB_DATA_TYPE_SMALLINT, sizeof(int16_t), rowNum, leftv);
|
||||||
scltMakeColRefNode(&pRight, &src, TSDB_DATA_TYPE_FLOAT, sizeof(float), rowNum, rightv);
|
scltMakeColumnNode(&pRight, &src, TSDB_DATA_TYPE_FLOAT, sizeof(float), rowNum, rightv);
|
||||||
scltMakeOpNode(&opNode, OP_TYPE_BIT_OR, TSDB_DATA_TYPE_BIGINT, pLeft, pRight);
|
scltMakeOpNode(&opNode, OP_TYPE_BIT_OR, TSDB_DATA_TYPE_BIGINT, pLeft, pRight);
|
||||||
|
|
||||||
int32_t code = scalarCalculate(opNode, src, &res);
|
int32_t code = scalarCalculate(opNode, src, &res);
|
||||||
|
@ -902,7 +952,7 @@ TEST(columnTest, smallint_column_or_double_value) {
|
||||||
SSDataBlock *src = NULL;
|
SSDataBlock *src = NULL;
|
||||||
SScalarParam res = {0};
|
SScalarParam res = {0};
|
||||||
int32_t rowNum = sizeof(leftv)/sizeof(leftv[0]);
|
int32_t rowNum = sizeof(leftv)/sizeof(leftv[0]);
|
||||||
scltMakeColRefNode(&pLeft, &src, TSDB_DATA_TYPE_SMALLINT, sizeof(int16_t), rowNum, leftv);
|
scltMakeColumnNode(&pLeft, &src, TSDB_DATA_TYPE_SMALLINT, sizeof(int16_t), rowNum, leftv);
|
||||||
scltMakeValueNode(&pRight, TSDB_DATA_TYPE_DOUBLE, &rightv);
|
scltMakeValueNode(&pRight, TSDB_DATA_TYPE_DOUBLE, &rightv);
|
||||||
scltMakeOpNode(&opNode, OP_TYPE_BIT_OR, TSDB_DATA_TYPE_BIGINT, pLeft, pRight);
|
scltMakeOpNode(&opNode, OP_TYPE_BIT_OR, TSDB_DATA_TYPE_BIGINT, pLeft, pRight);
|
||||||
|
|
||||||
|
@ -924,7 +974,7 @@ TEST(columnTest, smallint_column_greater_double_value) {
|
||||||
SSDataBlock *src = NULL;
|
SSDataBlock *src = NULL;
|
||||||
SScalarParam res = {0};
|
SScalarParam res = {0};
|
||||||
int32_t rowNum = sizeof(leftv)/sizeof(leftv[0]);
|
int32_t rowNum = sizeof(leftv)/sizeof(leftv[0]);
|
||||||
scltMakeColRefNode(&pLeft, &src, TSDB_DATA_TYPE_SMALLINT, sizeof(int16_t), rowNum, leftv);
|
scltMakeColumnNode(&pLeft, &src, TSDB_DATA_TYPE_SMALLINT, sizeof(int16_t), rowNum, leftv);
|
||||||
scltMakeValueNode(&pRight, TSDB_DATA_TYPE_DOUBLE, &rightv);
|
scltMakeValueNode(&pRight, TSDB_DATA_TYPE_DOUBLE, &rightv);
|
||||||
scltMakeOpNode(&opNode, OP_TYPE_GREATER_THAN, TSDB_DATA_TYPE_BOOL, pLeft, pRight);
|
scltMakeOpNode(&opNode, OP_TYPE_GREATER_THAN, TSDB_DATA_TYPE_BOOL, pLeft, pRight);
|
||||||
|
|
||||||
|
@ -946,7 +996,7 @@ TEST(columnTest, int_column_in_double_list) {
|
||||||
SSDataBlock *src = NULL;
|
SSDataBlock *src = NULL;
|
||||||
SScalarParam res = {0};
|
SScalarParam res = {0};
|
||||||
int32_t rowNum = sizeof(leftv)/sizeof(leftv[0]);
|
int32_t rowNum = sizeof(leftv)/sizeof(leftv[0]);
|
||||||
scltMakeColRefNode(&pLeft, &src, TSDB_DATA_TYPE_INT, sizeof(int32_t), rowNum, leftv);
|
scltMakeColumnNode(&pLeft, &src, TSDB_DATA_TYPE_INT, sizeof(int32_t), rowNum, leftv);
|
||||||
SNodeList* list = nodesMakeList();
|
SNodeList* list = nodesMakeList();
|
||||||
scltMakeValueNode(&pRight, TSDB_DATA_TYPE_DOUBLE, &rightv1);
|
scltMakeValueNode(&pRight, TSDB_DATA_TYPE_DOUBLE, &rightv1);
|
||||||
nodesListAppend(list, pRight);
|
nodesListAppend(list, pRight);
|
||||||
|
@ -994,7 +1044,7 @@ TEST(columnTest, binary_column_in_binary_list) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t rowNum = sizeof(leftv)/sizeof(leftv[0]);
|
int32_t rowNum = sizeof(leftv)/sizeof(leftv[0]);
|
||||||
scltMakeColRefNode(&pLeft, &src, TSDB_DATA_TYPE_BINARY, 3, rowNum, leftv);
|
scltMakeColumnNode(&pLeft, &src, TSDB_DATA_TYPE_BINARY, 3, rowNum, leftv);
|
||||||
SNodeList* list = nodesMakeList();
|
SNodeList* list = nodesMakeList();
|
||||||
scltMakeValueNode(&pRight, TSDB_DATA_TYPE_BINARY, rightv[0]);
|
scltMakeValueNode(&pRight, TSDB_DATA_TYPE_BINARY, rightv[0]);
|
||||||
nodesListAppend(list, pRight);
|
nodesListAppend(list, pRight);
|
||||||
|
@ -1031,7 +1081,7 @@ TEST(columnTest, binary_column_like_binary) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t rowNum = sizeof(leftv)/sizeof(leftv[0]);
|
int32_t rowNum = sizeof(leftv)/sizeof(leftv[0]);
|
||||||
scltMakeColRefNode(&pLeft, &src, TSDB_DATA_TYPE_BINARY, 3, rowNum, leftv);
|
scltMakeColumnNode(&pLeft, &src, TSDB_DATA_TYPE_BINARY, 3, rowNum, leftv);
|
||||||
|
|
||||||
sprintf(&rightv[2], "%s", "__0");
|
sprintf(&rightv[2], "%s", "__0");
|
||||||
varDataSetLen(rightv, strlen(&rightv[2]));
|
varDataSetLen(rightv, strlen(&rightv[2]));
|
||||||
|
@ -1063,7 +1113,7 @@ TEST(columnTest, binary_column_is_true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t rowNum = sizeof(leftv)/sizeof(leftv[0]);
|
int32_t rowNum = sizeof(leftv)/sizeof(leftv[0]);
|
||||||
scltMakeColRefNode(&pLeft, &src, TSDB_DATA_TYPE_BINARY, 3, rowNum, leftv);
|
scltMakeColumnNode(&pLeft, &src, TSDB_DATA_TYPE_BINARY, 3, rowNum, leftv);
|
||||||
|
|
||||||
scltMakeOpNode(&opNode, OP_TYPE_IS_TRUE, TSDB_DATA_TYPE_BOOL, pLeft, NULL);
|
scltMakeOpNode(&opNode, OP_TYPE_IS_TRUE, TSDB_DATA_TYPE_BOOL, pLeft, NULL);
|
||||||
|
|
||||||
|
@ -1094,7 +1144,7 @@ TEST(columnTest, binary_column_is_null) {
|
||||||
setVardataNull(leftv[4], TSDB_DATA_TYPE_BINARY);
|
setVardataNull(leftv[4], TSDB_DATA_TYPE_BINARY);
|
||||||
|
|
||||||
int32_t rowNum = sizeof(leftv)/sizeof(leftv[0]);
|
int32_t rowNum = sizeof(leftv)/sizeof(leftv[0]);
|
||||||
scltMakeColRefNode(&pLeft, &src, TSDB_DATA_TYPE_BINARY, 3, rowNum, leftv);
|
scltMakeColumnNode(&pLeft, &src, TSDB_DATA_TYPE_BINARY, 3, rowNum, leftv);
|
||||||
|
|
||||||
scltMakeOpNode(&opNode, OP_TYPE_IS_NULL, TSDB_DATA_TYPE_BOOL, pLeft, NULL);
|
scltMakeOpNode(&opNode, OP_TYPE_IS_NULL, TSDB_DATA_TYPE_BOOL, pLeft, NULL);
|
||||||
|
|
||||||
|
@ -1125,7 +1175,7 @@ TEST(columnTest, binary_column_is_not_null) {
|
||||||
setVardataNull(leftv[4], TSDB_DATA_TYPE_BINARY);
|
setVardataNull(leftv[4], TSDB_DATA_TYPE_BINARY);
|
||||||
|
|
||||||
int32_t rowNum = sizeof(leftv)/sizeof(leftv[0]);
|
int32_t rowNum = sizeof(leftv)/sizeof(leftv[0]);
|
||||||
scltMakeColRefNode(&pLeft, &src, TSDB_DATA_TYPE_BINARY, 3, rowNum, leftv);
|
scltMakeColumnNode(&pLeft, &src, TSDB_DATA_TYPE_BINARY, 3, rowNum, leftv);
|
||||||
|
|
||||||
scltMakeOpNode(&opNode, OP_TYPE_IS_NOT_NULL, TSDB_DATA_TYPE_BOOL, pLeft, NULL);
|
scltMakeOpNode(&opNode, OP_TYPE_IS_NOT_NULL, TSDB_DATA_TYPE_BOOL, pLeft, NULL);
|
||||||
|
|
||||||
|
@ -1150,11 +1200,11 @@ TEST(columnTest, greater_and_lower) {
|
||||||
SSDataBlock *src = NULL;
|
SSDataBlock *src = NULL;
|
||||||
SScalarParam res = {0};
|
SScalarParam res = {0};
|
||||||
int32_t rowNum = sizeof(v1)/sizeof(v1[0]);
|
int32_t rowNum = sizeof(v1)/sizeof(v1[0]);
|
||||||
scltMakeColRefNode(&pcol1, &src, TSDB_DATA_TYPE_SMALLINT, sizeof(int16_t), rowNum, v1);
|
scltMakeColumnNode(&pcol1, &src, TSDB_DATA_TYPE_SMALLINT, sizeof(int16_t), rowNum, v1);
|
||||||
scltMakeColRefNode(&pcol2, &src, TSDB_DATA_TYPE_INT, sizeof(int16_t), rowNum, v2);
|
scltMakeColumnNode(&pcol2, &src, TSDB_DATA_TYPE_INT, sizeof(int16_t), rowNum, v2);
|
||||||
scltMakeOpNode(&opNode1, OP_TYPE_GREATER_THAN, TSDB_DATA_TYPE_BOOL, pcol1, pcol2);
|
scltMakeOpNode(&opNode1, OP_TYPE_GREATER_THAN, TSDB_DATA_TYPE_BOOL, pcol1, pcol2);
|
||||||
scltMakeColRefNode(&pcol1, &src, TSDB_DATA_TYPE_BIGINT, sizeof(int16_t), rowNum, v3);
|
scltMakeColumnNode(&pcol1, &src, TSDB_DATA_TYPE_BIGINT, sizeof(int16_t), rowNum, v3);
|
||||||
scltMakeColRefNode(&pcol2, &src, TSDB_DATA_TYPE_INT, sizeof(int16_t), rowNum, v4);
|
scltMakeColumnNode(&pcol2, &src, TSDB_DATA_TYPE_INT, sizeof(int16_t), rowNum, v4);
|
||||||
scltMakeOpNode(&opNode2, OP_TYPE_LOWER_THAN, TSDB_DATA_TYPE_BOOL, pcol1, pcol2);
|
scltMakeOpNode(&opNode2, OP_TYPE_LOWER_THAN, TSDB_DATA_TYPE_BOOL, pcol1, pcol2);
|
||||||
list[0] = opNode1;
|
list[0] = opNode1;
|
||||||
list[1] = opNode2;
|
list[1] = opNode2;
|
||||||
|
@ -1169,7 +1219,7 @@ TEST(columnTest, greater_and_lower) {
|
||||||
ASSERT_EQ(*((bool *)res.data + i), eRes[i]);
|
ASSERT_EQ(*((bool *)res.data + i), eRes[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
|
|
Loading…
Reference in New Issue