diff --git a/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/dbtbl_with_masterslave/select_with_case_expression.xml b/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/dbtbl_with_masterslave/select_with_case_expression.xml new file mode 100644 index 0000000000000000000000000000000000000000..a198cbbffb6d9c018aaec2ce155ed24b01aa3e05 --- /dev/null +++ b/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/dbtbl_with_masterslave/select_with_case_expression.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + diff --git a/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/masterslave/select_with_case_expression.xml b/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/masterslave/select_with_case_expression.xml new file mode 100644 index 0000000000000000000000000000000000000000..03629b9ae26f319d962a61b480d223a58fb42a0c --- /dev/null +++ b/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/masterslave/select_with_case_expression.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + diff --git a/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/shadow/select_with_case_expression.xml b/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/shadow/select_with_case_expression.xml new file mode 100644 index 0000000000000000000000000000000000000000..a3c457e1814985039da7ba221aeca00b22bccc8a --- /dev/null +++ b/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/shadow/select_with_case_expression.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + diff --git a/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/tbl/select_with_case_expression.xml b/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/tbl/select_with_case_expression.xml new file mode 100644 index 0000000000000000000000000000000000000000..ecee55b061640306a445eb8ab47928626966015d --- /dev/null +++ b/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/tbl/select_with_case_expression.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + diff --git a/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dql-integrate-test-cases.xml b/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dql-integrate-test-cases.xml index 6b4bdf48de8176de64d7d22396b0fe8b1789de47..bbf267e857435f1b5cb36aff37a63204b993bbeb 100644 --- a/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dql-integrate-test-cases.xml +++ b/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dql-integrate-test-cases.xml @@ -512,4 +512,8 @@ + + + + diff --git a/sharding-sql-test/src/main/resources/sql/supported/dml/select-expression.xml b/sharding-sql-test/src/main/resources/sql/supported/dml/select-expression.xml index bbeb14451201c5adf3f4c78846f38aaf68c0871e..b9ffd0e66df733062e6833950aee20a230834827 100644 --- a/sharding-sql-test/src/main/resources/sql/supported/dml/select-expression.xml +++ b/sharding-sql-test/src/main/resources/sql/supported/dml/select-expression.xml @@ -20,4 +20,6 @@ + diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/MySQLVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/MySQLVisitor.java index 60d076fd425a1a89c56c1d1722711c4182acf85f..d12a01a642ea5e3e2f77b2ee5f375a9797da33c4 100644 --- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/MySQLVisitor.java +++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/MySQLVisitor.java @@ -582,7 +582,7 @@ public abstract class MySQLVisitor extends MySQLStatementBaseVisitor { @Override public final ASTNode visitCaseExpression(final CaseExpressionContext ctx) { - return visit(ctx.simpleExpr()); + return new OtherLiteralValue(ctx.getText()); } @Override diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/dml/select-expression.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/dml/select-expression.xml index 78581dad365bebd1d91f34fd9e9ee05309dcbcbc..2ce813f2cf7029a5d594b8bf53a787c5b911881d 100644 --- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/dml/select-expression.xml +++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/dml/select-expression.xml @@ -73,4 +73,35 @@ +