未验证 提交 1d9a6d2c 编写于 作者: J JingShang Lu 提交者: GitHub

Merge pull request #6991 from dongzl/collate-sqlserver-parser

Collate SQLServer sql parser, parse column names.
......@@ -119,6 +119,10 @@ name
;
columnNames
: LP_ columnName (COMMA_ columnName)* RP_
;
columnNamesWithSort
: LP_ columnNameWithSort (COMMA_ columnNameWithSort)* RP_
;
......
......@@ -24,7 +24,7 @@ createTable
;
createIndex
: CREATE createIndexSpecification_ INDEX indexName ON tableName columnNames
: CREATE createIndexSpecification_ INDEX indexName ON tableName columnNameWithSort
;
alterTable
......
......@@ -34,6 +34,7 @@ import org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.Cha
import org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.ColumnNameContext;
import org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.ColumnNameWithSortContext;
import org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.ColumnNamesContext;
import org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.ColumnNamesWithSortContext;
import org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.DataTypeContext;
import org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.DataTypeLengthContext;
import org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.DataTypeNameContext;
......@@ -225,6 +226,15 @@ public abstract class SQLServerVisitor extends SQLServerStatementBaseVisitor<AST
@Override
public final ASTNode visitColumnNames(final ColumnNamesContext ctx) {
CollectionValue<ColumnSegment> result = new CollectionValue<>();
for (ColumnNameContext each : ctx.columnName()) {
result.getValue().add((ColumnSegment) visit(each));
}
return result;
}
@Override
public ASTNode visitColumnNamesWithSort(final ColumnNamesWithSortContext ctx) {
CollectionValue<ColumnSegment> result = new CollectionValue<>();
for (ColumnNameWithSortContext each : ctx.columnNameWithSort()) {
result.getValue().add((ColumnSegment) visit(each));
......
......@@ -23,7 +23,7 @@ import org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.Ali
import org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.AssignmentContext;
import org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.AssignmentValueContext;
import org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.AssignmentValuesContext;
import org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.ColumnNameWithSortContext;
import org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.ColumnNameContext;
import org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.ColumnNamesContext;
import org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.DeleteContext;
import org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.DuplicateSpecificationContext;
......@@ -461,7 +461,7 @@ public final class SQLServerDMLVisitor extends SQLServerVisitor implements DMLVi
}
if (null != ctx.USING()) {
Collection<ColumnSegment> columnSegmentList = new LinkedList<>();
for (ColumnNameWithSortContext each : ctx.columnNames().columnNameWithSort()) {
for (ColumnNameContext each : ctx.columnNames().columnName()) {
columnSegmentList.add((ColumnSegment) visit(each));
}
result.getUsingColumns().addAll(columnSegmentList);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册