diff --git a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/statement/dql/select/AbstractSelectParser.java b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/statement/dql/select/AbstractSelectParser.java index 93d00c8bbf467ed0c7daf05af2e0a2894fed135b..4a67c031b742c80aee440cf0b8cde04b48a11f31 100755 --- a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/statement/dql/select/AbstractSelectParser.java +++ b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/statement/dql/select/AbstractSelectParser.java @@ -349,7 +349,7 @@ public abstract class AbstractSelectParser implements SQLStatementParser { sqlParser.skipUselessParentheses(); parse(); sqlParser.skipUselessParentheses(); - if (!selectStatement.getTables().isEmpty() || getSqlParser().equalAny(DefaultKeyword.WHERE, Assist.END)) { + if (getSqlParser().equalAny(DefaultKeyword.WHERE, Assist.END)) { return; } } @@ -362,8 +362,8 @@ public abstract class AbstractSelectParser implements SQLStatementParser { } protected final void parseTableFactor() { - final int beginPosition = sqlParser.getLexer().getCurrentToken().getEndPosition() - sqlParser.getLexer().getCurrentToken().getLiterals().length(); sqlParser.skipAll(DefaultKeyword.AS); + final int beginPosition = sqlParser.getLexer().getCurrentToken().getEndPosition() - sqlParser.getLexer().getCurrentToken().getLiterals().length(); String literals = sqlParser.getLexer().getCurrentToken().getLiterals(); sqlParser.getLexer().nextToken(); // TODO 包含Schema解析 diff --git a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/base/AbstractBaseParseSQLTest.java b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/base/AbstractBaseParseSQLTest.java index 506d476a3768a465e335fcd785cbb176f825e984..e85ed24bd78af50343e8ffe3ca250c5f97800c26 100644 --- a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/base/AbstractBaseParseSQLTest.java +++ b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/base/AbstractBaseParseSQLTest.java @@ -53,7 +53,6 @@ public abstract class AbstractBaseParseSQLTest extends AbstractBaseParseTest { } } - private void assertExpectedTables(final SQLStatement actual) { assertTrue(new ReflectionEquals(getExpectedTables()).matches(actual.getTables())); } diff --git a/sharding-jdbc-core/src/test/resources/parser/select_pagination.xml b/sharding-jdbc-core/src/test/resources/parser/select_pagination.xml index 8e9089fca69b1fd9dce727f109a3fc5bbb4597b6..c1bca8b615054200a4d5500e9863ae465415d2cb 100644 --- a/sharding-jdbc-core/src/test/resources/parser/select_pagination.xml +++ b/sharding-jdbc-core/src/test/resources/parser/select_pagination.xml @@ -138,6 +138,9 @@ + + + @@ -157,6 +160,9 @@ + + + diff --git a/sharding-jdbc-core/src/test/resources/parser/select_pagination_group_by_order_by.xml b/sharding-jdbc-core/src/test/resources/parser/select_pagination_group_by_order_by.xml index d7e4b510bc6cef0428e9f907ec1b6ad3a80bab58..7eb16d2060c6071aa2440457ca2607759033d83a 100644 --- a/sharding-jdbc-core/src/test/resources/parser/select_pagination_group_by_order_by.xml +++ b/sharding-jdbc-core/src/test/resources/parser/select_pagination_group_by_order_by.xml @@ -62,6 +62,9 @@ + + + @@ -83,6 +86,9 @@ + + + @@ -104,6 +110,9 @@ + + + @@ -125,6 +134,9 @@ + + + @@ -147,6 +159,12 @@ + + + + + + @@ -166,6 +184,12 @@ + + + + + +