Commit 430c330f authored by haocao's avatar haocao
Browse files

For #525.

parent 487fe70e
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -43,6 +43,8 @@ public class TableRuleConfiguration {
    
    private String logicTable;
    
    private String logicIndex;
    
    private String actualDataNodes;
    
    private ShardingStrategyConfiguration databaseShardingStrategyConfig;
@@ -65,6 +67,6 @@ public class TableRuleConfiguration {
        ShardingStrategy databaseShardingStrategy = null == databaseShardingStrategyConfig ? null : databaseShardingStrategyConfig.build();
        ShardingStrategy tableShardingStrategy = null == tableShardingStrategyConfig ? null : tableShardingStrategyConfig.build();
        KeyGenerator keyGenerator = !Strings.isNullOrEmpty(keyGeneratorColumnName) && !Strings.isNullOrEmpty(keyGeneratorClass) ? KeyGeneratorFactory.newInstance(keyGeneratorClass) : null;
        return new TableRule(logicTable, actualDataNodes, dataSourceMap, databaseShardingStrategy, tableShardingStrategy, keyGeneratorColumnName, keyGenerator);
        return new TableRule(logicTable, logicIndex, actualDataNodes, dataSourceMap, databaseShardingStrategy, tableShardingStrategy, keyGeneratorColumnName, keyGenerator);
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -85,7 +85,7 @@ public class MasterSlaveDataSource extends AbstractDataSourceAdapter {
     * @return map of actual master data source name and actual master data sources
     */
    public Map<String, DataSource> getMasterDataSource() {
        Map<String, DataSource> result = new HashMap<>(1);
        Map<String, DataSource> result = new HashMap<>(1, 1);
        result.put(masterSlaveRule.getMasterDataSourceName(), masterSlaveRule.getMasterDataSource());
        return result;
    }
+4 −0
Original line number Diff line number Diff line
package io.shardingjdbc.core.parsing.parser.clause;

import com.google.common.base.Strings;
import io.shardingjdbc.core.rule.ShardingRule;
import io.shardingjdbc.core.parsing.lexer.LexerEngine;
import io.shardingjdbc.core.parsing.lexer.token.DefaultKeyword;
@@ -63,6 +64,9 @@ public class TableReferencesClauseParser implements SQLClauseParser {
            throw new UnsupportedOperationException("Cannot support SQL for `schema.table`");
        }
        String tableName = SQLUtil.getExactlyValue(literals);
        if (Strings.isNullOrEmpty(tableName)) {
            return;
        }
        Optional<String> alias = aliasClauseParser.parse();
        if (isSingleTableOnly || shardingRule.tryFindTableRule(tableName).isPresent() || shardingRule.findBindingTableRule(tableName).isPresent()
                || shardingRule.getDataSourceMap().containsKey(shardingRule.getDefaultDataSourceName())) {
+5 −0
Original line number Diff line number Diff line
@@ -35,6 +35,11 @@ public final class PostgreSQLCreateParser extends AbstractCreateParser {
        super(shardingRule, lexerEngine);
    }
    
    @Override
    protected Keyword[] getSkippedKeywordsBetweenCreateIndexAndIndexName() {
        return new Keyword[] {DefaultKeyword.IF, DefaultKeyword.NOT, DefaultKeyword.EXISTS};
    }
    
    @Override
    protected Keyword[] getSkippedKeywordsBetweenCreateAndKeyword() {
        return new Keyword[] {DefaultKeyword.GLOBAL, DefaultKeyword.LOCAL, DefaultKeyword.TEMPORARY, DefaultKeyword.TEMP, PostgreSQLKeyword.UNLOGGED};
+4 −0
Original line number Diff line number Diff line
@@ -34,6 +34,10 @@ public final class PostgreSQLDropParser extends AbstractDropParser {
        super(shardingRule, lexerEngine);
    }
    
    protected Keyword[] getSkippedKeywordsBetweenDropIndexAndIndexName() {
        return new Keyword[] {DefaultKeyword.IF, DefaultKeyword.EXISTS};
    }
    
    @Override
    protected Keyword[] getSkippedKeywordsBetweenDropTableAndTableName() {
        return new Keyword[] {DefaultKeyword.IF, DefaultKeyword.EXISTS};
Loading