提交 fc2688d5 编写于 作者: Y yihaoDeng

[TD-4426]<feature> merge in

上级 555fe9e9
...@@ -160,22 +160,20 @@ bool serializeExprListToVariant(SArray* pList, tVariant **dst) { ...@@ -160,22 +160,20 @@ bool serializeExprListToVariant(SArray* pList, tVariant **dst) {
tSqlExprItem* item = (tSqlExprItem *)taosArrayGet(pList, 0); tSqlExprItem* item = (tSqlExprItem *)taosArrayGet(pList, 0);
int32_t size = pList->size; int32_t size = pList->size;
int32_t type = item->pNode->token.type; int32_t type = item->pNode->token.type;
if (type < 0) {
tbufCloseWriter(&bw);
return ret;
}
toTSDBType(item->pNode->token.type); toTSDBType(type);
tbufWriteUint32(&bw, item->pNode->token.type); tbufWriteUint32(&bw, type);
tbufWriteInt32(&bw, size); tbufWriteInt32(&bw, size);
for (int32_t i = 0; i < size; i++) { for (int32_t i = 0; i < size; i++) {
tSqlExpr* pSub = ((tSqlExprItem*)(taosArrayGet(pList, i)))->pNode; tSqlExpr* pSub = ((tSqlExprItem*)(taosArrayGet(pList, i)))->pNode;
// validate type in exprList // type in exprList is same or not
toTSDBType(pSub->token.type);
if (type != pSub->token.type) { if (type != pSub->token.type) {
break; break;
} }
tVariant var; tVariant var;
tVariantCreate(&var, &pSub->token); tVariantCreate(&var, &pSub->token);
if (type == TSDB_DATA_TYPE_BOOL || type == TSDB_DATA_TYPE_TINYINT || type == TSDB_DATA_TYPE_SMALLINT if (type == TSDB_DATA_TYPE_BOOL || type == TSDB_DATA_TYPE_TINYINT || type == TSDB_DATA_TYPE_SMALLINT
...@@ -3292,8 +3290,7 @@ static int32_t doExtractColumnFilterInfo(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, ...@@ -3292,8 +3290,7 @@ static int32_t doExtractColumnFilterInfo(SSqlCmd* pCmd, SQueryInfo* pQueryInfo,
tVariantDestroy(pVal); tVariantDestroy(pVal);
free(pVal); free(pVal);
} } else if (colType == TSDB_DATA_TYPE_BINARY) {
else if (colType == TSDB_DATA_TYPE_BINARY) {
pColumnFilter->pz = (int64_t)calloc(1, bufLen * TSDB_NCHAR_SIZE); pColumnFilter->pz = (int64_t)calloc(1, bufLen * TSDB_NCHAR_SIZE);
pColumnFilter->len = pRight->value.nLen; pColumnFilter->len = pRight->value.nLen;
retVal = tVariantDump(&pRight->value, (char*)pColumnFilter->pz, colType, false); retVal = tVariantDump(&pRight->value, (char*)pColumnFilter->pz, colType, false);
......
...@@ -3163,7 +3163,8 @@ void filterPrepare(void* expr, void* param) { ...@@ -3163,7 +3163,8 @@ void filterPrepare(void* expr, void* param) {
pObj = taosHashInit(256, taosGetDefaultHashFunction(pInfo->sch.type), true, false); pObj = taosHashInit(256, taosGetDefaultHashFunction(pInfo->sch.type), true, false);
SArray *arr = (SArray *)(pCond->arr); SArray *arr = (SArray *)(pCond->arr);
for (size_t i = 0; i < taosArrayGetSize(arr); i++) { for (size_t i = 0; i < taosArrayGetSize(arr); i++) {
taosHashPut(pObj, (char *)taosArrayGet(arr, i), arr->elemSize, &dummy, sizeof(dummy)); char* p = taosArrayGetP(arr, i);
taosHashPut(pObj, varDataVal(p),varDataLen(p), &dummy, sizeof(dummy));
} }
} else { } else {
buildFilterSetFromBinary((void **)&pObj, pCond->pz, pCond->nLen); buildFilterSetFromBinary((void **)&pObj, pCond->pz, pCond->nLen);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册