Loading sharding-jdbc-core/src/main/java/io/shardingjdbc/core/parsing/parser/sql/AbstractSQLStatement.java +1 −1 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import java.util.List; */ @RequiredArgsConstructor @Getter @Setter @ToString public abstract class AbstractSQLStatement implements SQLStatement { Loading @@ -47,7 +48,6 @@ public abstract class AbstractSQLStatement implements SQLStatement { private final List<SQLToken> sqlTokens = new LinkedList<>(); @Setter private int parametersIndex; @Override Loading sharding-jdbc-core/src/main/java/io/shardingjdbc/core/routing/router/ParsingSQLRouter.java +1 −1 Original line number Diff line number Diff line Loading @@ -112,7 +112,7 @@ public final class ParsingSQLRouter implements SQLRouter { Collection<String> tableNames = sqlStatement.getTables().getTableNames(); RoutingEngine routingEngine; if (sqlStatement instanceof DDLStatement) { routingEngine = new DDLRoutingEngine(shardingRule, parameters, sqlStatement); routingEngine = new DDLRoutingEngine(shardingRule, parameters, (DDLStatement) 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/ddl/DDLRoutingEngine.java +11 −8 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ package io.shardingjdbc.core.routing.type.ddl; import com.google.common.base.Preconditions; import io.shardingjdbc.core.parsing.parser.sql.SQLStatement; import io.shardingjdbc.core.parsing.parser.sql.ddl.DDLStatement; import io.shardingjdbc.core.parsing.parser.token.IndexToken; import io.shardingjdbc.core.routing.type.RoutingEngine; import io.shardingjdbc.core.routing.type.RoutingResult; Loading @@ -40,19 +40,22 @@ public final class DDLRoutingEngine implements RoutingEngine { private final List<Object> parameters; private final SQLStatement sqlStatement; private final DDLStatement ddlStatement; @Override public RoutingResult route() { return new SimpleRoutingEngine(shardingRule, parameters, getLogicTableName(), sqlStatement).route(); return new SimpleRoutingEngine(shardingRule, parameters, getLogicTableName(), ddlStatement).route(); } private String getLogicTableName() { if (sqlStatement.getTables().isEmpty()) { Preconditions.checkState(1 == sqlStatement.getSqlTokens().size()); IndexToken indexToken = (IndexToken) sqlStatement.getSqlTokens().get(0); return shardingRule.getLogicTableName(indexToken.getIndexName()); if (ddlStatement.getTables().isEmpty()) { return shardingRule.getLogicTableName(getIndexToken().getIndexName()); } return sqlStatement.getTables().getSingleTableName(); return ddlStatement.getTables().getSingleTableName(); } private IndexToken getIndexToken() { Preconditions.checkState(1 == ddlStatement.getSqlTokens().size()); return (IndexToken) ddlStatement.getSqlTokens().get(0); } } sharding-jdbc-core/src/main/java/io/shardingjdbc/core/rule/ShardingRule.java +2 −6 Original line number Diff line number Diff line Loading @@ -292,15 +292,11 @@ public final class ShardingRule { * @return logic table name */ public String getLogicTableName(final String logicIndexName) { String result = ""; for (TableRule each : tableRules) { if (logicIndexName.equals(each.getLogicIndex())) { result = each.getLogicTable(); return each.getLogicTable(); } } if (Strings.isNullOrEmpty(result)) { throw new ShardingJdbcException("Cannot find logic table name with logic index name: '%s'", logicIndexName); } return result; } } sharding-jdbc-core/src/main/java/io/shardingjdbc/core/yaml/sharding/YamlTableRuleConfiguration.java +3 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,8 @@ public class YamlTableRuleConfiguration { private String keyGeneratorClass; private String logicIndex; /** * Build table rule configuration. * Loading @@ -45,6 +47,7 @@ public class YamlTableRuleConfiguration { } tableRuleConfig.setKeyGeneratorClass(keyGeneratorClass); tableRuleConfig.setKeyGeneratorColumnName(keyGeneratorColumnName); tableRuleConfig.setLogicIndex(logicIndex); return tableRuleConfig; } } Loading
sharding-jdbc-core/src/main/java/io/shardingjdbc/core/parsing/parser/sql/AbstractSQLStatement.java +1 −1 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import java.util.List; */ @RequiredArgsConstructor @Getter @Setter @ToString public abstract class AbstractSQLStatement implements SQLStatement { Loading @@ -47,7 +48,6 @@ public abstract class AbstractSQLStatement implements SQLStatement { private final List<SQLToken> sqlTokens = new LinkedList<>(); @Setter private int parametersIndex; @Override Loading
sharding-jdbc-core/src/main/java/io/shardingjdbc/core/routing/router/ParsingSQLRouter.java +1 −1 Original line number Diff line number Diff line Loading @@ -112,7 +112,7 @@ public final class ParsingSQLRouter implements SQLRouter { Collection<String> tableNames = sqlStatement.getTables().getTableNames(); RoutingEngine routingEngine; if (sqlStatement instanceof DDLStatement) { routingEngine = new DDLRoutingEngine(shardingRule, parameters, sqlStatement); routingEngine = new DDLRoutingEngine(shardingRule, parameters, (DDLStatement) 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/ddl/DDLRoutingEngine.java +11 −8 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ package io.shardingjdbc.core.routing.type.ddl; import com.google.common.base.Preconditions; import io.shardingjdbc.core.parsing.parser.sql.SQLStatement; import io.shardingjdbc.core.parsing.parser.sql.ddl.DDLStatement; import io.shardingjdbc.core.parsing.parser.token.IndexToken; import io.shardingjdbc.core.routing.type.RoutingEngine; import io.shardingjdbc.core.routing.type.RoutingResult; Loading @@ -40,19 +40,22 @@ public final class DDLRoutingEngine implements RoutingEngine { private final List<Object> parameters; private final SQLStatement sqlStatement; private final DDLStatement ddlStatement; @Override public RoutingResult route() { return new SimpleRoutingEngine(shardingRule, parameters, getLogicTableName(), sqlStatement).route(); return new SimpleRoutingEngine(shardingRule, parameters, getLogicTableName(), ddlStatement).route(); } private String getLogicTableName() { if (sqlStatement.getTables().isEmpty()) { Preconditions.checkState(1 == sqlStatement.getSqlTokens().size()); IndexToken indexToken = (IndexToken) sqlStatement.getSqlTokens().get(0); return shardingRule.getLogicTableName(indexToken.getIndexName()); if (ddlStatement.getTables().isEmpty()) { return shardingRule.getLogicTableName(getIndexToken().getIndexName()); } return sqlStatement.getTables().getSingleTableName(); return ddlStatement.getTables().getSingleTableName(); } private IndexToken getIndexToken() { Preconditions.checkState(1 == ddlStatement.getSqlTokens().size()); return (IndexToken) ddlStatement.getSqlTokens().get(0); } }
sharding-jdbc-core/src/main/java/io/shardingjdbc/core/rule/ShardingRule.java +2 −6 Original line number Diff line number Diff line Loading @@ -292,15 +292,11 @@ public final class ShardingRule { * @return logic table name */ public String getLogicTableName(final String logicIndexName) { String result = ""; for (TableRule each : tableRules) { if (logicIndexName.equals(each.getLogicIndex())) { result = each.getLogicTable(); return each.getLogicTable(); } } if (Strings.isNullOrEmpty(result)) { throw new ShardingJdbcException("Cannot find logic table name with logic index name: '%s'", logicIndexName); } return result; } }
sharding-jdbc-core/src/main/java/io/shardingjdbc/core/yaml/sharding/YamlTableRuleConfiguration.java +3 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,8 @@ public class YamlTableRuleConfiguration { private String keyGeneratorClass; private String logicIndex; /** * Build table rule configuration. * Loading @@ -45,6 +47,7 @@ public class YamlTableRuleConfiguration { } tableRuleConfig.setKeyGeneratorClass(keyGeneratorClass); tableRuleConfig.setKeyGeneratorColumnName(keyGeneratorColumnName); tableRuleConfig.setLogicIndex(logicIndex); return tableRuleConfig; } }