refactor: fix compare logic
This commit is contained in:
parent
49c3057221
commit
b96082fe1b
|
@ -1050,6 +1050,8 @@ int32_t fltAddGroupUnitFromNode(SFilterInfo *info, SNode* tree, SArray *group) {
|
||||||
|
|
||||||
cell = cell->pNext;
|
cell = cell->pNext;
|
||||||
}
|
}
|
||||||
|
colDataDestroy(out.columnData);
|
||||||
|
taosMemoryFree(out.columnData);
|
||||||
} else {
|
} else {
|
||||||
filterAddFieldFromNode(info, node->pRight, &right);
|
filterAddFieldFromNode(info, node->pRight, &right);
|
||||||
|
|
||||||
|
@ -1813,6 +1815,8 @@ int32_t fltInitValFieldData(SFilterInfo *info) {
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(fi->data, out.columnData->pData, out.columnData->info.bytes);
|
memcpy(fi->data, out.columnData->pData, out.columnData->info.bytes);
|
||||||
|
colDataDestroy(out.columnData);
|
||||||
|
taosMemoryFree(out.columnData);
|
||||||
}
|
}
|
||||||
|
|
||||||
// match/nmatch for nchar type need convert from ucs4 to mbs
|
// match/nmatch for nchar type need convert from ucs4 to mbs
|
||||||
|
@ -3537,6 +3541,11 @@ EDealRes fltReviseRewriter(SNode** pNode, void* pContext) {
|
||||||
return DEAL_RES_CONTINUE;
|
return DEAL_RES_CONTINUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (OP_TYPE_JSON_CONTAINS == node->opType) {
|
||||||
|
stat->scalarMode = true;
|
||||||
|
return DEAL_RES_CONTINUE;
|
||||||
|
}
|
||||||
|
|
||||||
if (QUERY_NODE_COLUMN != nodeType(node->pLeft)) {
|
if (QUERY_NODE_COLUMN != nodeType(node->pLeft)) {
|
||||||
SNode *t = node->pLeft;
|
SNode *t = node->pLeft;
|
||||||
node->pLeft = node->pRight;
|
node->pLeft = node->pRight;
|
||||||
|
|
|
@ -132,6 +132,7 @@ void sclFreeRes(SHashObj *res) {
|
||||||
void sclFreeParam(SScalarParam *param) {
|
void sclFreeParam(SScalarParam *param) {
|
||||||
if (param->columnData != NULL) {
|
if (param->columnData != NULL) {
|
||||||
colDataDestroy(param->columnData);
|
colDataDestroy(param->columnData);
|
||||||
|
taosMemoryFree(param->columnData);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (param->pHashFilter != NULL) {
|
if (param->pHashFilter != NULL) {
|
||||||
|
|
|
@ -188,17 +188,17 @@ static FORCE_INLINE void varToBool(char *buf, SScalarParam* pOut, int32_t rowInd
|
||||||
colDataAppendInt8(pOut->columnData, rowIndex, (int8_t*) &v);
|
colDataAppendInt8(pOut->columnData, rowIndex, (int8_t*) &v);
|
||||||
}
|
}
|
||||||
|
|
||||||
//static FORCE_INLINE void varToNchar(char* buf, SScalarParam* pOut, int32_t rowIndex) {
|
static FORCE_INLINE void varToNchar(char* buf, SScalarParam* pOut, int32_t rowIndex) {
|
||||||
// int32_t len = 0;
|
int32_t len = 0;
|
||||||
// int32_t inputLen = varDataLen(buf);
|
int32_t inputLen = varDataLen(buf);
|
||||||
//
|
|
||||||
// char* t = taosMemoryCalloc(1,(inputLen + 1) * TSDB_NCHAR_SIZE + VARSTR_HEADER_SIZE);
|
char* t = taosMemoryCalloc(1,(inputLen + 1) * TSDB_NCHAR_SIZE + VARSTR_HEADER_SIZE);
|
||||||
// /*int32_t resLen = */taosMbsToUcs4(varDataVal(buf), inputLen, (TdUcs4*) varDataVal(t), pOut->columnData->info.bytes, &len);
|
/*int32_t resLen = */taosMbsToUcs4(varDataVal(buf), inputLen, (TdUcs4*) varDataVal(t), pOut->columnData->info.bytes, &len);
|
||||||
// varDataSetLen(t, len);
|
varDataSetLen(t, len);
|
||||||
//
|
|
||||||
// colDataAppend(pOut->columnData, rowIndex, t, false);
|
colDataAppend(pOut->columnData, rowIndex, t, false);
|
||||||
// taosMemoryFree(t);
|
taosMemoryFree(t);
|
||||||
//}
|
}
|
||||||
|
|
||||||
void convertNumberToNumber(const void *inData, void *outData, int8_t inType, int8_t outType){
|
void convertNumberToNumber(const void *inData, void *outData, int8_t inType, int8_t outType){
|
||||||
switch (outType) {
|
switch (outType) {
|
||||||
|
@ -275,7 +275,7 @@ int32_t vectorConvertFromVarData(const SScalarParam* pIn, SScalarParam* pOut, in
|
||||||
int32_t bufSize = pIn->columnData->info.bytes;
|
int32_t bufSize = pIn->columnData->info.bytes;
|
||||||
char *tmp = taosMemoryMalloc(bufSize + VARSTR_HEADER_SIZE);
|
char *tmp = taosMemoryMalloc(bufSize + VARSTR_HEADER_SIZE);
|
||||||
|
|
||||||
// bool vton = false;
|
bool vton = false;
|
||||||
|
|
||||||
_bufConverteFunc func = NULL;
|
_bufConverteFunc func = NULL;
|
||||||
if (TSDB_DATA_TYPE_BOOL == outType) {
|
if (TSDB_DATA_TYPE_BOOL == outType) {
|
||||||
|
@ -286,9 +286,10 @@ int32_t vectorConvertFromVarData(const SScalarParam* pIn, SScalarParam* pOut, in
|
||||||
func = varToUnsigned;
|
func = varToUnsigned;
|
||||||
} else if (IS_FLOAT_TYPE(outType)) {
|
} else if (IS_FLOAT_TYPE(outType)) {
|
||||||
func = varToFloat;
|
func = varToFloat;
|
||||||
// } else if (outType == TSDB_DATA_TYPE_NCHAR) { // can not be nchar or binary
|
} else if (outType == TSDB_DATA_TYPE_NCHAR) { // binary -> nchar
|
||||||
// func = varToNchar;
|
ASSERT(inType == TSDB_DATA_TYPE_VARCHAR);
|
||||||
// vton = true;
|
func = varToNchar;
|
||||||
|
vton = true;
|
||||||
} else {
|
} else {
|
||||||
sclError("invalid convert outType:%d", outType);
|
sclError("invalid convert outType:%d", outType);
|
||||||
return TSDB_CODE_QRY_APP_ERROR;
|
return TSDB_CODE_QRY_APP_ERROR;
|
||||||
|
@ -316,9 +317,9 @@ int32_t vectorConvertFromVarData(const SScalarParam* pIn, SScalarParam* pOut, in
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// if (vton) {
|
if (vton) {
|
||||||
// memcpy(tmp, data, varDataTLen(data));
|
memcpy(tmp, data, varDataTLen(data));
|
||||||
// } else {
|
} else {
|
||||||
if (TSDB_DATA_TYPE_VARCHAR == convertType) {
|
if (TSDB_DATA_TYPE_VARCHAR == convertType) {
|
||||||
memcpy(tmp, varDataVal(data), varDataLen(data));
|
memcpy(tmp, varDataVal(data), varDataLen(data));
|
||||||
tmp[varDataLen(data)] = 0;
|
tmp[varDataLen(data)] = 0;
|
||||||
|
@ -334,7 +335,7 @@ int32_t vectorConvertFromVarData(const SScalarParam* pIn, SScalarParam* pOut, in
|
||||||
|
|
||||||
tmp[len] = 0;
|
tmp[len] = 0;
|
||||||
}
|
}
|
||||||
// }
|
}
|
||||||
|
|
||||||
(*func)(tmp, pOut, i);
|
(*func)(tmp, pOut, i);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue