fix: change the operator type when switch left and right operands

This commit is contained in:
slzhou@taodata.com 2022-07-23 09:02:28 +08:00
parent a7fedb458d
commit 189c818f54
1 changed files with 16 additions and 0 deletions

View File

@ -3671,6 +3671,22 @@ EDealRes fltReviseRewriter(SNode** pNode, void* pContext) {
SNode *t = node->pLeft; SNode *t = node->pLeft;
node->pLeft = node->pRight; node->pLeft = node->pRight;
node->pRight = t; node->pRight = t;
switch (node->opType) {
case OP_TYPE_GREATER_THAN:
node->opType = OP_TYPE_LOWER_THAN;
break;
case OP_TYPE_LOWER_THAN:
node->opType = OP_TYPE_GREATER_THAN;
break;
case OP_TYPE_GREATER_EQUAL:
node->opType = OP_TYPE_LOWER_EQUAL;
break;
case OP_TYPE_LOWER_EQUAL:
node->opType = OP_TYPE_GREATER_EQUAL;
break;
default:
break;
}
} }
if (OP_TYPE_IN == node->opType && QUERY_NODE_NODE_LIST != nodeType(node->pRight)) { if (OP_TYPE_IN == node->opType && QUERY_NODE_NODE_LIST != nodeType(node->pRight)) {