未验证 提交 52a65fc4 编写于 作者: L Liang Zhang 提交者: GitHub

Remove useless getAllSQLSegments().add(XXX) (#4461)

* Remove useless getAllSQLSegments().add(XXX) for MySQL

* Remove useless getAllSQLSegments().add(XXX) for Oracle

* Remove useless getAllSQLSegments().add(XXX) for PostgreSQL

* Remove useless getAllSQLSegments().add(XXX) for SQL92

* Remove useless getAllSQLSegments().add(XXX) for SQLServer

* Remove useless getAllSQLSegments() on test case
上级 fd7118f6
......@@ -31,7 +31,6 @@ import org.apache.shardingsphere.sql.parser.relation.statement.impl.InsertSQLSta
import org.apache.shardingsphere.sql.parser.relation.statement.impl.SelectSQLStatementContext;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.column.ColumnSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.column.InsertColumnsSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.dal.dialect.postgresql.ShowStatement;
import org.apache.shardingsphere.sql.parser.sql.statement.dml.InsertStatement;
import org.apache.shardingsphere.sql.parser.sql.statement.dml.SelectStatement;
......@@ -68,7 +67,6 @@ public final class ShardingResultMergerEngineTest {
@Test
public void assertNewInstanceWithOtherStatement() {
InsertStatement insertStatement = new InsertStatement();
insertStatement.getAllSQLSegments().add(new TableSegment(0, 0, new IdentifierValue("tbl")));
InsertColumnsSegment insertColumnsSegment = new InsertColumnsSegment(0, 0, Collections.singletonList(new ColumnSegment(0, 0, new IdentifierValue("col"))));
insertStatement.setInsertColumns(insertColumnsSegment);
SQLStatementContext sqlStatementContext = new InsertSQLStatementContext(null, Collections.emptyList(), insertStatement);
......
......@@ -88,9 +88,7 @@ public final class MySQLDALVisitor extends MySQLVisitor implements DALVisitor {
public ASTNode visitShowTables(final ShowTablesContext ctx) {
ShowTablesStatement result = new ShowTablesStatement();
if (null != ctx.fromSchema()) {
FromSchemaSegment fromSchemaSegment = (FromSchemaSegment) visit(ctx.fromSchema());
result.getAllSQLSegments().add(fromSchemaSegment);
result.setFromSchema(fromSchemaSegment);
result.setFromSchema((FromSchemaSegment) visit(ctx.fromSchema()));
}
if (null != ctx.showLike()) {
ShowLikeSegment showLikeSegment = (ShowLikeSegment) visit(ctx.showLike());
......@@ -103,9 +101,7 @@ public final class MySQLDALVisitor extends MySQLVisitor implements DALVisitor {
public ASTNode visitShowTableStatus(final ShowTableStatusContext ctx) {
ShowTableStatusStatement result = new ShowTableStatusStatement();
if (null != ctx.fromSchema()) {
FromSchemaSegment fromSchemaSegment = (FromSchemaSegment) visit(ctx.fromSchema());
result.getAllSQLSegments().add(fromSchemaSegment);
result.setFromSchema(fromSchemaSegment);
result.setFromSchema((FromSchemaSegment) visit(ctx.fromSchema()));
}
if (null != ctx.showLike()) {
ShowLikeSegment showLikeSegment = (ShowLikeSegment) visit(ctx.showLike());
......@@ -118,15 +114,10 @@ public final class MySQLDALVisitor extends MySQLVisitor implements DALVisitor {
public ASTNode visitShowColumns(final ShowColumnsContext ctx) {
ShowColumnsStatement result = new ShowColumnsStatement();
if (null != ctx.fromTable()) {
FromTableSegment fromTableSegment = (FromTableSegment) visit(ctx.fromTable());
result.setTable(fromTableSegment.getTable());
result.getAllSQLSegments().add(fromTableSegment.getTable());
result.getAllSQLSegments().add(fromTableSegment);
result.setTable(((FromTableSegment) visit(ctx.fromTable())).getTable());
}
if (null != ctx.fromSchema()) {
FromSchemaSegment fromSchemaSegment = (FromSchemaSegment) visit(ctx.fromSchema());
result.getAllSQLSegments().add(fromSchemaSegment);
result.setFromSchema(fromSchemaSegment);
result.setFromSchema((FromSchemaSegment) visit(ctx.fromSchema()));
}
return result;
}
......@@ -136,16 +127,11 @@ public final class MySQLDALVisitor extends MySQLVisitor implements DALVisitor {
ShowIndexStatement result = new ShowIndexStatement();
if (null != ctx.fromSchema()) {
SchemaNameContext schemaNameContext = ctx.fromSchema().schemaName();
SchemaSegment schemaSegment = new SchemaSegment(schemaNameContext.getStart().getStartIndex(), schemaNameContext.getStop().getStopIndex(), (IdentifierValue) visit(schemaNameContext));
result.getAllSQLSegments().add(schemaSegment);
result.setSchema(schemaSegment);
// TODO visitSchemaName
result.setSchema(new SchemaSegment(schemaNameContext.getStart().getStartIndex(), schemaNameContext.getStop().getStopIndex(), (IdentifierValue) visit(schemaNameContext)));
}
if (null != ctx.fromTable()) {
FromTableSegment fromTableSegment = (FromTableSegment) visitFromTable(ctx.fromTable());
TableSegment tableSegment = fromTableSegment.getTable();
result.setTable(tableSegment);
result.getAllSQLSegments().add(tableSegment);
result.getAllSQLSegments().add(fromTableSegment);
result.setTable(((FromTableSegment) visitFromTable(ctx.fromTable())).getTable());
}
return result;
}
......
......@@ -57,7 +57,6 @@ public final class MySQLDCLVisitor extends MySQLVisitor implements DCLVisitor {
GrantStatement result = new GrantStatement();
Optional<TableSegment> tableSegment = null == ctx.privilegeClause() ? Optional.<TableSegment>absent() : getTableFromPrivilegeClause(ctx.privilegeClause());
if (tableSegment.isPresent()) {
result.getAllSQLSegments().add(tableSegment.get());
result.getTables().add(tableSegment.get());
}
return result;
......@@ -68,7 +67,6 @@ public final class MySQLDCLVisitor extends MySQLVisitor implements DCLVisitor {
RevokeStatement result = new RevokeStatement();
Optional<TableSegment> tableSegment = null == ctx.privilegeClause() ? Optional.<TableSegment>absent() : getTableFromPrivilegeClause(ctx.privilegeClause());
if (tableSegment.isPresent()) {
result.getAllSQLSegments().add(tableSegment.get());
result.getTables().add(tableSegment.get());
}
return result;
......
......@@ -85,7 +85,6 @@ public final class MySQLDDLVisitor extends MySQLVisitor implements DDLVisitor {
CreateTableStatement result = new CreateTableStatement();
TableSegment table = (TableSegment) visit(ctx.tableName());
result.getTables().add(table);
result.getAllSQLSegments().add(table);
if (null != ctx.createDefinitionClause()) {
CreateTableStatement createDefinition = (CreateTableStatement) visit(ctx.createDefinitionClause());
result.getColumnDefinitions().addAll(createDefinition.getColumnDefinitions());
......@@ -97,9 +96,7 @@ public final class MySQLDDLVisitor extends MySQLVisitor implements DDLVisitor {
}
}
if (null != ctx.createLikeClause()) {
TableSegment likeTable = (TableSegment) visit(ctx.createLikeClause());
result.getAllSQLSegments().add(likeTable);
result.getTables().add(likeTable);
result.getTables().add((TableSegment) visit(ctx.createLikeClause()));
}
return result;
}
......@@ -135,7 +132,6 @@ public final class MySQLDDLVisitor extends MySQLVisitor implements DDLVisitor {
AlterTableStatement result = new AlterTableStatement();
TableSegment table = (TableSegment) visit(ctx.tableName());
result.getTables().add(table);
result.getAllSQLSegments().add(table);
if (null != ctx.alterDefinitionClause()) {
AlterTableStatement alterDefinition = (AlterTableStatement) visit(ctx.alterDefinitionClause());
result.getAddedColumnDefinitions().addAll(alterDefinition.getAddedColumnDefinitions());
......@@ -332,36 +328,28 @@ public final class MySQLDDLVisitor extends MySQLVisitor implements DDLVisitor {
@Override
public ASTNode visitDropTable(final DropTableContext ctx) {
DropTableStatement result = new DropTableStatement();
CollectionValue<TableSegment> tables = (CollectionValue<TableSegment>) visit(ctx.tableNames());
result.getTables().addAll(tables.getValue());
result.getAllSQLSegments().addAll(tables.getValue());
result.getTables().addAll(((CollectionValue<TableSegment>) visit(ctx.tableNames())).getValue());
return result;
}
@Override
public ASTNode visitTruncateTable(final TruncateTableContext ctx) {
TruncateStatement result = new TruncateStatement();
TableSegment table = (TableSegment) visit(ctx.tableName());
result.getAllSQLSegments().add(table);
result.getTables().add(table);
result.getTables().add((TableSegment) visit(ctx.tableName()));
return result;
}
@Override
public ASTNode visitCreateIndex(final CreateIndexContext ctx) {
CreateIndexStatement result = new CreateIndexStatement();
TableSegment table = (TableSegment) visit(ctx.tableName());
result.setTable(table);
result.getAllSQLSegments().add(table);
result.setTable((TableSegment) visit(ctx.tableName()));
return result;
}
@Override
public ASTNode visitDropIndex(final DropIndexContext ctx) {
DropIndexStatement result = new DropIndexStatement();
TableSegment table = (TableSegment) visit(ctx.tableName());
result.setTable(table);
result.getAllSQLSegments().add(table);
result.setTable((TableSegment) visit(ctx.tableName()));
return result;
}
}
......@@ -119,18 +119,12 @@ public final class MySQLDMLVisitor extends MySQLVisitor implements DMLVisitor {
result = (InsertStatement) visit(ctx.insertValuesClause());
} else {
result = new InsertStatement();
SetAssignmentSegment segment = (SetAssignmentSegment) visit(ctx.setAssignmentsClause());
result.setSetAssignment(segment);
result.getAllSQLSegments().add(segment);
result.setSetAssignment((SetAssignmentSegment) visit(ctx.setAssignmentsClause()));
}
if (null != ctx.onDuplicateKeyClause()) {
OnDuplicateKeyColumnsSegment onDuplicateKeyColumnsSegment = (OnDuplicateKeyColumnsSegment) visit(ctx.onDuplicateKeyClause());
result.getAllSQLSegments().add(onDuplicateKeyColumnsSegment);
result.setOnDuplicateKeyColumns(onDuplicateKeyColumnsSegment);
result.setOnDuplicateKeyColumns((OnDuplicateKeyColumnsSegment) visit(ctx.onDuplicateKeyClause()));
}
TableSegment table = (TableSegment) visit(ctx.tableName());
result.setTable(table);
result.getAllSQLSegments().add(table);
result.setTable((TableSegment) visit(ctx.tableName()));
result.setParametersCount(getCurrentParameterIndex());
return result;
}
......@@ -142,18 +136,11 @@ public final class MySQLDMLVisitor extends MySQLVisitor implements DMLVisitor {
if (null != ctx.columnNames()) {
ColumnNamesContext columnNames = ctx.columnNames();
CollectionValue<ColumnSegment> columnSegments = (CollectionValue<ColumnSegment>) visit(columnNames);
InsertColumnsSegment insertColumnsSegment = new InsertColumnsSegment(columnNames.start.getStartIndex(), columnNames.stop.getStopIndex(), columnSegments.getValue());
result.setInsertColumns(insertColumnsSegment);
result.getAllSQLSegments().add(insertColumnsSegment);
result.setInsertColumns(new InsertColumnsSegment(columnNames.start.getStartIndex(), columnNames.stop.getStopIndex(), columnSegments.getValue()));
} else {
InsertColumnsSegment insertColumnsSegment =
new InsertColumnsSegment(ctx.start.getStartIndex() - 1, ctx.start.getStartIndex() - 1, Collections.<ColumnSegment>emptyList());
result.setInsertColumns(insertColumnsSegment);
result.getAllSQLSegments().add(insertColumnsSegment);
}
Collection<InsertValuesSegment> insertValuesSegments = createInsertValuesSegments(ctx.assignmentValues());
result.getValues().addAll(insertValuesSegments);
result.getAllSQLSegments().addAll(insertValuesSegments);
result.setInsertColumns(new InsertColumnsSegment(ctx.start.getStartIndex() - 1, ctx.start.getStartIndex() - 1, Collections.<ColumnSegment>emptyList()));
}
result.getValues().addAll(createInsertValuesSegments(ctx.assignmentValues()));
return result;
}
......@@ -178,16 +165,10 @@ public final class MySQLDMLVisitor extends MySQLVisitor implements DMLVisitor {
@Override
public ASTNode visitUpdate(final UpdateContext ctx) {
UpdateStatement result = new UpdateStatement();
CollectionValue<TableSegment> tables = (CollectionValue<TableSegment>) visit(ctx.tableReferences());
SetAssignmentSegment setSegment = (SetAssignmentSegment) visit(ctx.setAssignmentsClause());
result.getTables().addAll(tables.getValue());
result.setSetAssignment(setSegment);
result.getAllSQLSegments().addAll(tables.getValue());
result.getAllSQLSegments().add(setSegment);
result.getTables().addAll(((CollectionValue<TableSegment>) visit(ctx.tableReferences())).getValue());
result.setSetAssignment((SetAssignmentSegment) visit(ctx.setAssignmentsClause()));
if (null != ctx.whereClause()) {
WhereSegment whereSegment = (WhereSegment) visit(ctx.whereClause());
result.setWhere(whereSegment);
result.getAllSQLSegments().add(whereSegment);
result.setWhere((WhereSegment) visit(ctx.whereClause()));
}
result.setParametersCount(getCurrentParameterIndex());
return result;
......@@ -237,18 +218,12 @@ public final class MySQLDMLVisitor extends MySQLVisitor implements DMLVisitor {
public ASTNode visitDelete(final DeleteContext ctx) {
DeleteStatement result = new DeleteStatement();
if (null != ctx.multipleTablesClause()) {
CollectionValue<TableSegment> tables = (CollectionValue<TableSegment>) visit(ctx.multipleTablesClause());
result.getTables().addAll(tables.getValue());
result.getAllSQLSegments().addAll(tables.getValue());
result.getTables().addAll(((CollectionValue<TableSegment>) visit(ctx.multipleTablesClause())).getValue());
} else {
TableSegment table = (TableSegment) visit(ctx.singleTableClause());
result.getTables().add(table);
result.getAllSQLSegments().add(table);
result.getTables().add((TableSegment) visit(ctx.singleTableClause()));
}
if (null != ctx.whereClause()) {
WhereSegment where = (WhereSegment) visit(ctx.whereClause());
result.setWhere(where);
result.getAllSQLSegments().add(where);
result.setWhere((WhereSegment) visit(ctx.whereClause()));
}
result.setParametersCount(getCurrentParameterIndex());
return result;
......@@ -299,41 +274,27 @@ public final class MySQLDMLVisitor extends MySQLVisitor implements DMLVisitor {
@Override
public ASTNode visitSelectClause(final SelectClauseContext ctx) {
SelectStatement result = new SelectStatement();
ProjectionsSegment projections = (ProjectionsSegment) visit(ctx.projections());
result.setProjections(projections);
result.getAllSQLSegments().add(projections);
result.setProjections((ProjectionsSegment) visit(ctx.projections()));
if (null != ctx.selectSpecification()) {
result.getProjections().setDistinctRow(isDistinct(ctx));
}
if (null != ctx.fromClause()) {
CollectionValue<TableSegment> tables = (CollectionValue<TableSegment>) visit(ctx.fromClause());
result.getTables().addAll(tables.getValue());
result.getAllSQLSegments().addAll(tables.getValue());
result.getTables().addAll(((CollectionValue<TableSegment>) visit(ctx.fromClause())).getValue());
}
if (null != ctx.whereClause()) {
WhereSegment where = (WhereSegment) visit(ctx.whereClause());
result.setWhere(where);
result.getAllSQLSegments().add(where);
result.setWhere((WhereSegment) visit(ctx.whereClause()));
}
if (null != ctx.groupByClause()) {
GroupBySegment groupBy = (GroupBySegment) visit(ctx.groupByClause());
result.setGroupBy(groupBy);
result.getAllSQLSegments().add(groupBy);
result.setGroupBy((GroupBySegment) visit(ctx.groupByClause()));
}
if (null != ctx.orderByClause()) {
OrderBySegment orderBy = (OrderBySegment) visit(ctx.orderByClause());
result.setOrderBy(orderBy);
result.getAllSQLSegments().add(orderBy);
result.setOrderBy((OrderBySegment) visit(ctx.orderByClause()));
}
if (null != ctx.limitClause()) {
LimitSegment limitSegment = (LimitSegment) visit(ctx.limitClause());
result.getAllSQLSegments().add(limitSegment);
result.setLimit(limitSegment);
result.setLimit((LimitSegment) visit(ctx.limitClause()));
}
if (null != ctx.lockClause()) {
LockSegment lockSegment = (LockSegment) visit(ctx.lockClause());
result.getAllSQLSegments().add(lockSegment);
result.setLock(lockSegment);
result.setLock((LockSegment) visit(ctx.lockClause()));
}
return result;
}
......
......@@ -48,9 +48,7 @@ public final class MySQLTCLVisitor extends MySQLVisitor implements TCLVisitor {
@Override
public ASTNode visitSetAutoCommit(final SetAutoCommitContext ctx) {
SetAutoCommitStatement result = new SetAutoCommitStatement();
AutoCommitSegment autoCommitSegment = (AutoCommitSegment) visit(ctx.autoCommitValue());
result.getAllSQLSegments().add(autoCommitSegment);
result.setAutoCommit(autoCommitSegment.isAutoCommit());
result.setAutoCommit(((AutoCommitSegment) visit(ctx.autoCommitValue())).isAutoCommit());
return result;
}
......
......@@ -52,7 +52,6 @@ public final class OracleDCLVisitor extends OracleVisitor implements DCLVisitor
GrantStatement result = new GrantStatement();
if (null != ctx.objectPrivilegeClause()) {
for (TableSegment each : getTableFromPrivilegeClause(ctx.objectPrivilegeClause())) {
result.getAllSQLSegments().add(each);
result.getTables().add(each);
}
}
......@@ -64,7 +63,6 @@ public final class OracleDCLVisitor extends OracleVisitor implements DCLVisitor
RevokeStatement result = new RevokeStatement();
if (null != ctx.objectPrivilegeClause()) {
for (TableSegment each : getTableFromPrivilegeClause(ctx.objectPrivilegeClause())) {
result.getAllSQLSegments().add(each);
result.getTables().add(each);
}
}
......
......@@ -70,9 +70,7 @@ public final class OracleDDLVisitor extends OracleVisitor implements DDLVisitor
@Override
public ASTNode visitCreateTable(final CreateTableContext ctx) {
CreateTableStatement result = new CreateTableStatement();
TableSegment table = (TableSegment) visit(ctx.tableName());
result.getTables().add(table);
result.getAllSQLSegments().add(table);
result.getTables().add((TableSegment) visit(ctx.tableName()));
if (null != ctx.createDefinitionClause()) {
CreateTableStatement createDefinition = (CreateTableStatement) visit(ctx.createDefinitionClause());
result.getColumnDefinitions().addAll(createDefinition.getColumnDefinitions());
......@@ -159,7 +157,6 @@ public final class OracleDDLVisitor extends OracleVisitor implements DDLVisitor
AlterTableStatement result = new AlterTableStatement();
TableSegment table = (TableSegment) visit(ctx.tableName());
result.getTables().add(table);
result.getAllSQLSegments().add(table);
if (null != ctx.alterDefinitionClause()) {
AlterTableStatement alterDefinition = (AlterTableStatement) visit(ctx.alterDefinitionClause());
result.getAddedColumnDefinitions().addAll(alterDefinition.getAddedColumnDefinitions());
......@@ -263,9 +260,7 @@ public final class OracleDDLVisitor extends OracleVisitor implements DDLVisitor
@Override
public ASTNode visitDropTable(final DropTableContext ctx) {
DropTableStatement result = new DropTableStatement();
TableSegment table = (TableSegment) visit(ctx.tableName());
result.getTables().add(table);
result.getAllSQLSegments().add(table);
result.getTables().add((TableSegment) visit(ctx.tableName()));
return result;
}
......@@ -273,9 +268,7 @@ public final class OracleDDLVisitor extends OracleVisitor implements DDLVisitor
@Override
public ASTNode visitTruncateTable(final TruncateTableContext ctx) {
TruncateStatement result = new TruncateStatement();
TableSegment table = (TableSegment) visit(ctx.tableName());
result.getTables().add(table);
result.getAllSQLSegments().add(table);
result.getTables().add((TableSegment) visit(ctx.tableName()));
return result;
}
......@@ -283,9 +276,7 @@ public final class OracleDDLVisitor extends OracleVisitor implements DDLVisitor
public ASTNode visitCreateIndex(final CreateIndexContext ctx) {
CreateIndexStatement result = new CreateIndexStatement();
if (null != ctx.createIndexDefinitionClause().tableIndexClause()) {
TableSegment table = (TableSegment) visit(ctx.createIndexDefinitionClause().tableIndexClause().tableName());
result.setTable(table);
result.getAllSQLSegments().add(table);
result.setTable((TableSegment) visit(ctx.createIndexDefinitionClause().tableIndexClause().tableName()));
}
return result;
}
......
......@@ -99,9 +99,7 @@ public final class OracleDMLVisitor extends OracleVisitor implements DMLVisitor
// TODO deal with insert select
if (null != ctx.insertSingleTable()) {
InsertStatement result = (InsertStatement) visit(ctx.insertSingleTable().insertValuesClause());
TableSegment table = (TableSegment) visit(ctx.insertSingleTable().insertIntoClause().tableName());
result.setTable(table);
result.getAllSQLSegments().add(table);
result.setTable((TableSegment) visit(ctx.insertSingleTable().insertIntoClause().tableName()));
result.setParametersCount(getCurrentParameterIndex());
return result;
}
......@@ -115,18 +113,11 @@ public final class OracleDMLVisitor extends OracleVisitor implements DMLVisitor
if (null != ctx.columnNames()) {
ColumnNamesContext columnNames = ctx.columnNames();
CollectionValue<ColumnSegment> columnSegments = (CollectionValue<ColumnSegment>) visit(columnNames);
InsertColumnsSegment insertColumnsSegment = new InsertColumnsSegment(columnNames.start.getStartIndex(), columnNames.stop.getStopIndex(), columnSegments.getValue());
result.setInsertColumns(insertColumnsSegment);
result.getAllSQLSegments().add(insertColumnsSegment);
result.setInsertColumns(new InsertColumnsSegment(columnNames.start.getStartIndex(), columnNames.stop.getStopIndex(), columnSegments.getValue()));
} else {
InsertColumnsSegment insertColumnsSegment =
new InsertColumnsSegment(ctx.start.getStartIndex() - 1, ctx.start.getStartIndex() - 1, Collections.<ColumnSegment>emptyList());
result.setInsertColumns(insertColumnsSegment);
result.getAllSQLSegments().add(insertColumnsSegment);
}
Collection<InsertValuesSegment> insertValuesSegments = createInsertValuesSegments(ctx.assignmentValues());
result.getValues().addAll(insertValuesSegments);
result.getAllSQLSegments().addAll(insertValuesSegments);
result.setInsertColumns(new InsertColumnsSegment(ctx.start.getStartIndex() - 1, ctx.start.getStartIndex() - 1, Collections.<ColumnSegment>emptyList()));
}
result.getValues().addAll(createInsertValuesSegments(ctx.assignmentValues()));
return result;
}
......@@ -142,16 +133,10 @@ public final class OracleDMLVisitor extends OracleVisitor implements DMLVisitor
@Override
public ASTNode visitUpdate(final UpdateContext ctx) {
UpdateStatement result = new UpdateStatement();
CollectionValue<TableSegment> tables = (CollectionValue<TableSegment>) visit(ctx.tableReferences());
SetAssignmentSegment setSegment = (SetAssignmentSegment) visit(ctx.setAssignmentsClause());
result.getTables().addAll(tables.getValue());
result.setSetAssignment(setSegment);
result.getAllSQLSegments().addAll(tables.getValue());
result.getAllSQLSegments().add(setSegment);
result.getTables().addAll(((CollectionValue<TableSegment>) visit(ctx.tableReferences())).getValue());
result.setSetAssignment((SetAssignmentSegment) visit(ctx.setAssignmentsClause()));
if (null != ctx.whereClause()) {
WhereSegment whereSegment = (WhereSegment) visit(ctx.whereClause());
result.setWhere(whereSegment);
result.getAllSQLSegments().add(whereSegment);
result.setWhere((WhereSegment) visit(ctx.whereClause()));
}
result.setParametersCount(getCurrentParameterIndex());
return result;
......@@ -196,18 +181,12 @@ public final class OracleDMLVisitor extends OracleVisitor implements DMLVisitor
public ASTNode visitDelete(final DeleteContext ctx) {
DeleteStatement result = new DeleteStatement();
if (null != ctx.multipleTablesClause()) {
CollectionValue<TableSegment> tables = (CollectionValue<TableSegment>) visit(ctx.multipleTablesClause());
result.getTables().addAll(tables.getValue());
result.getAllSQLSegments().addAll(tables.getValue());
result.getTables().addAll(((CollectionValue<TableSegment>) visit(ctx.multipleTablesClause())).getValue());
} else {
TableSegment table = (TableSegment) visit(ctx.singleTableClause());
result.getTables().add(table);
result.getAllSQLSegments().add(table);
result.getTables().add((TableSegment) visit(ctx.singleTableClause()));
}
if (null != ctx.whereClause()) {
WhereSegment where = (WhereSegment) visit(ctx.whereClause());
result.setWhere(where);
result.getAllSQLSegments().add(where);
result.setWhere((WhereSegment) visit(ctx.whereClause()));
}
result.setParametersCount(getCurrentParameterIndex());
return result;
......@@ -258,31 +237,21 @@ public final class OracleDMLVisitor extends OracleVisitor implements DMLVisitor
@Override
public ASTNode visitSelectClause(final SelectClauseContext ctx) {
SelectStatement result = new SelectStatement();
ProjectionsSegment projections = (ProjectionsSegment) visit(ctx.projections());
result.setProjections(projections);
result.getAllSQLSegments().add(projections);
result.setProjections((ProjectionsSegment) visit(ctx.projections()));
if (null != ctx.duplicateSpecification()) {
result.getProjections().setDistinctRow(isDistinct(ctx));
}
if (null != ctx.fromClause()) {
CollectionValue<TableSegment> tables = (CollectionValue<TableSegment>) visit(ctx.fromClause());
result.getTables().addAll(tables.getValue());
result.getAllSQLSegments().addAll(tables.getValue());
result.getTables().addAll(((CollectionValue<TableSegment>) visit(ctx.fromClause())).getValue());
}
if (null != ctx.whereClause()) {
WhereSegment where = (WhereSegment) visit(ctx.whereClause());
result.setWhere(where);
result.getAllSQLSegments().add(where);
result.setWhere((WhereSegment) visit(ctx.whereClause()));
}
if (null != ctx.groupByClause()) {
GroupBySegment groupBy = (GroupBySegment) visit(ctx.groupByClause());
result.setGroupBy(groupBy);
result.getAllSQLSegments().add(groupBy);
result.setGroupBy((GroupBySegment) visit(ctx.groupByClause()));
}
if (null != ctx.orderByClause()) {
OrderBySegment orderBy = (OrderBySegment) visit(ctx.orderByClause());
result.setOrderBy(orderBy);
result.getAllSQLSegments().add(orderBy);
result.setOrderBy((OrderBySegment) visit(ctx.orderByClause()));
}
return result;
}
......
......@@ -53,7 +53,6 @@ public final class PostgreSQLDCLVisitor extends PostgreSQLVisitor implements DCL
GrantStatement result = new GrantStatement();
if (null != ctx.privilegeClause()) {
for (TableSegment each : getTableFromPrivilegeClause(ctx.privilegeClause())) {
result.getAllSQLSegments().add(each);
result.getTables().add(each);
}
}
......@@ -65,7 +64,6 @@ public final class PostgreSQLDCLVisitor extends PostgreSQLVisitor implements DCL
RevokeStatement result = new RevokeStatement();
if (null != ctx.privilegeClause()) {
for (TableSegment each : getTableFromPrivilegeClause(ctx.privilegeClause())) {
result.getAllSQLSegments().add(each);
result.getTables().add(each);
}
}
......
......@@ -74,9 +74,7 @@ public final class PostgreSQLDDLVisitor extends PostgreSQLVisitor implements DDL
@Override
public ASTNode visitCreateTable(final CreateTableContext ctx) {
CreateTableStatement result = new CreateTableStatement();
TableSegment table = (TableSegment) visit(ctx.tableName());
result.getTables().add(table);
result.getAllSQLSegments().add(table);
result.getTables().add((TableSegment) visit(ctx.tableName()));
if (null != ctx.createDefinitionClause()) {
CreateTableStatement createDefinition = (CreateTableStatement) visit(ctx.createDefinitionClause());
result.getColumnDefinitions().addAll(createDefinition.getColumnDefinitions());
......@@ -112,9 +110,7 @@ public final class PostgreSQLDDLVisitor extends PostgreSQLVisitor implements DDL
@Override
public ASTNode visitAlterTable(final AlterTableContext ctx) {
AlterTableStatement result = new AlterTableStatement();
TableSegment table = (TableSegment) visit(ctx.tableNameClause());
result.getTables().add(table);
result.getAllSQLSegments().add(table);
result.getTables().add((TableSegment) visit(ctx.tableNameClause()));
if (null != ctx.alterDefinitionClause()) {
AlterTableStatement alterDefinition = (AlterTableStatement) visit(ctx.alterDefinitionClause());
result.getAddedColumnDefinitions().addAll(alterDefinition.getAddedColumnDefinitions());
......@@ -243,9 +239,7 @@ public final class PostgreSQLDDLVisitor extends PostgreSQLVisitor implements DDL
@Override
public ASTNode visitDropTable(final DropTableContext ctx) {
DropTableStatement result = new DropTableStatement();
CollectionValue<TableSegment> tables = (CollectionValue<TableSegment>) visit(ctx.tableNames());
result.getTables().addAll(tables.getValue());
result.getAllSQLSegments().addAll(tables.getValue());
result.getTables().addAll(((CollectionValue<TableSegment>) visit(ctx.tableNames())).getValue());
return result;
}
......@@ -253,21 +247,15 @@ public final class PostgreSQLDDLVisitor extends PostgreSQLVisitor implements DDL
@Override
public ASTNode visitTruncateTable(final TruncateTableContext ctx) {
TruncateStatement result = new TruncateStatement();
CollectionValue<TableSegment> tables = (CollectionValue<TableSegment>) visit(ctx.tableNamesClause());
result.getTables().addAll(tables.getValue());
result.getAllSQLSegments().addAll(tables.getValue());
result.getTables().addAll(((CollectionValue<TableSegment>) visit(ctx.tableNamesClause())).getValue());
return result;
}
@Override
public ASTNode visitCreateIndex(final CreateIndexContext ctx) {
CreateIndexStatement result = new CreateIndexStatement();
TableSegment table = (TableSegment) visit(ctx.tableName());
IndexSegment index = (IndexSegment) visit(ctx.indexName());
result.setTable(table);
result.setIndex(index);
result.getAllSQLSegments().add(table);
result.getAllSQLSegments().add(index);
result.setTable((TableSegment) visit(ctx.tableName()));
result.setIndex((IndexSegment) visit(ctx.indexName()));
return result;
}
......@@ -275,9 +263,7 @@ public final class PostgreSQLDDLVisitor extends PostgreSQLVisitor implements DDL
@Override
public ASTNode visitDropIndex(final DropIndexContext ctx) {
DropIndexStatement result = new DropIndexStatement();
CollectionValue<IndexSegment> indexes = (CollectionValue<IndexSegment>) visit(ctx.indexNames());
result.getIndexes().addAll(indexes.getValue());
result.getAllSQLSegments().addAll(indexes.getValue());
result.getIndexes().addAll(((CollectionValue<IndexSegment>) visit(ctx.indexNames())).getValue());
return result;
}
......
......@@ -107,9 +107,7 @@ public final class PostgreSQLDMLVisitor extends PostgreSQLVisitor implements DML
// TODO :FIXME, since there is no segment for insertValuesClause, InsertStatement is created by sub rule.
// TODO deal with insert select
InsertStatement result = (InsertStatement) visit(ctx.insertValuesClause());
TableSegment table = (TableSegment) visit(ctx.tableName());
result.setTable(table);
result.getAllSQLSegments().add(table);
result.setTable((TableSegment) visit(ctx.tableName()));
result.setParametersCount(getCurrentParameterIndex());
return result;
}
......@@ -121,18 +119,11 @@ public final class PostgreSQLDMLVisitor extends PostgreSQLVisitor implements DML
if (null != ctx.columnNames()) {
ColumnNamesContext columnNames = ctx.columnNames();
CollectionValue<ColumnSegment> columnSegments = (CollectionValue<ColumnSegment>) visit(columnNames);
InsertColumnsSegment insertColumnsSegment = new InsertColumnsSegment(columnNames.start.getStartIndex(), columnNames.stop.getStopIndex(), columnSegments.getValue());
result.setInsertColumns(insertColumnsSegment);
result.getAllSQLSegments().add(insertColumnsSegment);
result.setInsertColumns(new InsertColumnsSegment(columnNames.start.getStartIndex(), columnNames.stop.getStopIndex(), columnSegments.getValue()));
} else {
InsertColumnsSegment insertColumnsSegment =
new InsertColumnsSegment(ctx.start.getStartIndex() - 1, ctx.start.getStartIndex() - 1, Collections.<ColumnSegment>emptyList());
result.setInsertColumns(insertColumnsSegment);
result.getAllSQLSegments().add(insertColumnsSegment);
}
Collection<InsertValuesSegment> insertValuesSegments = createInsertValuesSegments(ctx.assignmentValues());
result.getValues().addAll(insertValuesSegments);
result.getAllSQLSegments().addAll(insertValuesSegments);
result.setInsertColumns(new InsertColumnsSegment(ctx.start.getStartIndex() - 1, ctx.start.getStartIndex() - 1, Collections.<ColumnSegment>emptyList()));
}
result.getValues().addAll(createInsertValuesSegments(ctx.assignmentValues()));
return result;
}
......@@ -148,16 +139,10 @@ public final class PostgreSQLDMLVisitor extends PostgreSQLVisitor implements DML
@Override
public ASTNode visitUpdate(final UpdateContext ctx) {
UpdateStatement result = new UpdateStatement();
CollectionValue<TableSegment> tables = (CollectionValue<TableSegment>) visit(ctx.tableReferences());
SetAssignmentSegment setSegment = (SetAssignmentSegment) visit(ctx.setAssignmentsClause());
result.getTables().addAll(tables.getValue());
result.setSetAssignment(setSegment);
result.getAllSQLSegments().addAll(tables.getValue());
result.getAllSQLSegments().add(setSegment);
result.getTables().addAll(((CollectionValue<TableSegment>) visit(ctx.tableReferences())).getValue());
result.setSetAssignment((SetAssignmentSegment) visit(ctx.setAssignmentsClause()));
if (null != ctx.whereClause()) {
WhereSegment whereSegment = (WhereSegment) visit(ctx.whereClause());
result.setWhere(whereSegment);
result.getAllSQLSegments().add(whereSegment);
result.setWhere((WhereSegment) visit(ctx.whereClause()));
}
result.setParametersCount(getCurrentParameterIndex());
return result;
......@@ -202,18 +187,12 @@ public final class PostgreSQLDMLVisitor extends PostgreSQLVisitor implements DML
public ASTNode visitDelete(final DeleteContext ctx) {
DeleteStatement result = new DeleteStatement();
if (null != ctx.multipleTablesClause()) {
CollectionValue<TableSegment> tables = (CollectionValue<TableSegment>) visit(ctx.multipleTablesClause());
result.getTables().addAll(tables.getValue());
result.getAllSQLSegments().addAll(tables.getValue());
result.getTables().addAll(((CollectionValue<TableSegment>) visit(ctx.multipleTablesClause())).getValue());
} else {
TableSegment table = (TableSegment) visit(ctx.singleTableClause());
result.getTables().add(table);
result.getAllSQLSegments().add(table);
result.getTables().add((TableSegment) visit(ctx.singleTableClause()));
}
if (null != ctx.whereClause()) {
WhereSegment where = (WhereSegment) visit(ctx.whereClause());
result.setWhere(where);
result.getAllSQLSegments().add(where);
result.setWhere((WhereSegment) visit(ctx.whereClause()));
}
result.setParametersCount(getCurrentParameterIndex());
return result;
......@@ -264,36 +243,24 @@ public final class PostgreSQLDMLVisitor extends PostgreSQLVisitor implements DML
@Override
public ASTNode visitSelectClause(final SelectClauseContext ctx) {
SelectStatement result = new SelectStatement();
ProjectionsSegment projections = (ProjectionsSegment) visit(ctx.projections());
result.setProjections(projections);
result.getAllSQLSegments().add(projections);
result.setProjections((ProjectionsSegment) visit(ctx.projections()));
if (null != ctx.duplicateSpecification()) {
result.getProjections().setDistinctRow(isDistinct(ctx));
}
if (null != ctx.fromClause()) {
CollectionValue<TableSegment> tables = (CollectionValue<TableSegment>) visit(ctx.fromClause());
result.getTables().addAll(tables.getValue());
result.getAllSQLSegments().addAll(tables.getValue());
result.getTables().addAll(((CollectionValue<TableSegment>) visit(ctx.fromClause())).getValue());
}
if (null != ctx.whereClause()) {
WhereSegment where = (WhereSegment) visit(ctx.whereClause());
result.setWhere(where);
result.getAllSQLSegments().add(where);
result.setWhere((WhereSegment) visit(ctx.whereClause()));
}
if (null != ctx.groupByClause()) {
GroupBySegment groupBy = (GroupBySegment) visit(ctx.groupByClause());
result.setGroupBy(groupBy);
result.getAllSQLSegments().add(groupBy);
result.setGroupBy((GroupBySegment) visit(ctx.groupByClause()));
}
if (null != ctx.orderByClause()) {
OrderBySegment orderBy = (OrderBySegment) visit(ctx.orderByClause());
result.setOrderBy(orderBy);
result.getAllSQLSegments().add(orderBy);
result.setOrderBy((OrderBySegment) visit(ctx.orderByClause()));
}
if (null != ctx.limitClause()) {
LimitSegment limitSegment = (LimitSegment) visit(ctx.limitClause());
result.getAllSQLSegments().add(limitSegment);
result.setLimit(limitSegment);
result.setLimit((LimitSegment) visit(ctx.limitClause()));
}
return result;
}
......
......@@ -40,7 +40,6 @@ public final class SQL92DCLVisitor extends SQL92Visitor implements DCLVisitor {
GrantStatement result = new GrantStatement();
if (null != ctx.privilegeClause()) {
for (TableSegment each : getTableFromPrivilegeClause(ctx.privilegeClause())) {
result.getAllSQLSegments().add(each);
result.getTables().add(each);
}
}
......@@ -52,7 +51,6 @@ public final class SQL92DCLVisitor extends SQL92Visitor implements DCLVisitor {
RevokeStatement result = new RevokeStatement();
if (null != ctx.privilegeClause()) {
for (TableSegment each : getTableFromPrivilegeClause(ctx.privilegeClause())) {
result.getAllSQLSegments().add(each);
result.getTables().add(each);
}
}
......
......@@ -59,9 +59,7 @@ public final class SQL92DDLVisitor extends SQL92Visitor implements DDLVisitor {
@Override
public ASTNode visitCreateTable(final CreateTableContext ctx) {
CreateTableStatement result = new CreateTableStatement();
TableSegment table = (TableSegment) visit(ctx.tableName());
result.getTables().add(table);
result.getAllSQLSegments().add(table);
result.getTables().add((TableSegment) visit(ctx.tableName()));
if (null != ctx.createDefinitionClause()) {
CreateTableStatement createDefinition = (CreateTableStatement) visit(ctx.createDefinitionClause());
result.getColumnDefinitions().addAll(createDefinition.getColumnDefinitions());
......@@ -133,9 +131,7 @@ public final class SQL92DDLVisitor extends SQL92Visitor implements DDLVisitor {
@Override
public ASTNode visitAlterTable(final AlterTableContext ctx) {
AlterTableStatement result = new AlterTableStatement();
TableSegment table = (TableSegment) visit(ctx.tableName());
result.getTables().add(table);
result.getAllSQLSegments().add(table);
result.getTables().add((TableSegment) visit(ctx.tableName()));
if (null != ctx.alterDefinitionClause()) {
AlterTableStatement alterDefinition = (AlterTableStatement) visit(ctx.alterDefinitionClause());
result.getAddedColumnDefinitions().addAll(alterDefinition.getAddedColumnDefinitions());
......@@ -210,9 +206,7 @@ public final class SQL92DDLVisitor extends SQL92Visitor implements DDLVisitor {
@Override
public ASTNode visitDropTable(final DropTableContext ctx) {
DropTableStatement result = new DropTableStatement();
Collection<TableSegment> tables = ((CollectionValue<TableSegment>) visit(ctx.tableNames())).getValue();
result.getTables().addAll(tables);
result.getAllSQLSegments().addAll(tables);
result.getTables().addAll(((CollectionValue<TableSegment>) visit(ctx.tableNames())).getValue());
return result;
}
}
......@@ -95,9 +95,7 @@ public final class SQL92DMLVisitor extends SQL92Visitor implements DMLVisitor {
@Override
public ASTNode visitInsert(final InsertContext ctx) {
InsertStatement result = (InsertStatement) visit(ctx.insertValuesClause());
TableSegment table = (TableSegment) visit(ctx.tableName());
result.setTable(table);
result.getAllSQLSegments().add(table);
result.setTable((TableSegment) visit(ctx.tableName()));
result.setParametersCount(getCurrentParameterIndex());
return result;
}
......@@ -136,16 +134,10 @@ public final class SQL92DMLVisitor extends SQL92Visitor implements DMLVisitor {
@Override
public ASTNode visitUpdate(final UpdateContext ctx) {
UpdateStatement result = new UpdateStatement();
CollectionValue<TableSegment> tables = (CollectionValue<TableSegment>) visit(ctx.tableReferences());
SetAssignmentSegment setSegment = (SetAssignmentSegment) visit(ctx.setAssignmentsClause());
result.getTables().addAll(tables.getValue());
result.setSetAssignment(setSegment);
result.getAllSQLSegments().addAll(tables.getValue());
result.getAllSQLSegments().add(setSegment);
result.getTables().addAll(((CollectionValue<TableSegment>) visit(ctx.tableReferences())).getValue());
result.setSetAssignment((SetAssignmentSegment) visit(ctx.setAssignmentsClause()));
if (null != ctx.whereClause()) {
WhereSegment whereSegment = (WhereSegment) visit(ctx.whereClause());
result.setWhere(whereSegment);
result.getAllSQLSegments().add(whereSegment);
result.setWhere((WhereSegment) visit(ctx.whereClause()));
}
result.setParametersCount(getCurrentParameterIndex());
return result;
......@@ -189,13 +181,9 @@ public final class SQL92DMLVisitor extends SQL92Visitor implements DMLVisitor {
@Override
public ASTNode visitDelete(final DeleteContext ctx) {
DeleteStatement result = new DeleteStatement();
TableSegment table = (TableSegment) visit(ctx.singleTableClause());
result.getTables().add(table);
result.getAllSQLSegments().add(table);
result.getTables().add((TableSegment) visit(ctx.singleTableClause()));
if (null != ctx.whereClause()) {
WhereSegment where = (WhereSegment) visit(ctx.whereClause());
result.setWhere(where);
result.getAllSQLSegments().add(where);
result.setWhere((WhereSegment) visit(ctx.whereClause()));
}
result.setParametersCount(getCurrentParameterIndex());
return result;
......@@ -228,31 +216,21 @@ public final class SQL92DMLVisitor extends SQL92Visitor implements DMLVisitor {
@Override
public ASTNode visitSelectClause(final SelectClauseContext ctx) {
SelectStatement result = new SelectStatement();
ProjectionsSegment projections = (ProjectionsSegment) visit(ctx.projections());
result.setProjections(projections);
result.getAllSQLSegments().add(projections);
result.setProjections((ProjectionsSegment) visit(ctx.projections()));
if (!ctx.selectSpecification().isEmpty()) {
result.getProjections().setDistinctRow(isDistinct(ctx.selectSpecification().get(0)));
}
if (null != ctx.fromClause()) {
CollectionValue<TableSegment> tables = (CollectionValue<TableSegment>) visit(ctx.fromClause());
result.getTables().addAll(tables.getValue());
result.getAllSQLSegments().addAll(tables.getValue());
result.getTables().addAll(((CollectionValue<TableSegment>) visit(ctx.fromClause())).getValue());
}
if (null != ctx.whereClause()) {
WhereSegment where = (WhereSegment) visit(ctx.whereClause());
result.setWhere(where);
result.getAllSQLSegments().add(where);
result.setWhere((WhereSegment) visit(ctx.whereClause()));
}
if (null != ctx.groupByClause()) {
GroupBySegment groupBy = (GroupBySegment) visit(ctx.groupByClause());
result.setGroupBy(groupBy);
result.getAllSQLSegments().add(groupBy);
result.setGroupBy((GroupBySegment) visit(ctx.groupByClause()));
}
if (null != ctx.orderByClause()) {
OrderBySegment orderBy = (OrderBySegment) visit(ctx.orderByClause());
result.setOrderBy(orderBy);
result.getAllSQLSegments().add(orderBy);
result.setOrderBy((OrderBySegment) visit(ctx.orderByClause()));
}
return result;
}
......
......@@ -61,13 +61,11 @@ public final class SQLServerDCLVisitor extends SQLServerVisitor implements DCLVi
GrantStatement result = new GrantStatement();
if (null != ctx.classPrivilegesClause()) {
for (TableSegment each : getTableFromPrivilegeClause(ctx.classPrivilegesClause())) {
result.getAllSQLSegments().add(each);
result.getTables().add(each);
}
}
if (null != ctx.classTypePrivilegesClause()) {
for (TableSegment each : getTableFromPrivilegeClause(ctx.classTypePrivilegesClause())) {
result.getAllSQLSegments().add(each);
result.getTables().add(each);
}
}
......@@ -79,13 +77,11 @@ public final class SQLServerDCLVisitor extends SQLServerVisitor implements DCLVi
RevokeStatement result = new RevokeStatement();
if (null != ctx.classPrivilegesClause()) {
for (TableSegment each : getTableFromPrivilegeClause(ctx.classPrivilegesClause())) {
result.getAllSQLSegments().add(each);
result.getTables().add(each);
}
}
if (null != ctx.classTypePrivilegesClause()) {
for (TableSegment each : getTableFromPrivilegeClause(ctx.classTypePrivilegesClause())) {
result.getAllSQLSegments().add(each);
result.getTables().add(each);
}
}
......@@ -115,13 +111,11 @@ public final class SQLServerDCLVisitor extends SQLServerVisitor implements DCLVi
DenyUserStatement result = new DenyUserStatement();
if (null != ctx.classPrivilegesClause()) {
for (TableSegment each : getTableFromPrivilegeClause(ctx.classPrivilegesClause())) {
result.getAllSQLSegments().add(each);
result.setTable(each);
}
}
if (null != ctx.classTypePrivilegesClause()) {
for (TableSegment each : getTableFromPrivilegeClause(ctx.classTypePrivilegesClause())) {
result.getAllSQLSegments().add(each);
result.setTable(each);
}
}
......
......@@ -69,9 +69,7 @@ public final class SQLServerDDLVisitor extends SQLServerVisitor implements DDLVi
@Override
public ASTNode visitCreateTable(final CreateTableContext ctx) {
CreateTableStatement result = new CreateTableStatement();
TableSegment table = (TableSegment) visit(ctx.tableName());
result.getTables().add(table);
result.getAllSQLSegments().add(table);
result.getTables().add((TableSegment) visit(ctx.tableName()));
if (null != ctx.createDefinitionClause()) {
CreateTableStatement createDefinition = (CreateTableStatement) visit(ctx.createDefinitionClause());
result.getColumnDefinitions().addAll(createDefinition.getColumnDefinitions());
......@@ -154,9 +152,7 @@ public final class SQLServerDDLVisitor extends SQLServerVisitor implements DDLVi
@Override
public ASTNode visitAlterTable(final AlterTableContext ctx) {
AlterTableStatement result = new AlterTableStatement();
TableSegment table = (TableSegment) visit(ctx.tableName());
result.getTables().add(table);
result.getAllSQLSegments().add(table);
result.getTables().add((TableSegment) visit(ctx.tableName()));
if (null != ctx.alterDefinitionClause()) {
AlterTableStatement alterDefinition = (AlterTableStatement) visit(ctx.alterDefinitionClause());
result.getAddedColumnDefinitions().addAll(alterDefinition.getAddedColumnDefinitions());
......@@ -240,9 +236,7 @@ public final class SQLServerDDLVisitor extends SQLServerVisitor implements DDLVi
@Override
public ASTNode visitDropTable(final DropTableContext ctx) {
DropTableStatement result = new DropTableStatement();
Collection<TableSegment> tables = ((CollectionValue<TableSegment>) visit(ctx.tableNames())).getValue();
result.getTables().addAll(tables);
result.getAllSQLSegments().addAll(tables);
result.getTables().addAll(((CollectionValue<TableSegment>) visit(ctx.tableNames())).getValue());
return result;
}
......@@ -250,18 +244,14 @@ public final class SQLServerDDLVisitor extends SQLServerVisitor implements DDLVi
@Override
public ASTNode visitTruncateTable(final TruncateTableContext ctx) {
TruncateStatement result = new TruncateStatement();
TableSegment table = (TableSegment) visit(ctx.tableName());
result.getTables().add(table);
result.getAllSQLSegments().add(table);
result.getTables().add((TableSegment) visit(ctx.tableName()));
return result;
}
@Override
public ASTNode visitCreateIndex(final CreateIndexContext ctx) {
CreateIndexStatement result = new CreateIndexStatement();
TableSegment table = (TableSegment) visit(ctx.tableName());
result.setTable(table);
result.getAllSQLSegments().add(table);
result.setTable((TableSegment) visit(ctx.tableName()));
return result;
}
......
......@@ -96,9 +96,7 @@ public final class SQLServerDMLVisitor extends SQLServerVisitor implements DMLVi
@Override
public ASTNode visitInsert(final InsertContext ctx) {
InsertStatement result = (InsertStatement) visit(ctx.insertValuesClause());
TableSegment table = (TableSegment) visit(ctx.tableName());
result.setTable(table);
result.getAllSQLSegments().add(table);
result.setTable((TableSegment) visit(ctx.tableName()));
result.setParametersCount(getCurrentParameterIndex());
return result;
}
......@@ -137,16 +135,10 @@ public final class SQLServerDMLVisitor extends SQLServerVisitor implements DMLVi
@Override
public ASTNode visitUpdate(final UpdateContext ctx) {
UpdateStatement result = new UpdateStatement();
CollectionValue<TableSegment> tables = (CollectionValue<TableSegment>) visit(ctx.tableReferences());
SetAssignmentSegment setSegment = (SetAssignmentSegment) visit(ctx.setAssignmentsClause());
result.getTables().addAll(tables.getValue());
result.setSetAssignment(setSegment);
result.getAllSQLSegments().addAll(tables.getValue());
result.getAllSQLSegments().add(setSegment);
result.getTables().addAll(((CollectionValue<TableSegment>) visit(ctx.tableReferences())).getValue());
result.setSetAssignment((SetAssignmentSegment) visit(ctx.setAssignmentsClause()));
if (null != ctx.whereClause()) {
WhereSegment whereSegment = (WhereSegment) visit(ctx.whereClause());
result.setWhere(whereSegment);
result.getAllSQLSegments().add(whereSegment);
result.setWhere((WhereSegment) visit(ctx.whereClause()));
}
result.setParametersCount(getCurrentParameterIndex());
return result;
......@@ -191,18 +183,12 @@ public final class SQLServerDMLVisitor extends SQLServerVisitor implements DMLVi
public ASTNode visitDelete(final DeleteContext ctx) {
DeleteStatement result = new DeleteStatement();
if (null != ctx.multipleTablesClause()) {
CollectionValue<TableSegment> tables = (CollectionValue<TableSegment>) visit(ctx.multipleTablesClause());
result.getTables().addAll(tables.getValue());
result.getAllSQLSegments().addAll(tables.getValue());
result.getTables().addAll(((CollectionValue<TableSegment>) visit(ctx.multipleTablesClause())).getValue());
} else {
TableSegment table = (TableSegment) visit(ctx.singleTableClause());
result.getTables().add(table);
result.getAllSQLSegments().add(table);
result.getTables().add((TableSegment) visit(ctx.singleTableClause()));
}
if (null != ctx.whereClause()) {
WhereSegment where = (WhereSegment) visit(ctx.whereClause());
result.setWhere(where);
result.getAllSQLSegments().add(where);
result.setWhere((WhereSegment) visit(ctx.whereClause()));
}
result.setParametersCount(getCurrentParameterIndex());
return result;
......@@ -253,31 +239,21 @@ public final class SQLServerDMLVisitor extends SQLServerVisitor implements DMLVi
@Override
public ASTNode visitSelectClause(final SelectClauseContext ctx) {
SelectStatement result = new SelectStatement();
ProjectionsSegment projections = (ProjectionsSegment) visit(ctx.projections());
result.setProjections(projections);
result.getAllSQLSegments().add(projections);
result.setProjections((ProjectionsSegment) visit(ctx.projections()));
if (null != ctx.duplicateSpecification()) {
result.getProjections().setDistinctRow(isDistinct(ctx));
}
if (null != ctx.fromClause()) {
CollectionValue<TableSegment> tables = (CollectionValue<TableSegment>) visit(ctx.fromClause());
result.getTables().addAll(tables.getValue());
result.getAllSQLSegments().addAll(tables.getValue());
result.getTables().addAll(((CollectionValue<TableSegment>) visit(ctx.fromClause())).getValue());
}
if (null != ctx.whereClause()) {
WhereSegment where = (WhereSegment) visit(ctx.whereClause());
result.setWhere(where);
result.getAllSQLSegments().add(where);
result.setWhere((WhereSegment) visit(ctx.whereClause()));
}
if (null != ctx.groupByClause()) {
GroupBySegment groupBy = (GroupBySegment) visit(ctx.groupByClause());
result.setGroupBy(groupBy);
result.getAllSQLSegments().add(groupBy);
result.setGroupBy((GroupBySegment) visit(ctx.groupByClause()));
}
if (null != ctx.orderByClause()) {
OrderBySegment orderBy = (OrderBySegment) visit(ctx.orderByClause());
result.setOrderBy(orderBy);
result.getAllSQLSegments().add(orderBy);
result.setOrderBy((OrderBySegment) visit(ctx.orderByClause()));
}
return result;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册