stmt query
This commit is contained in:
parent
c4cfcef6e9
commit
92c555f257
|
@ -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);
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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,
|
||||||
|
|
Loading…
Reference in New Issue