Loading sharding-core/src/main/java/io/shardingsphere/core/parsing/antlr/extractor/impl/definition/table/RenameTableExtractor.java +2 −4 Original line number Diff line number Diff line Loading @@ -17,16 +17,14 @@ package io.shardingsphere.core.parsing.antlr.extractor.impl.definition.table; import org.antlr.v4.runtime.ParserRuleContext; import com.google.common.base.Optional; import io.shardingsphere.core.parsing.antlr.extractor.OptionalSQLSegmentExtractor; import io.shardingsphere.core.parsing.antlr.extractor.impl.TableNameExtractor; import io.shardingsphere.core.parsing.antlr.extractor.util.ExtractorUtils; import io.shardingsphere.core.parsing.antlr.extractor.util.RuleName; import io.shardingsphere.core.parsing.antlr.sql.segment.table.RenameTableSegment; import io.shardingsphere.core.parsing.antlr.sql.segment.definition.table.RenameTableSegment; import io.shardingsphere.core.parsing.antlr.sql.segment.table.TableSegment; import org.antlr.v4.runtime.ParserRuleContext; /** * Rename table extractor. Loading sharding-core/src/main/java/io/shardingsphere/core/parsing/antlr/filler/impl/SelectClauseFiller.java +7 −7 Original line number Diff line number Diff line Loading @@ -44,19 +44,19 @@ import java.util.Set; public final class SelectClauseFiller implements SQLStatementFiller<SelectClauseSegment> { @Override public void fill(final SelectClauseSegment selectClauseSegment, final SQLStatement sqlStatement, final String sql, final ShardingRule shardingRule, final ShardingTableMetaData shardingTableMetaData) { public void fill(final SelectClauseSegment sqlSegment, final SQLStatement sqlStatement, final String sql, final ShardingRule shardingRule, final ShardingTableMetaData shardingTableMetaData) { SelectStatement selectStatement = (SelectStatement) sqlStatement; selectStatement.setFirstSelectItemStartPosition(selectClauseSegment.getFirstSelectItemStartPosition()); selectStatement.setSelectListLastPosition(selectClauseSegment.getSelectListLastPosition()); if (selectClauseSegment.getExpressions().isEmpty()) { selectStatement.setFirstSelectItemStartPosition(sqlSegment.getFirstSelectItemStartPosition()); selectStatement.setSelectListLastPosition(sqlSegment.getSelectListLastPosition()); if (sqlSegment.getExpressions().isEmpty()) { return; } if (selectClauseSegment.isHasDistinct()) { fillDistinct(selectClauseSegment, selectStatement, sql, shardingRule, shardingTableMetaData); if (sqlSegment.isHasDistinct()) { fillDistinct(sqlSegment, selectStatement, sql, shardingRule, shardingTableMetaData); } else { ExpressionFiller expressionFiller = new ExpressionFiller(); int offset = 0; for (ExpressionSegment each : selectClauseSegment.getExpressions()) { for (ExpressionSegment each : sqlSegment.getExpressions()) { offset = setDistinctFunctionAlias(each, offset); expressionFiller.fill(each, sqlStatement, sql, shardingRule, shardingTableMetaData); } Loading sharding-core/src/main/java/io/shardingsphere/core/parsing/antlr/filler/impl/ddl/RenameColumnFiller.java→sharding-core/src/main/java/io/shardingsphere/core/parsing/antlr/filler/impl/ddl/alter/RenameDefinitionColumnFiller.java +9 −14 Original line number Diff line number Diff line Loading @@ -15,10 +15,9 @@ * </p> */ package io.shardingsphere.core.parsing.antlr.filler.impl.ddl; package io.shardingsphere.core.parsing.antlr.filler.impl.ddl.alter; import com.google.common.base.Optional; import io.shardingsphere.core.metadata.table.ShardingTableMetaData; import io.shardingsphere.core.parsing.antlr.filler.SQLStatementFiller; import io.shardingsphere.core.parsing.antlr.sql.segment.definition.column.ColumnDefinitionSegment; Loading @@ -28,24 +27,20 @@ import io.shardingsphere.core.parsing.parser.sql.SQLStatement; import io.shardingsphere.core.rule.ShardingRule; /** * Rename column filler. * Rename column definition filler. * * @author duhongjun */ public class RenameColumnFiller implements SQLStatementFiller<RenameColumnSegment> { public final class RenameDefinitionColumnFiller implements SQLStatementFiller<RenameColumnSegment> { @Override public void fill(final RenameColumnSegment sqlSegment, final SQLStatement sqlStatement, final String sql, final ShardingRule shardingRule, final ShardingTableMetaData shardingTableMetaData) { if (!(sqlStatement instanceof AlterTableStatement)) { return; } public void fill(final RenameColumnSegment sqlSegment, final SQLStatement sqlStatement, final String sql, final ShardingRule shardingRule, final ShardingTableMetaData shardingTableMetaData) { AlterTableStatement alterTableStatement = (AlterTableStatement) sqlStatement; Optional<ColumnDefinitionSegment> oldDefinition = alterTableStatement.findColumnDefinition(sqlSegment.getOldColumnName(), shardingTableMetaData); if (!oldDefinition.isPresent()) { Optional<ColumnDefinitionSegment> oldColumnDefinition = alterTableStatement.findColumnDefinition(sqlSegment.getOldColumnName(), shardingTableMetaData); if (!oldColumnDefinition.isPresent()) { return; } oldDefinition.get().setColumnName(sqlSegment.getColumnName()); alterTableStatement.getModifiedColumnDefinitions().put(sqlSegment.getOldColumnName(), oldDefinition.get()); oldColumnDefinition.get().setColumnName(sqlSegment.getColumnName()); alterTableStatement.getModifiedColumnDefinitions().put(sqlSegment.getOldColumnName(), oldColumnDefinition.get()); } } sharding-core/src/main/java/io/shardingsphere/core/parsing/antlr/filler/impl/RenameTableFiller.java→sharding-core/src/main/java/io/shardingsphere/core/parsing/antlr/filler/impl/ddl/alter/RenameTableFiller.java +2 −2 Original line number Diff line number Diff line Loading @@ -15,11 +15,11 @@ * </p> */ package io.shardingsphere.core.parsing.antlr.filler.impl; package io.shardingsphere.core.parsing.antlr.filler.impl.ddl.alter; import io.shardingsphere.core.metadata.table.ShardingTableMetaData; import io.shardingsphere.core.parsing.antlr.filler.SQLStatementFiller; import io.shardingsphere.core.parsing.antlr.sql.segment.table.RenameTableSegment; import io.shardingsphere.core.parsing.antlr.sql.segment.definition.table.RenameTableSegment; import io.shardingsphere.core.parsing.antlr.sql.statement.ddl.AlterTableStatement; import io.shardingsphere.core.parsing.parser.sql.SQLStatement; import io.shardingsphere.core.rule.ShardingRule; Loading sharding-core/src/main/java/io/shardingsphere/core/parsing/antlr/sql/segment/definition/table/RenameTableSegment.java 0 → 100644 +29 −0 Original line number Diff line number Diff line /* * Copyright 2016-2018 shardingsphere.io. * <p> * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * </p> */ package io.shardingsphere.core.parsing.antlr.sql.segment.definition.table; import io.shardingsphere.core.parsing.antlr.sql.segment.SQLSegment; import lombok.Getter; import lombok.RequiredArgsConstructor; @RequiredArgsConstructor @Getter public final class RenameTableSegment implements SQLSegment { private final String newTableName; } Loading
sharding-core/src/main/java/io/shardingsphere/core/parsing/antlr/extractor/impl/definition/table/RenameTableExtractor.java +2 −4 Original line number Diff line number Diff line Loading @@ -17,16 +17,14 @@ package io.shardingsphere.core.parsing.antlr.extractor.impl.definition.table; import org.antlr.v4.runtime.ParserRuleContext; import com.google.common.base.Optional; import io.shardingsphere.core.parsing.antlr.extractor.OptionalSQLSegmentExtractor; import io.shardingsphere.core.parsing.antlr.extractor.impl.TableNameExtractor; import io.shardingsphere.core.parsing.antlr.extractor.util.ExtractorUtils; import io.shardingsphere.core.parsing.antlr.extractor.util.RuleName; import io.shardingsphere.core.parsing.antlr.sql.segment.table.RenameTableSegment; import io.shardingsphere.core.parsing.antlr.sql.segment.definition.table.RenameTableSegment; import io.shardingsphere.core.parsing.antlr.sql.segment.table.TableSegment; import org.antlr.v4.runtime.ParserRuleContext; /** * Rename table extractor. Loading
sharding-core/src/main/java/io/shardingsphere/core/parsing/antlr/filler/impl/SelectClauseFiller.java +7 −7 Original line number Diff line number Diff line Loading @@ -44,19 +44,19 @@ import java.util.Set; public final class SelectClauseFiller implements SQLStatementFiller<SelectClauseSegment> { @Override public void fill(final SelectClauseSegment selectClauseSegment, final SQLStatement sqlStatement, final String sql, final ShardingRule shardingRule, final ShardingTableMetaData shardingTableMetaData) { public void fill(final SelectClauseSegment sqlSegment, final SQLStatement sqlStatement, final String sql, final ShardingRule shardingRule, final ShardingTableMetaData shardingTableMetaData) { SelectStatement selectStatement = (SelectStatement) sqlStatement; selectStatement.setFirstSelectItemStartPosition(selectClauseSegment.getFirstSelectItemStartPosition()); selectStatement.setSelectListLastPosition(selectClauseSegment.getSelectListLastPosition()); if (selectClauseSegment.getExpressions().isEmpty()) { selectStatement.setFirstSelectItemStartPosition(sqlSegment.getFirstSelectItemStartPosition()); selectStatement.setSelectListLastPosition(sqlSegment.getSelectListLastPosition()); if (sqlSegment.getExpressions().isEmpty()) { return; } if (selectClauseSegment.isHasDistinct()) { fillDistinct(selectClauseSegment, selectStatement, sql, shardingRule, shardingTableMetaData); if (sqlSegment.isHasDistinct()) { fillDistinct(sqlSegment, selectStatement, sql, shardingRule, shardingTableMetaData); } else { ExpressionFiller expressionFiller = new ExpressionFiller(); int offset = 0; for (ExpressionSegment each : selectClauseSegment.getExpressions()) { for (ExpressionSegment each : sqlSegment.getExpressions()) { offset = setDistinctFunctionAlias(each, offset); expressionFiller.fill(each, sqlStatement, sql, shardingRule, shardingTableMetaData); } Loading
sharding-core/src/main/java/io/shardingsphere/core/parsing/antlr/filler/impl/ddl/RenameColumnFiller.java→sharding-core/src/main/java/io/shardingsphere/core/parsing/antlr/filler/impl/ddl/alter/RenameDefinitionColumnFiller.java +9 −14 Original line number Diff line number Diff line Loading @@ -15,10 +15,9 @@ * </p> */ package io.shardingsphere.core.parsing.antlr.filler.impl.ddl; package io.shardingsphere.core.parsing.antlr.filler.impl.ddl.alter; import com.google.common.base.Optional; import io.shardingsphere.core.metadata.table.ShardingTableMetaData; import io.shardingsphere.core.parsing.antlr.filler.SQLStatementFiller; import io.shardingsphere.core.parsing.antlr.sql.segment.definition.column.ColumnDefinitionSegment; Loading @@ -28,24 +27,20 @@ import io.shardingsphere.core.parsing.parser.sql.SQLStatement; import io.shardingsphere.core.rule.ShardingRule; /** * Rename column filler. * Rename column definition filler. * * @author duhongjun */ public class RenameColumnFiller implements SQLStatementFiller<RenameColumnSegment> { public final class RenameDefinitionColumnFiller implements SQLStatementFiller<RenameColumnSegment> { @Override public void fill(final RenameColumnSegment sqlSegment, final SQLStatement sqlStatement, final String sql, final ShardingRule shardingRule, final ShardingTableMetaData shardingTableMetaData) { if (!(sqlStatement instanceof AlterTableStatement)) { return; } public void fill(final RenameColumnSegment sqlSegment, final SQLStatement sqlStatement, final String sql, final ShardingRule shardingRule, final ShardingTableMetaData shardingTableMetaData) { AlterTableStatement alterTableStatement = (AlterTableStatement) sqlStatement; Optional<ColumnDefinitionSegment> oldDefinition = alterTableStatement.findColumnDefinition(sqlSegment.getOldColumnName(), shardingTableMetaData); if (!oldDefinition.isPresent()) { Optional<ColumnDefinitionSegment> oldColumnDefinition = alterTableStatement.findColumnDefinition(sqlSegment.getOldColumnName(), shardingTableMetaData); if (!oldColumnDefinition.isPresent()) { return; } oldDefinition.get().setColumnName(sqlSegment.getColumnName()); alterTableStatement.getModifiedColumnDefinitions().put(sqlSegment.getOldColumnName(), oldDefinition.get()); oldColumnDefinition.get().setColumnName(sqlSegment.getColumnName()); alterTableStatement.getModifiedColumnDefinitions().put(sqlSegment.getOldColumnName(), oldColumnDefinition.get()); } }
sharding-core/src/main/java/io/shardingsphere/core/parsing/antlr/filler/impl/RenameTableFiller.java→sharding-core/src/main/java/io/shardingsphere/core/parsing/antlr/filler/impl/ddl/alter/RenameTableFiller.java +2 −2 Original line number Diff line number Diff line Loading @@ -15,11 +15,11 @@ * </p> */ package io.shardingsphere.core.parsing.antlr.filler.impl; package io.shardingsphere.core.parsing.antlr.filler.impl.ddl.alter; import io.shardingsphere.core.metadata.table.ShardingTableMetaData; import io.shardingsphere.core.parsing.antlr.filler.SQLStatementFiller; import io.shardingsphere.core.parsing.antlr.sql.segment.table.RenameTableSegment; import io.shardingsphere.core.parsing.antlr.sql.segment.definition.table.RenameTableSegment; import io.shardingsphere.core.parsing.antlr.sql.statement.ddl.AlterTableStatement; import io.shardingsphere.core.parsing.parser.sql.SQLStatement; import io.shardingsphere.core.rule.ShardingRule; Loading
sharding-core/src/main/java/io/shardingsphere/core/parsing/antlr/sql/segment/definition/table/RenameTableSegment.java 0 → 100644 +29 −0 Original line number Diff line number Diff line /* * Copyright 2016-2018 shardingsphere.io. * <p> * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * </p> */ package io.shardingsphere.core.parsing.antlr.sql.segment.definition.table; import io.shardingsphere.core.parsing.antlr.sql.segment.SQLSegment; import lombok.Getter; import lombok.RequiredArgsConstructor; @RequiredArgsConstructor @Getter public final class RenameTableSegment implements SQLSegment { private final String newTableName; }