Commit af458531 authored by haocao's avatar haocao
Browse files

For #525 4th.

parent 16eb5731
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -43,8 +43,6 @@ public class TableRuleConfiguration {
    
    private String logicTable;
    
    private String logicIndex;
    
    private String actualDataNodes;
    
    private ShardingStrategyConfiguration databaseShardingStrategyConfig;
@@ -55,6 +53,8 @@ public class TableRuleConfiguration {
    
    private String keyGeneratorClass;
    
    private String logicIndex;
    
    /**
     * Build table rule.
     *
@@ -67,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, logicIndex, actualDataNodes, dataSourceMap, databaseShardingStrategy, tableShardingStrategy, keyGeneratorColumnName, keyGenerator);
        return new TableRule(logicTable, actualDataNodes, dataSourceMap, databaseShardingStrategy, tableShardingStrategy, keyGeneratorColumnName, keyGenerator, logicIndex);
    }
}
+3 −8
Original line number Diff line number Diff line
@@ -36,7 +36,6 @@ import java.util.List;
 */
@RequiredArgsConstructor
@Getter
@Setter
@ToString
public abstract class AbstractSQLStatement implements SQLStatement {
    
@@ -48,6 +47,7 @@ public abstract class AbstractSQLStatement implements SQLStatement {
    
    private final List<SQLToken> sqlTokens = new LinkedList<>();
    
    @Setter
    private int parametersIndex;
    
    private boolean containsTableName = true;
@@ -63,12 +63,7 @@ public abstract class AbstractSQLStatement implements SQLStatement {
    }
    
    @Override
    public void setContainsTableName(final boolean containsTableName) {
        this.containsTableName = containsTableName;
    }
    
    @Override
    public boolean containsTableName() {
        return this.containsTableName;
    public void withoutTableName() {
        containsTableName = false;
    }
}
+5 −5
Original line number Diff line number Diff line
@@ -74,21 +74,21 @@ public interface SQLStatement {
    void setParametersIndex(int parametersIndex);
    
    /**
     * 增加索引偏移量.
     * Increase parameters index.
     *
     * @return 增加后的索引偏移量
     * @return increased parameters index
     */
    int increaseParametersIndex();
    
    /**
     * Set contain table name.
     * Without table name.
     */
    void setContainsTableName(boolean containsTableName);
    void withoutTableName();
    
    /**
     * Adjust contains table name is empty or not.
     *
     * @return table name is empty or not
     */
    boolean containsTableName();
    boolean isContainsTableName();
}
+8 −8
Original line number Diff line number Diff line
@@ -68,6 +68,14 @@ public abstract class AbstractCreateParser implements SQLParser {
        return result;
    }
    
    protected abstract Keyword[] getSkippedKeywordsBetweenCreateIndexAndKeyword();
    
    protected abstract Keyword[] getSkippedKeywordsBetweenCreateAndKeyword();
    
    protected Keyword[] getSkippedKeywordsBetweenCreateIndexAndIndexName() {
        return new Keyword[] {};
    }
    
    private void parseIndex(final DDLStatement ddlStatement) {
        Token currentToken = lexerEngine.getCurrentToken();
        int beginPosition = currentToken.getEndPosition() - currentToken.getLiterals().length();
@@ -78,13 +86,5 @@ public abstract class AbstractCreateParser implements SQLParser {
        ddlStatement.getSqlTokens().add(new IndexToken(beginPosition, literals, tableName));
    }
    
    protected Keyword[] getSkippedKeywordsBetweenCreateIndexAndIndexName() {
        return new Keyword[] {};
    }
    
    protected abstract Keyword[] getSkippedKeywordsBetweenCreateAndKeyword();
    
    protected abstract Keyword[] getSkippedKeywordsBetweenCreateTableAndTableName();
    
    protected abstract Keyword[] getSkippedKeywordsBetweenCreateIndexAndKeyword();
}
+16 −12
Original line number Diff line number Diff line
@@ -65,12 +65,16 @@ public abstract class AbstractDropParser implements SQLParser {
            throw new SQLParsingException("Can't support other DROP grammar unless DROP TABLE, DROP INDEX.");
        }
        tableReferencesClauseParser.parse(result, true);
        for (SQLToken each : result.getSqlTokens()) {
            if (each instanceof IndexToken && result.getSqlTokens().size() == 1) {
                result.setContainsTableName(false);
        indexWithoutTable(result);
        return result;
    }
    
    protected Keyword[] getSkippedKeywordsBetweenDropAndTable() {
        return new Keyword[0];
    }
        return result;
    
    protected Keyword[] getSkippedKeywordsBetweenDropIndexAndIndexName() {
        return new Keyword[] {};
    }
    
    private void parseIndex(final DDLStatement ddlStatement) {
@@ -83,13 +87,13 @@ public abstract class AbstractDropParser implements SQLParser {
        ddlStatement.getSqlTokens().add(new IndexToken(beginPosition, literals, tableName));
    }
    
    protected Keyword[] getSkippedKeywordsBetweenDropIndexAndIndexName() {
        return new Keyword[] {};
    }
    protected abstract Keyword[] getSkippedKeywordsBetweenDropTableAndTableName();
    
    protected Keyword[] getSkippedKeywordsBetweenDropAndTable() {
        return new Keyword[0];
    private void indexWithoutTable(final DDLStatement ddlStatement) {
        for (SQLToken each : ddlStatement.getSqlTokens()) {
            if (each instanceof IndexToken && 1 == ddlStatement.getSqlTokens().size()) {
                ddlStatement.withoutTableName();
            }
        }
    }
    
    protected abstract Keyword[] getSkippedKeywordsBetweenDropTableAndTableName();
}
Loading