feat:[TS-5613]support bool in cast

This commit is contained in:
wangmm0220 2025-02-24 17:45:07 +08:00
parent 47e23e3d99
commit ee0f7a4d38
2 changed files with 14 additions and 2 deletions

View File

@ -1454,13 +1454,13 @@ boolean_value_expression(A) ::= NOT(C) boolean_primary(B).
A = createRawExprNodeExt(pCxt, &C, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_NOT, releaseRawExprNode(pCxt, B), NULL)); A = createRawExprNodeExt(pCxt, &C, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_NOT, releaseRawExprNode(pCxt, B), NULL));
} }
boolean_value_expression(A) ::= boolean_value_expression(A) ::=
boolean_value_expression(B) OR boolean_value_expression(C). { expr_or_subquery(B) OR expr_or_subquery(C). {
SToken s = getTokenFromRawExprNode(pCxt, B); SToken s = getTokenFromRawExprNode(pCxt, B);
SToken e = getTokenFromRawExprNode(pCxt, C); SToken e = getTokenFromRawExprNode(pCxt, C);
A = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_OR, releaseRawExprNode(pCxt, B), releaseRawExprNode(pCxt, C))); A = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_OR, releaseRawExprNode(pCxt, B), releaseRawExprNode(pCxt, C)));
} }
boolean_value_expression(A) ::= boolean_value_expression(A) ::=
boolean_value_expression(B) AND boolean_value_expression(C). { expr_or_subquery(B) AND expr_or_subquery(C). {
SToken s = getTokenFromRawExprNode(pCxt, B); SToken s = getTokenFromRawExprNode(pCxt, B);
SToken e = getTokenFromRawExprNode(pCxt, C); SToken e = getTokenFromRawExprNode(pCxt, C);
A = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_AND, releaseRawExprNode(pCxt, B), releaseRawExprNode(pCxt, C))); A = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_AND, releaseRawExprNode(pCxt, B), releaseRawExprNode(pCxt, C)));

View File

@ -60,6 +60,18 @@ class TDTestCase:
tdSql.query(sql) tdSql.query(sql)
tdSql.checkData(0,0,1) tdSql.checkData(0,0,1)
sql = "select cast(2 not in(3) as int) from t"
tdSql.query(sql)
tdSql.checkData(0,0,1)
sql = "select cast(2 is NULL as int) from t"
tdSql.query(sql)
tdSql.checkData(0,0,0)
sql = "select cast(2 and 1 as int) from t"
tdSql.query(sql)
tdSql.checkData(0,0,1)
def stop(self): def stop(self):
tdSql.close() tdSql.close()
tdLog.success("%s successfully executed" % __file__) tdLog.success("%s successfully executed" % __file__)