Commit 39a48b8a authored by terrymanu's avatar terrymanu
Browse files

refactor DALParser

parent 16213880
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@ package io.shardingjdbc.core.parsing.parser.dialect.mysql.sql;
import io.shardingjdbc.core.parsing.lexer.LexerEngine;
import io.shardingjdbc.core.parsing.parser.clause.TableReferencesClauseParser;
import io.shardingjdbc.core.parsing.parser.dialect.mysql.statement.DescribeStatement;
import io.shardingjdbc.core.parsing.parser.sql.SQLParser;
import io.shardingjdbc.core.parsing.parser.sql.dal.describe.AbstractDescribeParser;
import io.shardingjdbc.core.rule.ShardingRule;

/**
@@ -11,7 +11,7 @@ import io.shardingjdbc.core.rule.ShardingRule;
 *
 * @author zhangliang
 */
public final class MySQLDescribeParser implements SQLParser {
public final class MySQLDescribeParser extends AbstractDescribeParser {
    
    private final LexerEngine lexerEngine;
    
+2 −2
Original line number Diff line number Diff line
@@ -8,8 +8,8 @@ import io.shardingjdbc.core.parsing.parser.dialect.mysql.statement.ShowColumnsSt
import io.shardingjdbc.core.parsing.parser.dialect.mysql.statement.ShowDatabasesStatement;
import io.shardingjdbc.core.parsing.parser.dialect.mysql.statement.ShowOtherStatement;
import io.shardingjdbc.core.parsing.parser.dialect.mysql.statement.ShowTablesStatement;
import io.shardingjdbc.core.parsing.parser.sql.SQLParser;
import io.shardingjdbc.core.parsing.parser.sql.dal.DALStatement;
import io.shardingjdbc.core.parsing.parser.sql.dal.show.AbstractShowParser;
import io.shardingjdbc.core.parsing.parser.token.SchemaToken;
import io.shardingjdbc.core.rule.ShardingRule;
import lombok.RequiredArgsConstructor;
@@ -20,7 +20,7 @@ import lombok.RequiredArgsConstructor;
 * @author zhangliang
 */
@RequiredArgsConstructor
public final class MySQLShowParser implements SQLParser {
public final class MySQLShowParser extends AbstractShowParser {
    
    private final LexerEngine lexerEngine;
    
+3 −4
Original line number Diff line number Diff line
package io.shardingjdbc.core.parsing.parser.dialect.mysql.sql;

import io.shardingjdbc.core.parsing.parser.dialect.mysql.statement.UseStatement;
import io.shardingjdbc.core.parsing.parser.sql.SQLParser;
import io.shardingjdbc.core.parsing.parser.sql.dal.DALStatement;
import io.shardingjdbc.core.parsing.parser.sql.dal.use.AbstractUseParser;

/**
 * Use parser for MySQL.
 *
 * @author zhangliang
 */
public final class MySQLUseParser implements SQLParser {
public final class MySQLUseParser extends AbstractUseParser {
    
    @Override
    public DALStatement parse() {
    public UseStatement parse() {
        return new UseStatement();
    }
}
+8 −8
Original line number Diff line number Diff line
@@ -23,10 +23,10 @@ import io.shardingjdbc.core.parsing.lexer.dialect.mysql.MySQLKeyword;
import io.shardingjdbc.core.parsing.lexer.token.DefaultKeyword;
import io.shardingjdbc.core.parsing.lexer.token.Keyword;
import io.shardingjdbc.core.parsing.lexer.token.TokenType;
import io.shardingjdbc.core.parsing.parser.dialect.mysql.sql.MySQLDescribeParser;
import io.shardingjdbc.core.parsing.parser.dialect.mysql.sql.MySQLShowParser;
import io.shardingjdbc.core.parsing.parser.dialect.mysql.sql.MySQLUseParser;
import io.shardingjdbc.core.parsing.parser.exception.SQLParsingUnsupportedException;
import io.shardingjdbc.core.parsing.parser.sql.dal.describe.DescribeParserFactory;
import io.shardingjdbc.core.parsing.parser.sql.dal.show.ShowParserFactory;
import io.shardingjdbc.core.parsing.parser.sql.dal.use.UseParserFactory;
import io.shardingjdbc.core.parsing.parser.sql.ddl.alter.AlterParserFactory;
import io.shardingjdbc.core.parsing.parser.sql.ddl.create.CreateParserFactory;
import io.shardingjdbc.core.parsing.parser.sql.ddl.drop.DropParserFactory;
@@ -71,7 +71,7 @@ public final class SQLParserFactory {
            return getTCLParser(dbType, shardingRule, lexerEngine);
        }
        if (isDAL(tokenType)) {
            return getDALParser((Keyword) tokenType, shardingRule, lexerEngine);
            return getDALParser(dbType, (Keyword) tokenType, shardingRule, lexerEngine);
        }
        throw new SQLParsingUnsupportedException(tokenType);
    }
@@ -133,15 +133,15 @@ public final class SQLParserFactory {
        return TCLParserFactory.newInstance(dbType, shardingRule, lexerEngine);
    }
    
    private static SQLParser getDALParser(final Keyword tokenType, final ShardingRule shardingRule, final LexerEngine lexerEngine) {
    private static SQLParser getDALParser(final DatabaseType dbType, final Keyword tokenType, final ShardingRule shardingRule, final LexerEngine lexerEngine) {
        if (DefaultKeyword.USE == tokenType) {
            return new MySQLUseParser();
            return UseParserFactory.newInstance(dbType, shardingRule, lexerEngine);
        }
        if (DefaultKeyword.DESC == tokenType || MySQLKeyword.DESCRIBE == tokenType) {
            return new MySQLDescribeParser(shardingRule, lexerEngine);
            return DescribeParserFactory.newInstance(dbType, shardingRule, lexerEngine);
        }
        if (MySQLKeyword.SHOW == tokenType) {
            return new MySQLShowParser(shardingRule, lexerEngine);
            return ShowParserFactory.newInstance(dbType, shardingRule, lexerEngine);
        }
        throw new SQLParsingUnsupportedException(tokenType);
    }
+11 −0
Original line number Diff line number Diff line
package io.shardingjdbc.core.parsing.parser.sql.dal;

import io.shardingjdbc.core.parsing.parser.sql.SQLParser;

/**
 * Database administrator parser.
 *
 * @author zhangliang
 */
public abstract class AbstractDALParser implements SQLParser {
}
Loading