This is an automated email from the ASF dual-hosted git repository.
zhaojinchao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 09765ff4afd Fix LiteralExpressionSegment cast exception in sql parser.
(#33332)
09765ff4afd is described below
commit 09765ff4afd50955656a02587007edad57d3f5e4
Author: Cong Hu <[email protected]>
AuthorDate: Mon Oct 28 11:51:41 2024 +0800
Fix LiteralExpressionSegment cast exception in sql parser. (#33332)
---
.../statement/type/ClickHouseDMLStatementVisitor.java | 15 +++++++--------
.../doris/visitor/statement/DorisStatementVisitor.java | 5 ++---
.../visitor/statement/type/HiveDMLStatementVisitor.java | 12 ++++++------
.../mysql/visitor/statement/MySQLStatementVisitor.java | 5 ++---
.../visitor/statement/OpenGaussStatementVisitor.java | 6 +++---
.../visitor/statement/PostgreSQLStatementVisitor.java | 6 +++---
.../visitor/statement/type/PrestoDMLStatementVisitor.java | 10 +++++-----
.../visitor/statement/type/SQL92DMLStatementVisitor.java | 9 ++++-----
.../visitor/statement/SQLServerStatementVisitor.java | 4 ++--
9 files changed, 34 insertions(+), 38 deletions(-)
diff --git
a/parser/sql/dialect/clickhouse/src/main/java/org/apache/shardingsphere/sql/parser/clickhouse/visitor/statement/type/ClickHouseDMLStatementVisitor.java
b/parser/sql/dialect/clickhouse/src/main/java/org/apache/shardingsphere/sql/parser/clickhouse/visitor/statement/type/ClickHouseDMLStatementVisitor.java
index bceb6cb16b8..93a02615e76 100644
---
a/parser/sql/dialect/clickhouse/src/main/java/org/apache/shardingsphere/sql/parser/clickhouse/visitor/statement/type/ClickHouseDMLStatementVisitor.java
+++
b/parser/sql/dialect/clickhouse/src/main/java/org/apache/shardingsphere/sql/parser/clickhouse/visitor/statement/type/ClickHouseDMLStatementVisitor.java
@@ -29,6 +29,10 @@ import
org.apache.shardingsphere.sql.parser.autogen.ClickHouseStatementParser.In
import
org.apache.shardingsphere.sql.parser.autogen.ClickHouseStatementParser.SelectClauseContext;
import
org.apache.shardingsphere.sql.parser.autogen.ClickHouseStatementParser.SubqueryContext;
import
org.apache.shardingsphere.sql.parser.clickhouse.visitor.statement.ClickHouseStatementVisitor;
+import
org.apache.shardingsphere.sql.parser.statement.clickhouse.dml.ClickHouseDeleteStatement;
+import
org.apache.shardingsphere.sql.parser.statement.clickhouse.dml.ClickHouseInsertStatement;
+import
org.apache.shardingsphere.sql.parser.statement.clickhouse.dml.ClickHouseSelectStatement;
+import
org.apache.shardingsphere.sql.parser.statement.clickhouse.dml.ClickHouseUpdateStatement;
import org.apache.shardingsphere.sql.parser.statement.core.enums.JoinType;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.assignment.InsertValuesSegment;
@@ -39,7 +43,6 @@ import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.Bina
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExpressionSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.FunctionSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.complex.CommonExpressionSegment;
-import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simple.LiteralExpressionSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simple.ParameterMarkerExpressionSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.subquery.SubqueryExpressionSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.subquery.SubquerySegment;
@@ -64,10 +67,6 @@ import
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import
org.apache.shardingsphere.sql.parser.statement.core.value.collection.CollectionValue;
import
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
import
org.apache.shardingsphere.sql.parser.statement.core.value.literal.impl.BooleanLiteralValue;
-import
org.apache.shardingsphere.sql.parser.statement.clickhouse.dml.ClickHouseDeleteStatement;
-import
org.apache.shardingsphere.sql.parser.statement.clickhouse.dml.ClickHouseInsertStatement;
-import
org.apache.shardingsphere.sql.parser.statement.clickhouse.dml.ClickHouseSelectStatement;
-import
org.apache.shardingsphere.sql.parser.statement.clickhouse.dml.ClickHouseUpdateStatement;
import java.util.Collection;
import java.util.Collections;
@@ -324,9 +323,9 @@ public final class ClickHouseDMLStatementVisitor extends
ClickHouseStatementVisi
result.setAlias(alias);
return projection;
}
- LiteralExpressionSegment column = (LiteralExpressionSegment)
projection;
- ExpressionProjectionSegment result = null == alias ? new
ExpressionProjectionSegment(column.getStartIndex(), column.getStopIndex(),
String.valueOf(column.getLiterals()), column)
- : new ExpressionProjectionSegment(column.getStartIndex(),
ctx.alias().stop.getStopIndex(), String.valueOf(column.getLiterals()), column);
+ ExpressionSegment column = (ExpressionSegment) projection;
+ ExpressionProjectionSegment result = null == alias ? new
ExpressionProjectionSegment(column.getStartIndex(), column.getStopIndex(),
column.getText(), column)
+ : new ExpressionProjectionSegment(column.getStartIndex(),
ctx.alias().stop.getStopIndex(), String.valueOf(column.getText()), column);
result.setAlias(alias);
return result;
}
diff --git
a/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/DorisStatementVisitor.java
b/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/DorisStatementVisitor.java
index c122e38fa28..5bbb10f0ae5 100644
---
a/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/DorisStatementVisitor.java
+++
b/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/DorisStatementVisitor.java
@@ -1811,10 +1811,9 @@ public abstract class DorisStatementVisitor extends
DorisStatementBaseVisitor<AS
|| projection instanceof CollateExpression || projection
instanceof NotExpression) {
return createExpressionProjectionSegment(ctx, alias, projection);
}
- LiteralExpressionSegment column = (LiteralExpressionSegment)
projection;
ExpressionProjectionSegment result = null == alias
- ? new ExpressionProjectionSegment(column.getStartIndex(),
column.getStopIndex(), String.valueOf(column.getLiterals()), column)
- : new ExpressionProjectionSegment(column.getStartIndex(),
ctx.alias().stop.getStopIndex(), String.valueOf(column.getLiterals()), column);
+ ? new ExpressionProjectionSegment(projection.getStartIndex(),
projection.getStopIndex(), String.valueOf(projection.getText()), projection)
+ : new ExpressionProjectionSegment(projection.getStartIndex(),
ctx.alias().stop.getStopIndex(), String.valueOf(projection.getText()),
projection);
result.setAlias(alias);
return result;
}
diff --git
a/parser/sql/dialect/hive/src/main/java/org/apache/shardingsphere/sql/parser/hive/visitor/statement/type/HiveDMLStatementVisitor.java
b/parser/sql/dialect/hive/src/main/java/org/apache/shardingsphere/sql/parser/hive/visitor/statement/type/HiveDMLStatementVisitor.java
index b819e120608..2669445282f 100644
---
a/parser/sql/dialect/hive/src/main/java/org/apache/shardingsphere/sql/parser/hive/visitor/statement/type/HiveDMLStatementVisitor.java
+++
b/parser/sql/dialect/hive/src/main/java/org/apache/shardingsphere/sql/parser/hive/visitor/statement/type/HiveDMLStatementVisitor.java
@@ -616,8 +616,8 @@ public final class HiveDMLStatementVisitor extends
HiveStatementVisitor implemen
public ASTNode visitPositionFunction(final PositionFunctionContext ctx) {
calculateParameterCount(ctx.expr());
FunctionSegment result = new
FunctionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(),
ctx.POSITION().getText(), getOriginalText(ctx));
- result.getParameters().add((LiteralExpressionSegment)
visit(ctx.expr(0)));
- result.getParameters().add((LiteralExpressionSegment)
visit(ctx.expr(1)));
+ result.getParameters().add((ExpressionSegment) visit(ctx.expr(0)));
+ result.getParameters().add((ExpressionSegment) visit(ctx.expr(1)));
return result;
}
@@ -637,7 +637,7 @@ public final class HiveDMLStatementVisitor extends
HiveStatementVisitor implemen
calculateParameterCount(Collections.singleton(ctx.expr()));
FunctionSegment result = new
FunctionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(),
ctx.EXTRACT().getText(), getOriginalText(ctx));
result.getParameters().add(new
LiteralExpressionSegment(ctx.identifier().getStart().getStartIndex(),
ctx.identifier().getStop().getStopIndex(), ctx.identifier().getText()));
- result.getParameters().add((LiteralExpressionSegment)
visit(ctx.expr()));
+ result.getParameters().add((ExpressionSegment) visit(ctx.expr()));
return result;
}
@@ -1213,10 +1213,10 @@ public final class HiveDMLStatementVisitor extends
HiveStatementVisitor implemen
result.setAlias(alias);
return result;
}
- LiteralExpressionSegment column = (LiteralExpressionSegment)
projection;
+ ExpressionSegment column = (ExpressionSegment) projection;
ExpressionProjectionSegment result = null == alias
- ? new ExpressionProjectionSegment(column.getStartIndex(),
column.getStopIndex(), String.valueOf(column.getLiterals()), column)
- : new ExpressionProjectionSegment(column.getStartIndex(),
ctx.alias().stop.getStopIndex(), String.valueOf(column.getLiterals()), column);
+ ? new ExpressionProjectionSegment(column.getStartIndex(),
column.getStopIndex(), String.valueOf(column.getText()), column)
+ : new ExpressionProjectionSegment(column.getStartIndex(),
ctx.alias().stop.getStopIndex(), String.valueOf(column.getText()), column);
result.setAlias(alias);
return result;
}
diff --git
a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java
b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java
index 80c2d9f0254..56dfda80574 100644
---
a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java
+++
b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java
@@ -1786,10 +1786,9 @@ public abstract class MySQLStatementVisitor extends
MySQLStatementBaseVisitor<AS
|| projection instanceof CollateExpression || projection
instanceof NotExpression) {
return createExpressionProjectionSegment(ctx, alias, projection);
}
- LiteralExpressionSegment column = (LiteralExpressionSegment)
projection;
ExpressionProjectionSegment result = null == alias
- ? new ExpressionProjectionSegment(column.getStartIndex(),
column.getStopIndex(), String.valueOf(column.getLiterals()), column)
- : new ExpressionProjectionSegment(column.getStartIndex(),
ctx.alias().stop.getStopIndex(), String.valueOf(column.getLiterals()), column);
+ ? new ExpressionProjectionSegment(projection.getStartIndex(),
projection.getStopIndex(), String.valueOf(projection.getText()), projection)
+ : new ExpressionProjectionSegment(projection.getStartIndex(),
ctx.alias().stop.getStopIndex(), String.valueOf(projection.getText()),
projection);
result.setAlias(alias);
return result;
}
diff --git
a/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java
b/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java
index 50ab0bd7982..f7785529e07 100644
---
a/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java
+++
b/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java
@@ -1391,7 +1391,7 @@ public abstract class OpenGaussStatementVisitor extends
OpenGaussStatementBaseVi
if (astNode instanceof ParameterMarkerExpressionSegment) {
return new
ParameterMarkerLimitValueSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), ((ParameterMarkerExpressionSegment)
astNode).getParameterMarkerIndex());
}
- return new NumberLiteralLimitValueSegment(ctx.start.getStartIndex(),
ctx.stop.getStopIndex(), Long.parseLong(((LiteralExpressionSegment)
astNode).getLiterals().toString()));
+ return new NumberLiteralLimitValueSegment(ctx.start.getStartIndex(),
ctx.stop.getStopIndex(), Long.parseLong(((ExpressionSegment)
astNode).getText()));
}
@Override
@@ -1400,7 +1400,7 @@ public abstract class OpenGaussStatementVisitor extends
OpenGaussStatementBaseVi
if (astNode instanceof ParameterMarkerExpressionSegment) {
return new
ParameterMarkerLimitValueSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), ((ParameterMarkerExpressionSegment)
astNode).getParameterMarkerIndex());
}
- return new NumberLiteralLimitValueSegment(ctx.start.getStartIndex(),
ctx.stop.getStopIndex(), Long.parseLong(((LiteralExpressionSegment)
astNode).getLiterals().toString()));
+ return new NumberLiteralLimitValueSegment(ctx.start.getStartIndex(),
ctx.stop.getStopIndex(), Long.parseLong(((ExpressionSegment)
astNode).getText()));
}
@Override
@@ -1409,7 +1409,7 @@ public abstract class OpenGaussStatementVisitor extends
OpenGaussStatementBaseVi
if (astNode instanceof ParameterMarkerExpressionSegment) {
return new
ParameterMarkerLimitValueSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), ((ParameterMarkerExpressionSegment)
astNode).getParameterMarkerIndex());
}
- return new NumberLiteralLimitValueSegment(ctx.start.getStartIndex(),
ctx.stop.getStopIndex(), Long.parseLong(((LiteralExpressionSegment)
astNode).getLiterals().toString()));
+ return new NumberLiteralLimitValueSegment(ctx.start.getStartIndex(),
ctx.stop.getStopIndex(), Long.parseLong(((ExpressionSegment)
astNode).getText()));
}
private LimitSegment createLimitSegmentWhenLimitAndOffset(final
SelectLimitContext ctx) {
diff --git
a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
index f352caef588..908961e3fe0 100644
---
a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
+++
b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
@@ -1361,7 +1361,7 @@ public abstract class PostgreSQLStatementVisitor extends
PostgreSQLStatementPars
return new
ParameterMarkerLimitValueSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), ((ParameterMarkerExpressionSegment)
astNode).getParameterMarkerIndex());
}
return new NumberLiteralLimitValueSegment(ctx.start.getStartIndex(),
ctx.stop.getStopIndex(),
- (null == ((LiteralExpressionSegment) astNode).getLiterals()) ?
null : Long.parseLong(((LiteralExpressionSegment)
astNode).getLiterals().toString()));
+ (null == ((ExpressionSegment) astNode).getText()) ? null :
Long.parseLong(((ExpressionSegment) astNode).getText()));
}
@Override
@@ -1371,7 +1371,7 @@ public abstract class PostgreSQLStatementVisitor extends
PostgreSQLStatementPars
return new
ParameterMarkerLimitValueSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), ((ParameterMarkerExpressionSegment)
astNode).getParameterMarkerIndex());
}
return new NumberLiteralLimitValueSegment(ctx.start.getStartIndex(),
ctx.stop.getStopIndex(),
- (null == ((LiteralExpressionSegment) astNode).getLiterals()) ?
null : Long.parseLong(((LiteralExpressionSegment)
astNode).getLiterals().toString()));
+ (null == ((ExpressionSegment) astNode).getText()) ? null :
Long.parseLong(((ExpressionSegment) astNode).getText()));
}
@Override
@@ -1381,7 +1381,7 @@ public abstract class PostgreSQLStatementVisitor extends
PostgreSQLStatementPars
return new
ParameterMarkerLimitValueSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), ((ParameterMarkerExpressionSegment)
astNode).getParameterMarkerIndex());
}
return new NumberLiteralLimitValueSegment(ctx.start.getStartIndex(),
ctx.stop.getStopIndex(),
- (null == ((LiteralExpressionSegment) astNode).getLiterals()) ?
null : Long.parseLong(((LiteralExpressionSegment)
astNode).getLiterals().toString()));
+ (null == ((ExpressionSegment) astNode).getText()) ? null :
Long.parseLong(((ExpressionSegment) astNode).getText()));
}
private LimitSegment createLimitSegmentWhenLimitAndOffset(final
SelectLimitContext ctx) {
diff --git
a/parser/sql/dialect/presto/src/main/java/org/apache/shardingsphere/sql/parser/presto/visitor/statement/type/PrestoDMLStatementVisitor.java
b/parser/sql/dialect/presto/src/main/java/org/apache/shardingsphere/sql/parser/presto/visitor/statement/type/PrestoDMLStatementVisitor.java
index 7a3496d9342..bf57f4c3a1d 100644
---
a/parser/sql/dialect/presto/src/main/java/org/apache/shardingsphere/sql/parser/presto/visitor/statement/type/PrestoDMLStatementVisitor.java
+++
b/parser/sql/dialect/presto/src/main/java/org/apache/shardingsphere/sql/parser/presto/visitor/statement/type/PrestoDMLStatementVisitor.java
@@ -612,8 +612,8 @@ public final class PrestoDMLStatementVisitor extends
PrestoStatementVisitor impl
public ASTNode visitPositionFunction(final PositionFunctionContext ctx) {
calculateParameterCount(ctx.expr());
FunctionSegment result = new
FunctionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(),
ctx.POSITION().getText(), getOriginalText(ctx));
- result.getParameters().add((LiteralExpressionSegment)
visit(ctx.expr(0)));
- result.getParameters().add((LiteralExpressionSegment)
visit(ctx.expr(1)));
+ result.getParameters().add((ExpressionSegment) visit(ctx.expr(0)));
+ result.getParameters().add((ExpressionSegment) visit(ctx.expr(1)));
return result;
}
@@ -1172,10 +1172,10 @@ public final class PrestoDMLStatementVisitor extends
PrestoStatementVisitor impl
result.setAlias(alias);
return result;
}
- LiteralExpressionSegment column = (LiteralExpressionSegment)
projection;
+ ExpressionSegment column = (ExpressionSegment) projection;
ExpressionProjectionSegment result = null == alias
- ? new ExpressionProjectionSegment(column.getStartIndex(),
column.getStopIndex(), String.valueOf(column.getLiterals()), column)
- : new ExpressionProjectionSegment(column.getStartIndex(),
ctx.alias().stop.getStopIndex(), String.valueOf(column.getLiterals()), column);
+ ? new ExpressionProjectionSegment(column.getStartIndex(),
column.getStopIndex(), String.valueOf(column.getText()), column)
+ : new ExpressionProjectionSegment(column.getStartIndex(),
ctx.alias().stop.getStopIndex(), String.valueOf(column.getText()), column);
result.setAlias(alias);
return result;
}
diff --git
a/parser/sql/dialect/sql92/src/main/java/org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java
b/parser/sql/dialect/sql92/src/main/java/org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java
index 827ce969a11..c31ac519f30 100644
---
a/parser/sql/dialect/sql92/src/main/java/org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java
+++
b/parser/sql/dialect/sql92/src/main/java/org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java
@@ -52,6 +52,7 @@ import
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser.TableRe
import
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser.TableReferencesContext;
import
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser.UpdateContext;
import
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser.WhereClauseContext;
+import
org.apache.shardingsphere.sql.parser.sql92.visitor.statement.SQL92StatementVisitor;
import org.apache.shardingsphere.sql.parser.statement.core.enums.JoinType;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.assignment.InsertValuesSegment;
@@ -62,7 +63,6 @@ import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.Bina
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExpressionSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.FunctionSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.complex.CommonExpressionSegment;
-import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simple.LiteralExpressionSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simple.ParameterMarkerExpressionSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.subquery.SubqueryExpressionSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.subquery.SubquerySegment;
@@ -91,7 +91,6 @@ import
org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92DeleteState
import
org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92InsertStatement;
import
org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
import
org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92UpdateStatement;
-import
org.apache.shardingsphere.sql.parser.sql92.visitor.statement.SQL92StatementVisitor;
import java.util.Collection;
import java.util.Collections;
@@ -349,9 +348,9 @@ public final class SQL92DMLStatementVisitor extends
SQL92StatementVisitor implem
result.setAlias(alias);
return projection;
}
- LiteralExpressionSegment column = (LiteralExpressionSegment)
projection;
- ExpressionProjectionSegment result = null == alias ? new
ExpressionProjectionSegment(column.getStartIndex(), column.getStopIndex(),
String.valueOf(column.getLiterals()), column)
- : new ExpressionProjectionSegment(column.getStartIndex(),
ctx.alias().stop.getStopIndex(), String.valueOf(column.getLiterals()), column);
+ ExpressionSegment column = (ExpressionSegment) projection;
+ ExpressionProjectionSegment result = null == alias ? new
ExpressionProjectionSegment(column.getStartIndex(), column.getStopIndex(),
String.valueOf(column.getText()), column)
+ : new ExpressionProjectionSegment(column.getStartIndex(),
ctx.alias().stop.getStopIndex(), String.valueOf(column.getText()), column);
result.setAlias(alias);
return result;
}
diff --git
a/parser/sql/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java
b/parser/sql/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java
index 13fcbd5bde0..2cba00ca6a4 100644
---
a/parser/sql/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java
+++
b/parser/sql/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java
@@ -1545,8 +1545,8 @@ public abstract class SQLServerStatementVisitor extends
SQLServerStatementBaseVi
result.setAlias(alias);
return projection;
}
- LiteralExpressionSegment column = (LiteralExpressionSegment)
projection;
- ExpressionProjectionSegment result = new
ExpressionProjectionSegment(getStartIndexWithAlias(column, alias),
getStopIndexWithAlias(column, alias), String.valueOf(column.getLiterals()),
column);
+ ExpressionSegment column = (ExpressionSegment) projection;
+ ExpressionProjectionSegment result = new
ExpressionProjectionSegment(getStartIndexWithAlias(column, alias),
getStopIndexWithAlias(column, alias), String.valueOf(column.getText()), column);
result.setAlias(alias);
return result;
}