提交 999de65e 编写于 作者: X xywang

feat(query): added bitwise operations

上级 4ad49e0c
...@@ -216,15 +216,21 @@ int32_t exprTreeValidateExprNode(tExprNode *pExpr) { ...@@ -216,15 +216,21 @@ int32_t exprTreeValidateExprNode(tExprNode *pExpr) {
} }
} }
// colx bitwise_op (coly logic_op n) // colx logic_op n bitwise_op coly
if (pLeft->resultType == TSDB_DATA_TYPE_DOUBLE) {
pLeft->resultType = TSDB_DATA_TYPE_BIGINT;
pLeft->resultBytes = tDataTypes[TSDB_DATA_TYPE_BIGINT].bytes;
}
// colx bitwise_op coly logic_op n
if (pRight->resultType == TSDB_DATA_TYPE_DOUBLE) { if (pRight->resultType == TSDB_DATA_TYPE_DOUBLE) {
pRight->resultType = TSDB_DATA_TYPE_BIGINT; pRight->resultType = TSDB_DATA_TYPE_BIGINT;
pRight->resultBytes = tDataTypes[TSDB_DATA_TYPE_BIGINT].bytes; pRight->resultBytes = tDataTypes[TSDB_DATA_TYPE_BIGINT].bytes;
} }
if (pExpr->_node.optr == TSDB_BINARY_OP_LSHIFT || pExpr->_node.optr == TSDB_BINARY_OP_RSHIFT) { if (pExpr->_node.optr == TSDB_BINARY_OP_LSHIFT || pExpr->_node.optr == TSDB_BINARY_OP_RSHIFT) {
pExpr->resultType = leftType; pExpr->resultType = pLeft->resultType;
pExpr->resultBytes = tDataTypes[leftType].bytes; pExpr->resultBytes = tDataTypes[pLeft->resultType].bytes;
} else { } else {
pExpr->resultType = TSDB_DATA_TYPE_BIGINT; pExpr->resultType = TSDB_DATA_TYPE_BIGINT;
pExpr->resultBytes = tDataTypes[TSDB_DATA_TYPE_BIGINT].bytes; pExpr->resultBytes = tDataTypes[TSDB_DATA_TYPE_BIGINT].bytes;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册