stmt query

This commit is contained in:
dapan1121 2022-04-29 09:20:37 +08:00
parent c4cfcef6e9
commit 92c555f257
4 changed files with 28 additions and 29 deletions

View File

@ -313,6 +313,7 @@ bool nodesIsTimeorderQuery(const SNode* pQuery);
bool nodesIsTimelineQuery(const SNode* pQuery); bool nodesIsTimelineQuery(const SNode* pQuery);
void* nodesGetValueFromNode(SValueNode* pNode); void* nodesGetValueFromNode(SValueNode* pNode);
int32_t nodesSetValueNodeValue(SValueNode* pNode, void *value);
char* nodesGetStrValueFromNode(SValueNode* pNode); char* nodesGetStrValueFromNode(SValueNode* pNode);
char* getFillModeString(EFillMode mode); char* getFillModeString(EFillMode mode);
void valueNodeToVariant(const SValueNode* pNode, SVariant* pVal); void valueNodeToVariant(const SValueNode* pNode, SVariant* pVal);

View File

@ -894,51 +894,51 @@ int32_t nodesSetValueNodeValue(SValueNode* pNode, void *value) {
switch (pNode->node.resType.type) { switch (pNode->node.resType.type) {
case TSDB_DATA_TYPE_BOOL: case TSDB_DATA_TYPE_BOOL:
pNode->datum.b = *(bool*)value; pNode->datum.b = *(bool*)value;
*(bool*)pNode->typeData = pNode->datum.b; *(bool*)&pNode->typeData = pNode->datum.b;
break; break;
case TSDB_DATA_TYPE_TINYINT: case TSDB_DATA_TYPE_TINYINT:
pNode->datum.i = *(int8_t*)value; pNode->datum.i = *(int8_t*)value;
*(int8_t*)pNode->typeData = pNode->datum.i; *(int8_t*)&pNode->typeData = pNode->datum.i;
break; break;
case TSDB_DATA_TYPE_SMALLINT: case TSDB_DATA_TYPE_SMALLINT:
pNode->datum.i = *(int16_t*)value; pNode->datum.i = *(int16_t*)value;
*(int16_t*)pNode->typeData = pNode->datum.i; *(int16_t*)&pNode->typeData = pNode->datum.i;
break; break;
case TSDB_DATA_TYPE_INT: case TSDB_DATA_TYPE_INT:
pNode->datum.i = *(int32_t*)value; pNode->datum.i = *(int32_t*)value;
*(int32_t*)pNode->typeData = pNode->datum.i; *(int32_t*)&pNode->typeData = pNode->datum.i;
break; break;
case TSDB_DATA_TYPE_BIGINT: case TSDB_DATA_TYPE_BIGINT:
pNode->datum.i = *(int64_t*)value; pNode->datum.i = *(int64_t*)value;
*(int64_t*)pNode->typeData = pNode->datum.i; *(int64_t*)&pNode->typeData = pNode->datum.i;
break; break;
case TSDB_DATA_TYPE_TIMESTAMP: case TSDB_DATA_TYPE_TIMESTAMP:
pNode->datum.i = *(int64_t*)value; pNode->datum.i = *(int64_t*)value;
*(int64_t*)pNode->typeData = pNode->datum.i; *(int64_t*)&pNode->typeData = pNode->datum.i;
break; break;
case TSDB_DATA_TYPE_UTINYINT: case TSDB_DATA_TYPE_UTINYINT:
pNode->datum.u = *(int8_t*)value; pNode->datum.u = *(int8_t*)value;
*(int8_t*)pNode->typeData = pNode->datum.u; *(int8_t*)&pNode->typeData = pNode->datum.u;
break; break;
case TSDB_DATA_TYPE_USMALLINT: case TSDB_DATA_TYPE_USMALLINT:
pNode->datum.u = *(int16_t*)value; pNode->datum.u = *(int16_t*)value;
*(int16_t*)pNode->typeData = pNode->datum.u; *(int16_t*)&pNode->typeData = pNode->datum.u;
break; break;
case TSDB_DATA_TYPE_UINT: case TSDB_DATA_TYPE_UINT:
pNode->datum.u = *(int32_t*)value; pNode->datum.u = *(int32_t*)value;
*(int32_t*)pNode->typeData = pNode->datum.u; *(int32_t*)&pNode->typeData = pNode->datum.u;
break; break;
case TSDB_DATA_TYPE_UBIGINT: case TSDB_DATA_TYPE_UBIGINT:
pNode->datum.u = *(uint64_t*)value; pNode->datum.u = *(uint64_t*)value;
*(uint64_t*)pNode->typeData = pNode->datum.u; *(uint64_t*)&pNode->typeData = pNode->datum.u;
break; break;
case TSDB_DATA_TYPE_FLOAT: case TSDB_DATA_TYPE_FLOAT:
pNode->datum.d = *(float*)value; pNode->datum.d = *(float*)value;
*(float*)pNode->typeData = pNode->datum.d; *(float*)&pNode->typeData = pNode->datum.d;
break; break;
case TSDB_DATA_TYPE_DOUBLE: case TSDB_DATA_TYPE_DOUBLE:
pNode->datum.d = *(double*)value; pNode->datum.d = *(double*)value;
*(double*)pNode->typeData = pNode->datum.d; *(double*)&pNode->typeData = pNode->datum.d;
break; break;
case TSDB_DATA_TYPE_NCHAR: case TSDB_DATA_TYPE_NCHAR:
case TSDB_DATA_TYPE_VARCHAR: case TSDB_DATA_TYPE_VARCHAR:

View File

@ -599,7 +599,7 @@ EDealRes sclRewriteFunction(SNode** pNode, SScalarCtx *ctx) {
res->datum.p = taosMemoryCalloc(res->node.resType.bytes + VARSTR_HEADER_SIZE + 1, 1); res->datum.p = taosMemoryCalloc(res->node.resType.bytes + VARSTR_HEADER_SIZE + 1, 1);
memcpy(res->datum.p, output.columnData->pData, varDataTLen(output.columnData->pData)); memcpy(res->datum.p, output.columnData->pData, varDataTLen(output.columnData->pData));
} else { } else {
memcpy(nodesGetValueFromNode(res), output.columnData->pData, tDataTypes[type].bytes); nodesSetValueNodeValue(res, output.columnData->pData);
} }
} }
@ -639,7 +639,7 @@ EDealRes sclRewriteLogic(SNode** pNode, SScalarCtx *ctx) {
res->datum.p = output.columnData->pData; res->datum.p = output.columnData->pData;
output.columnData->pData = NULL; output.columnData->pData = NULL;
} else { } else {
memcpy(nodesGetValueFromNode(res), output.columnData->pData, tDataTypes[type].bytes); nodesSetValueNodeValue(res, output.columnData->pData);
} }
nodesDestroyNode(*pNode); nodesDestroyNode(*pNode);
@ -681,7 +681,7 @@ EDealRes sclRewriteOperator(SNode** pNode, SScalarCtx *ctx) {
res->datum.p = output.columnData->pData; res->datum.p = output.columnData->pData;
output.columnData->pData = NULL; output.columnData->pData = NULL;
} else { } else {
memcpy(nodesGetValueFromNode(res), output.columnData->pData, tDataTypes[type].bytes); nodesSetValueNodeValue(res, output.columnData->pData);
} }
} }

View File

@ -11,8 +11,8 @@
int32_t shortColList[] = {TSDB_DATA_TYPE_TIMESTAMP, TSDB_DATA_TYPE_INT}; int32_t shortColList[] = {TSDB_DATA_TYPE_TIMESTAMP, TSDB_DATA_TYPE_INT};
int32_t fullColList[] = {TSDB_DATA_TYPE_TIMESTAMP, TSDB_DATA_TYPE_BOOL, TSDB_DATA_TYPE_TINYINT, TSDB_DATA_TYPE_UTINYINT, TSDB_DATA_TYPE_SMALLINT, TSDB_DATA_TYPE_USMALLINT, TSDB_DATA_TYPE_INT, TSDB_DATA_TYPE_UINT, TSDB_DATA_TYPE_BIGINT, TSDB_DATA_TYPE_UBIGINT, TSDB_DATA_TYPE_FLOAT, TSDB_DATA_TYPE_DOUBLE, TSDB_DATA_TYPE_BINARY, TSDB_DATA_TYPE_NCHAR}; int32_t fullColList[] = {TSDB_DATA_TYPE_TIMESTAMP, TSDB_DATA_TYPE_BOOL, TSDB_DATA_TYPE_TINYINT, TSDB_DATA_TYPE_UTINYINT, TSDB_DATA_TYPE_SMALLINT, TSDB_DATA_TYPE_USMALLINT, TSDB_DATA_TYPE_INT, TSDB_DATA_TYPE_UINT, TSDB_DATA_TYPE_BIGINT, TSDB_DATA_TYPE_UBIGINT, TSDB_DATA_TYPE_FLOAT, TSDB_DATA_TYPE_DOUBLE, TSDB_DATA_TYPE_BINARY, TSDB_DATA_TYPE_NCHAR};
int32_t bindColTypeList[] = {TSDB_DATA_TYPE_TIMESTAMP, TSDB_DATA_TYPE_INT, TSDB_DATA_TYPE_FLOAT}; int32_t bindColTypeList[] = {TSDB_DATA_TYPE_TIMESTAMP, TSDB_DATA_TYPE_NCHAR, TSDB_DATA_TYPE_SMALLINT};
int32_t optrIdxList[] = {3, 5, 2}; int32_t optrIdxList[] = {4, 11, 1};
typedef struct { typedef struct {
char* oper; char* oper;
@ -33,7 +33,7 @@ OperInfo operInfo[] = {
{"like", 2, false}, {"like", 2, false},
{"not like", 2, false}, {"not like", 2, false},
{"match", 2, false}, {"match", 2, false},
{"nmake", 2, false}, {"nmatch", 2, false},
}; };
int32_t operatorList[] = {0, 1, 2, 3, 4, 5, 6, 7}; int32_t operatorList[] = {0, 1, 2, 3, 4, 5, 6, 7};
@ -140,9 +140,7 @@ CaseCfg gCase[] = {
{"insert:MPME1-C012", tListLen(fullColList), fullColList, TTYPE_INSERT, false, false, insertMPMETest1, 10, 10, 2, 12, 0, 1, -1}, {"insert:MPME1-C012", tListLen(fullColList), fullColList, TTYPE_INSERT, false, false, insertMPMETest1, 10, 10, 2, 12, 0, 1, -1},
// 22 // 22
//{"query:SUBT-FULL", tListLen(fullColList), fullColList, TTYPE_QUERY, false, false, querySUBTTest1, 10, 10, 1, 3, 0, 1, 2}, {"query:SUBT-FULL", tListLen(fullColList), fullColList, TTYPE_QUERY, false, false, querySUBTTest1, 10, 10, 1, 3, 0, 1, 2},
{"query:SUBT-FULL", tListLen(fullColList), fullColList, TTYPE_QUERY, false, false, querySUBTTest1, 1, 10, 1, 3, 0, 1, 2},
}; };
@ -181,10 +179,10 @@ CaseCtrl gCaseCtrl = {
.rowNum = 0, .rowNum = 0,
.bindColNum = 0, .bindColNum = 0,
.bindRowNum = 0, .bindRowNum = 0,
// .bindColTypeNum = 0, .bindColTypeNum = 0,
// .bindColTypeList = NULL, .bindColTypeList = NULL,
// .optrIdxListNum = 0, .optrIdxListNum = 0,
// .optrIdxList = NULL, .optrIdxList = NULL,
.checkParamNum = false, .checkParamNum = false,
.printRes = true, .printRes = true,
.runTimes = 0, .runTimes = 0,
@ -194,10 +192,10 @@ CaseCtrl gCaseCtrl = {
// .caseRunNum = -1, // .caseRunNum = -1,
.optrIdxListNum = tListLen(optrIdxList), // .optrIdxListNum = tListLen(optrIdxList),
.optrIdxList = optrIdxList, // .optrIdxList = optrIdxList,
.bindColTypeNum = tListLen(bindColTypeList), // .bindColTypeNum = tListLen(bindColTypeList),
.bindColTypeList = bindColTypeList, // .bindColTypeList = bindColTypeList,
.caseIdx = 22, .caseIdx = 22,
.caseNum = 1, .caseNum = 1,
.caseRunNum = 1, .caseRunNum = 1,