Loading sharding-jdbc-core/src/main/java/io/shardingjdbc/core/parsing/parser/sql/AbstractSQLStatement.java +0 −7 Original line number Diff line number Diff line Loading @@ -50,8 +50,6 @@ public abstract class AbstractSQLStatement implements SQLStatement { @Setter private int parametersIndex; private boolean containsTableName = true; @Override public final SQLType getType() { return type; Loading @@ -61,9 +59,4 @@ public abstract class AbstractSQLStatement implements SQLStatement { public int increaseParametersIndex() { return ++parametersIndex; } @Override public void withoutTableName() { containsTableName = false; } } sharding-jdbc-core/src/main/java/io/shardingjdbc/core/parsing/parser/sql/SQLStatement.java +0 −12 Original line number Diff line number Diff line Loading @@ -79,16 +79,4 @@ public interface SQLStatement { * @return increased parameters index */ int increaseParametersIndex(); /** * Without table name. */ void withoutTableName(); /** * Adjust contains table name is empty or not. * * @return table name is empty or not */ boolean isContainsTableName(); } sharding-jdbc-core/src/main/java/io/shardingjdbc/core/parsing/parser/sql/ddl/drop/AbstractDropParser.java +0 −10 Original line number Diff line number Diff line Loading @@ -26,7 +26,6 @@ import io.shardingjdbc.core.parsing.parser.exception.SQLParsingException; import io.shardingjdbc.core.parsing.parser.sql.SQLParser; import io.shardingjdbc.core.parsing.parser.sql.ddl.DDLStatement; import io.shardingjdbc.core.parsing.parser.token.IndexToken; import io.shardingjdbc.core.parsing.parser.token.SQLToken; import io.shardingjdbc.core.rule.ShardingRule; import lombok.AccessLevel; import lombok.Getter; Loading Loading @@ -65,7 +64,6 @@ public abstract class AbstractDropParser implements SQLParser { throw new SQLParsingException("Can't support other DROP grammar unless DROP TABLE, DROP INDEX."); } tableReferencesClauseParser.parse(result, true); indexWithoutTable(result); return result; } Loading @@ -88,12 +86,4 @@ public abstract class AbstractDropParser implements SQLParser { } protected abstract Keyword[] getSkippedKeywordsBetweenDropTableAndTableName(); private void indexWithoutTable(final DDLStatement ddlStatement) { for (SQLToken each : ddlStatement.getSqlTokens()) { if (each instanceof IndexToken && 1 == ddlStatement.getSqlTokens().size()) { ddlStatement.withoutTableName(); } } } } sharding-jdbc-core/src/main/java/io/shardingjdbc/core/routing/router/ParsingSQLRouter.java +3 −3 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ package io.shardingjdbc.core.routing.router; import io.shardingjdbc.core.parsing.parser.sql.ddl.DDLStatement; import io.shardingjdbc.core.routing.type.all.DatabaseAllRoutingEngine; import io.shardingjdbc.core.routing.type.none.NoneTableRoutingEngine; import io.shardingjdbc.core.routing.type.ddl.DDLRoutingEngine; import io.shardingjdbc.core.rule.ShardingRule; import io.shardingjdbc.core.constant.DatabaseType; import io.shardingjdbc.core.jdbc.core.ShardingContext; Loading Loading @@ -111,8 +111,8 @@ public final class ParsingSQLRouter implements SQLRouter { private RoutingResult route(final List<Object> parameters, final SQLStatement sqlStatement) { Collection<String> tableNames = sqlStatement.getTables().getTableNames(); RoutingEngine routingEngine; if (sqlStatement instanceof DDLStatement && !sqlStatement.isContainsTableName()) { routingEngine = new NoneTableRoutingEngine(shardingRule, parameters, sqlStatement); if (sqlStatement instanceof DDLStatement) { routingEngine = new DDLRoutingEngine(shardingRule, parameters, sqlStatement); } else if (tableNames.isEmpty()) { routingEngine = new DatabaseAllRoutingEngine(shardingRule.getDataSourceMap()); } else if (1 == tableNames.size() || shardingRule.isAllBindingTables(tableNames) || shardingRule.isAllInDefaultDataSource(tableNames)) { Loading sharding-jdbc-core/src/main/java/io/shardingjdbc/core/routing/type/none/NoneTableRoutingEngine.java→sharding-jdbc-core/src/main/java/io/shardingjdbc/core/routing/type/ddl/DDLRoutingEngine.java +8 −13 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ * </p> */ package io.shardingjdbc.core.routing.type.none; package io.shardingjdbc.core.routing.type.ddl; import com.google.common.base.Preconditions; import io.shardingjdbc.core.parsing.parser.sql.SQLStatement; Loading @@ -24,18 +24,17 @@ import io.shardingjdbc.core.routing.type.RoutingEngine; import io.shardingjdbc.core.routing.type.RoutingResult; import io.shardingjdbc.core.routing.type.simple.SimpleRoutingEngine; import io.shardingjdbc.core.rule.ShardingRule; import io.shardingjdbc.core.rule.TableRule; import lombok.RequiredArgsConstructor; import java.util.List; /** * None table routing engine. * DDL routing engine. * * @author caohao */ @RequiredArgsConstructor public final class NoneTableRoutingEngine implements RoutingEngine { public final class DDLRoutingEngine implements RoutingEngine { private final ShardingRule shardingRule; Loading @@ -49,15 +48,11 @@ public final class NoneTableRoutingEngine implements RoutingEngine { } private String getLogicTableName() { if (sqlStatement.getTables().isEmpty()) { Preconditions.checkState(1 == sqlStatement.getSqlTokens().size()); IndexToken indexToken = (IndexToken) sqlStatement.getSqlTokens().get(0); String indexName = indexToken.getIndexName(); String result = ""; for (TableRule each : shardingRule.getTableRules()) { if (indexName.equals(each.getLogicIndex())) { result = each.getLogicTable(); return shardingRule.getLogicTableName(indexToken.getIndexName()); } } return result; return sqlStatement.getTables().getSingleTableName(); } } Loading
sharding-jdbc-core/src/main/java/io/shardingjdbc/core/parsing/parser/sql/AbstractSQLStatement.java +0 −7 Original line number Diff line number Diff line Loading @@ -50,8 +50,6 @@ public abstract class AbstractSQLStatement implements SQLStatement { @Setter private int parametersIndex; private boolean containsTableName = true; @Override public final SQLType getType() { return type; Loading @@ -61,9 +59,4 @@ public abstract class AbstractSQLStatement implements SQLStatement { public int increaseParametersIndex() { return ++parametersIndex; } @Override public void withoutTableName() { containsTableName = false; } }
sharding-jdbc-core/src/main/java/io/shardingjdbc/core/parsing/parser/sql/SQLStatement.java +0 −12 Original line number Diff line number Diff line Loading @@ -79,16 +79,4 @@ public interface SQLStatement { * @return increased parameters index */ int increaseParametersIndex(); /** * Without table name. */ void withoutTableName(); /** * Adjust contains table name is empty or not. * * @return table name is empty or not */ boolean isContainsTableName(); }
sharding-jdbc-core/src/main/java/io/shardingjdbc/core/parsing/parser/sql/ddl/drop/AbstractDropParser.java +0 −10 Original line number Diff line number Diff line Loading @@ -26,7 +26,6 @@ import io.shardingjdbc.core.parsing.parser.exception.SQLParsingException; import io.shardingjdbc.core.parsing.parser.sql.SQLParser; import io.shardingjdbc.core.parsing.parser.sql.ddl.DDLStatement; import io.shardingjdbc.core.parsing.parser.token.IndexToken; import io.shardingjdbc.core.parsing.parser.token.SQLToken; import io.shardingjdbc.core.rule.ShardingRule; import lombok.AccessLevel; import lombok.Getter; Loading Loading @@ -65,7 +64,6 @@ public abstract class AbstractDropParser implements SQLParser { throw new SQLParsingException("Can't support other DROP grammar unless DROP TABLE, DROP INDEX."); } tableReferencesClauseParser.parse(result, true); indexWithoutTable(result); return result; } Loading @@ -88,12 +86,4 @@ public abstract class AbstractDropParser implements SQLParser { } protected abstract Keyword[] getSkippedKeywordsBetweenDropTableAndTableName(); private void indexWithoutTable(final DDLStatement ddlStatement) { for (SQLToken each : ddlStatement.getSqlTokens()) { if (each instanceof IndexToken && 1 == ddlStatement.getSqlTokens().size()) { ddlStatement.withoutTableName(); } } } }
sharding-jdbc-core/src/main/java/io/shardingjdbc/core/routing/router/ParsingSQLRouter.java +3 −3 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ package io.shardingjdbc.core.routing.router; import io.shardingjdbc.core.parsing.parser.sql.ddl.DDLStatement; import io.shardingjdbc.core.routing.type.all.DatabaseAllRoutingEngine; import io.shardingjdbc.core.routing.type.none.NoneTableRoutingEngine; import io.shardingjdbc.core.routing.type.ddl.DDLRoutingEngine; import io.shardingjdbc.core.rule.ShardingRule; import io.shardingjdbc.core.constant.DatabaseType; import io.shardingjdbc.core.jdbc.core.ShardingContext; Loading Loading @@ -111,8 +111,8 @@ public final class ParsingSQLRouter implements SQLRouter { private RoutingResult route(final List<Object> parameters, final SQLStatement sqlStatement) { Collection<String> tableNames = sqlStatement.getTables().getTableNames(); RoutingEngine routingEngine; if (sqlStatement instanceof DDLStatement && !sqlStatement.isContainsTableName()) { routingEngine = new NoneTableRoutingEngine(shardingRule, parameters, sqlStatement); if (sqlStatement instanceof DDLStatement) { routingEngine = new DDLRoutingEngine(shardingRule, parameters, sqlStatement); } else if (tableNames.isEmpty()) { routingEngine = new DatabaseAllRoutingEngine(shardingRule.getDataSourceMap()); } else if (1 == tableNames.size() || shardingRule.isAllBindingTables(tableNames) || shardingRule.isAllInDefaultDataSource(tableNames)) { Loading
sharding-jdbc-core/src/main/java/io/shardingjdbc/core/routing/type/none/NoneTableRoutingEngine.java→sharding-jdbc-core/src/main/java/io/shardingjdbc/core/routing/type/ddl/DDLRoutingEngine.java +8 −13 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ * </p> */ package io.shardingjdbc.core.routing.type.none; package io.shardingjdbc.core.routing.type.ddl; import com.google.common.base.Preconditions; import io.shardingjdbc.core.parsing.parser.sql.SQLStatement; Loading @@ -24,18 +24,17 @@ import io.shardingjdbc.core.routing.type.RoutingEngine; import io.shardingjdbc.core.routing.type.RoutingResult; import io.shardingjdbc.core.routing.type.simple.SimpleRoutingEngine; import io.shardingjdbc.core.rule.ShardingRule; import io.shardingjdbc.core.rule.TableRule; import lombok.RequiredArgsConstructor; import java.util.List; /** * None table routing engine. * DDL routing engine. * * @author caohao */ @RequiredArgsConstructor public final class NoneTableRoutingEngine implements RoutingEngine { public final class DDLRoutingEngine implements RoutingEngine { private final ShardingRule shardingRule; Loading @@ -49,15 +48,11 @@ public final class NoneTableRoutingEngine implements RoutingEngine { } private String getLogicTableName() { if (sqlStatement.getTables().isEmpty()) { Preconditions.checkState(1 == sqlStatement.getSqlTokens().size()); IndexToken indexToken = (IndexToken) sqlStatement.getSqlTokens().get(0); String indexName = indexToken.getIndexName(); String result = ""; for (TableRule each : shardingRule.getTableRules()) { if (indexName.equals(each.getLogicIndex())) { result = each.getLogicTable(); return shardingRule.getLogicTableName(indexToken.getIndexName()); } } return result; return sqlStatement.getTables().getSingleTableName(); } }