From 242485339d4bc155420e06e70d0a5f304c70537a Mon Sep 17 00:00:00 2001
From: terrymanu
Date: Thu, 16 Mar 2017 19:36:43 +0800
Subject: [PATCH] refactor
---
.../rdb/sharding/parser/SQLParserFactory.java | 22 ++++++-------
.../mysql/parser/MySQLDeleteParser.java | 6 ++--
.../mysql/parser/MySQLInsertParser.java | 6 ++--
...{MySQLExprParser.java => MySQLParser.java} | 8 ++---
.../mysql/parser/MySQLSelectParser.java | 8 ++---
.../mysql/parser/MySQLUpdateParser.java | 6 ++--
.../oracle/parser/OracleDeleteParser.java | 6 ++--
.../oracle/parser/OracleInsertParser.java | 6 ++--
...racleExprParser.java => OracleParser.java} | 10 +++---
.../oracle/parser/OracleSelectParser.java | 6 ++--
.../oracle/parser/OracleUpdateParser.java | 6 ++--
.../parser/PostgreSQLDeleteParser.java | 6 ++--
.../parser/PostgreSQLInsertParser.java | 6 ++--
...LExprParser.java => PostgreSQLParser.java} | 8 ++---
.../parser/PostgreSQLSelectParser.java | 6 ++--
.../parser/PostgreSQLUpdateParser.java | 6 ++--
.../parser/SQLServerDeleteParser.java | 10 +++---
.../parser/SQLServerInsertParser.java | 6 ++--
...erExprParser.java => SQLServerParser.java} | 8 ++---
.../parser/SQLServerSelectParser.java | 10 +++---
.../parser/SQLServerUpdateParser.java | 8 ++---
.../{SQLExprParser.java => SQLParser.java} | 11 +++----
.../parser/sql/parser/SQLStatementParser.java | 8 +++--
.../{ => delete}/AbstractDeleteParser.java | 7 ++--
.../{ => delete}/SQLDeleteParserFactory.java | 5 +--
.../{ => insert}/AbstractInsertParser.java | 8 +++--
.../{ => insert}/SQLInsertParserFactory.java | 5 +--
.../{ => select}/AbstractSelectParser.java | 8 +++--
.../{ => select}/SQLSelectParserFactory.java | 5 +--
.../{ => update}/AbstractUpdateParser.java | 7 ++--
.../{ => update}/SQLUpdateParserFactory.java | 5 +--
.../parser/AbstractStatementParserTest.java | 20 ++++++------
.../sql/parser/DeleteStatementParserTest.java | 17 +++++-----
.../sql/parser/InsertStatementParserTest.java | 32 +++++++++----------
.../sql/parser/UpdateStatementParserTest.java | 21 ++++++------
35 files changed, 169 insertions(+), 154 deletions(-)
rename sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/dialect/mysql/parser/{MySQLExprParser.java => MySQLParser.java} (95%)
rename sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/dialect/oracle/parser/{OracleExprParser.java => OracleParser.java} (84%)
rename sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/dialect/postgresql/parser/{PostgreSQLExprParser.java => PostgreSQLParser.java} (74%)
rename sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/dialect/sqlserver/parser/{SQLServerExprParser.java => SQLServerParser.java} (93%)
rename sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/{SQLExprParser.java => SQLParser.java} (97%)
rename sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/{ => delete}/AbstractDeleteParser.java (89%)
rename sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/{ => delete}/SQLDeleteParserFactory.java (88%)
rename sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/{ => insert}/AbstractInsertParser.java (96%)
rename sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/{ => insert}/SQLInsertParserFactory.java (90%)
rename sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/{ => select}/AbstractSelectParser.java (96%)
rename sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/{ => select}/SQLSelectParserFactory.java (88%)
rename sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/{ => update}/AbstractUpdateParser.java (93%)
rename sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/{ => update}/SQLUpdateParserFactory.java (88%)
diff --git a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/SQLParserFactory.java b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/SQLParserFactory.java
index 1b2f042c7f..5b566e4c25 100644
--- a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/SQLParserFactory.java
+++ b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/SQLParserFactory.java
@@ -18,11 +18,11 @@
package com.dangdang.ddframe.rdb.sharding.parser;
import com.dangdang.ddframe.rdb.sharding.parser.sql.context.SQLContext;
-import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.mysql.parser.MySQLExprParser;
-import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.oracle.parser.OracleExprParser;
-import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.postgresql.parser.PostgreSQLExprParser;
-import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.sqlserver.parser.SQLServerExprParser;
-import com.dangdang.ddframe.rdb.sharding.parser.sql.parser.SQLExprParser;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.mysql.parser.MySQLParser;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.oracle.parser.OracleParser;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.postgresql.parser.PostgreSQLParser;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.sqlserver.parser.SQLServerParser;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.parser.SQLParser;
import com.dangdang.ddframe.rdb.sharding.parser.sql.parser.SQLStatementParser;
import com.dangdang.ddframe.rdb.sharding.api.rule.ShardingRule;
import com.dangdang.ddframe.rdb.sharding.constants.DatabaseType;
@@ -61,24 +61,24 @@ public final class SQLParserFactory {
}
private static SQLStatementParser getSQLStatementParser(final DatabaseType dbType, final String sql, final ShardingRule shardingRule, final List
*/
-package com.dangdang.ddframe.rdb.sharding.parser.sql.parser;
+package com.dangdang.ddframe.rdb.sharding.parser.sql.parser.delete;
import com.dangdang.ddframe.rdb.sharding.parser.sql.context.DeleteSQLContext;
import com.dangdang.ddframe.rdb.sharding.parser.sql.lexer.token.DefaultKeyword;
import com.dangdang.ddframe.rdb.sharding.parser.result.router.ConditionContext;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.parser.SQLParser;
import com.google.common.base.Optional;
import lombok.AccessLevel;
import lombok.Getter;
@@ -34,11 +35,11 @@ import lombok.RequiredArgsConstructor;
public abstract class AbstractDeleteParser {
@Getter(AccessLevel.PROTECTED)
- private final SQLExprParser exprParser;
+ private final SQLParser exprParser;
private final DeleteSQLContext sqlContext;
- public AbstractDeleteParser(final SQLExprParser exprParser) {
+ public AbstractDeleteParser(final SQLParser exprParser) {
this.exprParser = exprParser;
sqlContext = new DeleteSQLContext(exprParser.getLexer().getInput());
}
diff --git a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/SQLDeleteParserFactory.java b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/delete/SQLDeleteParserFactory.java
similarity index 88%
rename from sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/SQLDeleteParserFactory.java
rename to sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/delete/SQLDeleteParserFactory.java
index 2182ac0934..4732bc487e 100644
--- a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/SQLDeleteParserFactory.java
+++ b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/delete/SQLDeleteParserFactory.java
@@ -15,13 +15,14 @@
*
*/
-package com.dangdang.ddframe.rdb.sharding.parser.sql.parser;
+package com.dangdang.ddframe.rdb.sharding.parser.sql.parser.delete;
import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.mysql.parser.MySQLDeleteParser;
import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.oracle.parser.OracleDeleteParser;
import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.postgresql.parser.PostgreSQLDeleteParser;
import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.sqlserver.parser.SQLServerDeleteParser;
import com.dangdang.ddframe.rdb.sharding.constants.DatabaseType;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.parser.SQLParser;
/**
* Delete语句解析器工厂.
@@ -37,7 +38,7 @@ public class SQLDeleteParserFactory {
* @param dbType 数据库类型
* @return Delete语句解析器
*/
- public static AbstractDeleteParser newInstance(final SQLExprParser exprParser, final DatabaseType dbType) {
+ public static AbstractDeleteParser newInstance(final SQLParser exprParser, final DatabaseType dbType) {
switch (dbType) {
case H2 :
case MySQL :
diff --git a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/AbstractInsertParser.java b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/insert/AbstractInsertParser.java
similarity index 96%
rename from sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/AbstractInsertParser.java
rename to sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/insert/AbstractInsertParser.java
index 1be5d36657..f8d0950d47 100644
--- a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/AbstractInsertParser.java
+++ b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/insert/AbstractInsertParser.java
@@ -15,7 +15,7 @@
*
*/
-package com.dangdang.ddframe.rdb.sharding.parser.sql.parser;
+package com.dangdang.ddframe.rdb.sharding.parser.sql.parser.insert;
import com.dangdang.ddframe.rdb.sharding.api.rule.ShardingRule;
import com.dangdang.ddframe.rdb.sharding.parser.result.router.Condition;
@@ -29,6 +29,8 @@ import com.dangdang.ddframe.rdb.sharding.parser.sql.lexer.token.Assist;
import com.dangdang.ddframe.rdb.sharding.parser.sql.lexer.token.DefaultKeyword;
import com.dangdang.ddframe.rdb.sharding.parser.sql.lexer.token.Symbol;
import com.dangdang.ddframe.rdb.sharding.parser.sql.lexer.token.TokenType;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.parser.ParserUnsupportedException;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.parser.SQLParser;
import com.dangdang.ddframe.rdb.sharding.parser.visitor.ParseContext;
import com.dangdang.ddframe.rdb.sharding.util.SQLUtil;
import com.google.common.collect.Sets;
@@ -49,7 +51,7 @@ import java.util.Set;
@Getter(AccessLevel.PROTECTED)
public abstract class AbstractInsertParser {
- private final SQLExprParser exprParser;
+ private final SQLParser exprParser;
private final ShardingRule shardingRule;
@@ -57,7 +59,7 @@ public abstract class AbstractInsertParser {
private final InsertSQLContext sqlContext;
- public AbstractInsertParser(final ShardingRule shardingRule, final List parameters, final SQLExprParser exprParser) {
+ public AbstractInsertParser(final ShardingRule shardingRule, final List parameters, final SQLParser exprParser) {
this.exprParser = exprParser;
this.shardingRule = shardingRule;
this.parameters = parameters;
diff --git a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/SQLInsertParserFactory.java b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/insert/SQLInsertParserFactory.java
similarity index 90%
rename from sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/SQLInsertParserFactory.java
rename to sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/insert/SQLInsertParserFactory.java
index e7c62d0b7d..392a14ac66 100644
--- a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/SQLInsertParserFactory.java
+++ b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/insert/SQLInsertParserFactory.java
@@ -15,7 +15,7 @@
*
*/
-package com.dangdang.ddframe.rdb.sharding.parser.sql.parser;
+package com.dangdang.ddframe.rdb.sharding.parser.sql.parser.insert;
import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.mysql.parser.MySQLInsertParser;
import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.oracle.parser.OracleInsertParser;
@@ -23,6 +23,7 @@ import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.postgresql.parser.Po
import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.sqlserver.parser.SQLServerInsertParser;
import com.dangdang.ddframe.rdb.sharding.api.rule.ShardingRule;
import com.dangdang.ddframe.rdb.sharding.constants.DatabaseType;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.parser.SQLParser;
import java.util.List;
@@ -42,7 +43,7 @@ public class SQLInsertParserFactory {
* @param dbType 数据库类型
* @return Insert语句解析器
*/
- public static AbstractInsertParser newInstance(final ShardingRule shardingRule, final List parameters, final SQLExprParser exprParser, final DatabaseType dbType) {
+ public static AbstractInsertParser newInstance(final ShardingRule shardingRule, final List parameters, final SQLParser exprParser, final DatabaseType dbType) {
switch (dbType) {
case H2 :
case MySQL :
diff --git a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/AbstractSelectParser.java b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/select/AbstractSelectParser.java
similarity index 96%
rename from sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/AbstractSelectParser.java
rename to sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/select/AbstractSelectParser.java
index 77bffb77af..1c16b28a9a 100755
--- a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/AbstractSelectParser.java
+++ b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/select/AbstractSelectParser.java
@@ -15,7 +15,7 @@
*
*/
-package com.dangdang.ddframe.rdb.sharding.parser.sql.parser;
+package com.dangdang.ddframe.rdb.sharding.parser.sql.parser.select;
import com.dangdang.ddframe.rdb.sharding.parser.result.merger.OrderByColumn;
import com.dangdang.ddframe.rdb.sharding.parser.result.router.ConditionContext;
@@ -30,6 +30,8 @@ import com.dangdang.ddframe.rdb.sharding.parser.sql.expr.SQLIdentifierExpr;
import com.dangdang.ddframe.rdb.sharding.parser.sql.expr.SQLPropertyExpr;
import com.dangdang.ddframe.rdb.sharding.parser.sql.lexer.token.DefaultKeyword;
import com.dangdang.ddframe.rdb.sharding.parser.sql.lexer.token.Symbol;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.parser.ParserUnsupportedException;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.parser.SQLParser;
import com.dangdang.ddframe.rdb.sharding.util.SQLUtil;
import com.google.common.base.Optional;
import lombok.AccessLevel;
@@ -41,14 +43,14 @@ import java.util.List;
@Getter(AccessLevel.PROTECTED)
public abstract class AbstractSelectParser {
- private SQLExprParser exprParser;
+ private SQLParser exprParser;
private final SelectSQLContext sqlContext;
@Setter
private int parametersIndex;
- public AbstractSelectParser(final SQLExprParser exprParser) {
+ public AbstractSelectParser(final SQLParser exprParser) {
this.exprParser = exprParser;
sqlContext = new SelectSQLContext(getExprParser().getLexer().getInput());
}
diff --git a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/SQLSelectParserFactory.java b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/select/SQLSelectParserFactory.java
similarity index 88%
rename from sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/SQLSelectParserFactory.java
rename to sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/select/SQLSelectParserFactory.java
index 1a9740d053..5cfebeef6f 100644
--- a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/SQLSelectParserFactory.java
+++ b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/select/SQLSelectParserFactory.java
@@ -15,13 +15,14 @@
*
*/
-package com.dangdang.ddframe.rdb.sharding.parser.sql.parser;
+package com.dangdang.ddframe.rdb.sharding.parser.sql.parser.select;
import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.mysql.parser.MySQLSelectParser;
import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.oracle.parser.OracleSelectParser;
import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.postgresql.parser.PostgreSQLSelectParser;
import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.sqlserver.parser.SQLServerSelectParser;
import com.dangdang.ddframe.rdb.sharding.constants.DatabaseType;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.parser.SQLParser;
/**
* Select语句解析器工厂.
@@ -37,7 +38,7 @@ public class SQLSelectParserFactory {
* @param dbType 数据库类型
* @return Select语句解析器
*/
- public static AbstractSelectParser newInstance(final SQLExprParser exprParser, final DatabaseType dbType) {
+ public static AbstractSelectParser newInstance(final SQLParser exprParser, final DatabaseType dbType) {
switch (dbType) {
case H2 :
case MySQL :
diff --git a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/AbstractUpdateParser.java b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/update/AbstractUpdateParser.java
similarity index 93%
rename from sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/AbstractUpdateParser.java
rename to sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/update/AbstractUpdateParser.java
index 7e62ad1727..7d5b4bcf7d 100644
--- a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/AbstractUpdateParser.java
+++ b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/update/AbstractUpdateParser.java
@@ -15,13 +15,14 @@
*
*/
-package com.dangdang.ddframe.rdb.sharding.parser.sql.parser;
+package com.dangdang.ddframe.rdb.sharding.parser.sql.parser.update;
import com.dangdang.ddframe.rdb.sharding.parser.sql.context.TableToken;
import com.dangdang.ddframe.rdb.sharding.parser.sql.context.UpdateSQLContext;
import com.dangdang.ddframe.rdb.sharding.parser.sql.lexer.token.DefaultKeyword;
import com.dangdang.ddframe.rdb.sharding.parser.sql.lexer.token.Symbol;
import com.dangdang.ddframe.rdb.sharding.parser.result.router.ConditionContext;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.parser.SQLParser;
import com.dangdang.ddframe.rdb.sharding.util.SQLUtil;
import com.google.common.base.Optional;
import lombok.AccessLevel;
@@ -35,13 +36,13 @@ import lombok.Getter;
@Getter(AccessLevel.PROTECTED)
public abstract class AbstractUpdateParser {
- private final SQLExprParser exprParser;
+ private final SQLParser exprParser;
private final UpdateSQLContext sqlContext;
private int parametersIndex;
- public AbstractUpdateParser(final SQLExprParser exprParser) {
+ public AbstractUpdateParser(final SQLParser exprParser) {
this.exprParser = exprParser;
sqlContext = new UpdateSQLContext(exprParser.getLexer().getInput());
}
diff --git a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/SQLUpdateParserFactory.java b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/update/SQLUpdateParserFactory.java
similarity index 88%
rename from sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/SQLUpdateParserFactory.java
rename to sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/update/SQLUpdateParserFactory.java
index 6fec19093b..68453383db 100644
--- a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/SQLUpdateParserFactory.java
+++ b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/update/SQLUpdateParserFactory.java
@@ -15,13 +15,14 @@
*
*/
-package com.dangdang.ddframe.rdb.sharding.parser.sql.parser;
+package com.dangdang.ddframe.rdb.sharding.parser.sql.parser.update;
import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.mysql.parser.MySQLUpdateParser;
import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.oracle.parser.OracleUpdateParser;
import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.postgresql.parser.PostgreSQLUpdateParser;
import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.sqlserver.parser.SQLServerUpdateParser;
import com.dangdang.ddframe.rdb.sharding.constants.DatabaseType;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.parser.SQLParser;
/**
* Update语句解析器工厂.
@@ -37,7 +38,7 @@ public class SQLUpdateParserFactory {
* @param dbType 数据库类型
* @return Update语句解析器
*/
- public static AbstractUpdateParser newInstance(final SQLExprParser exprParser, final DatabaseType dbType) {
+ public static AbstractUpdateParser newInstance(final SQLParser exprParser, final DatabaseType dbType) {
switch (dbType) {
case H2 :
case MySQL :
diff --git a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/AbstractStatementParserTest.java b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/AbstractStatementParserTest.java
index b769aca467..2a447ec4e0 100644
--- a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/AbstractStatementParserTest.java
+++ b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/AbstractStatementParserTest.java
@@ -17,10 +17,10 @@
package com.dangdang.ddframe.rdb.sharding.parser.sql.parser;
-import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.mysql.parser.MySQLExprParser;
-import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.oracle.parser.OracleExprParser;
-import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.postgresql.parser.PostgreSQLExprParser;
-import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.sqlserver.parser.SQLServerExprParser;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.mysql.parser.MySQLParser;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.oracle.parser.OracleParser;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.postgresql.parser.PostgreSQLParser;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.sqlserver.parser.SQLServerParser;
import com.dangdang.ddframe.rdb.sharding.api.rule.DataSourceRule;
import com.dangdang.ddframe.rdb.sharding.api.rule.ShardingRule;
import com.dangdang.ddframe.rdb.sharding.api.rule.TableRule;
@@ -46,25 +46,25 @@ public abstract class AbstractStatementParserTest {
protected final SQLStatementParser getSqlStatementParser(final DatabaseType dbType, final String actualSQL) {
ShardingRule shardingRule = createShardingRule();
List parameters = Collections.emptyList();
- SQLExprParser sqlExprParser;
+ SQLParser sqlParser;
switch (dbType) {
case H2:
case MySQL:
- sqlExprParser = new MySQLExprParser(shardingRule, parameters, actualSQL);
+ sqlParser = new MySQLParser(actualSQL, shardingRule, parameters);
break;
case Oracle:
- sqlExprParser = new OracleExprParser(shardingRule, parameters, actualSQL);
+ sqlParser = new OracleParser(actualSQL, shardingRule, parameters);
break;
case SQLServer:
- sqlExprParser = new SQLServerExprParser(shardingRule, parameters, actualSQL);
+ sqlParser = new SQLServerParser(actualSQL, shardingRule, parameters);
break;
case PostgreSQL:
- sqlExprParser = new PostgreSQLExprParser(shardingRule, parameters, actualSQL);
+ sqlParser = new PostgreSQLParser(actualSQL, shardingRule, parameters);
break;
default:
throw new UnsupportedOperationException(dbType.name());
}
- return new SQLStatementParser(dbType, shardingRule, parameters, sqlExprParser);
+ return new SQLStatementParser(dbType, shardingRule, parameters, sqlParser);
}
protected final ShardingRule createShardingRule() {
diff --git a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/DeleteStatementParserTest.java b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/DeleteStatementParserTest.java
index a57ed64c07..f3580ea82a 100644
--- a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/DeleteStatementParserTest.java
+++ b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/DeleteStatementParserTest.java
@@ -18,7 +18,7 @@
package com.dangdang.ddframe.rdb.sharding.parser.sql.parser;
import com.dangdang.ddframe.rdb.sharding.parser.sql.context.DeleteSQLContext;
-import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.mysql.parser.MySQLExprParser;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.mysql.parser.MySQLParser;
import com.dangdang.ddframe.rdb.sharding.api.rule.ShardingRule;
import com.dangdang.ddframe.rdb.sharding.constants.DatabaseType;
import com.dangdang.ddframe.rdb.sharding.parser.result.router.Condition;
@@ -41,7 +41,7 @@ public final class DeleteStatementParserTest extends AbstractStatementParserTest
public void parseWithoutCondition() throws SQLException {
ShardingRule shardingRule = createShardingRule();
List parameters = Collections.emptyList();
- SQLStatementParser statementParser = new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLExprParser(shardingRule, parameters, "DELETE FROM TABLE_XXX"));
+ SQLStatementParser statementParser = new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLParser("DELETE FROM TABLE_XXX", shardingRule, parameters));
DeleteSQLContext sqlContext = (DeleteSQLContext) statementParser.parseStatement();
assertThat(sqlContext.getTables().get(0).getName(), is("TABLE_XXX"));
assertTrue(sqlContext.getConditionContexts().isEmpty());
@@ -52,8 +52,9 @@ public final class DeleteStatementParserTest extends AbstractStatementParserTest
public void parseWithoutParameter() throws SQLException {
ShardingRule shardingRule = createShardingRule();
List parameters = Collections.emptyList();
- SQLStatementParser statementParser = new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLExprParser(shardingRule, parameters,
- "DELETE FROM TABLE_XXX xxx WHERE field4<10 AND TABLE_XXX.field1=1 AND field5>10 AND xxx.field2 IN (1,3) AND field6<=10 AND field3 BETWEEN 5 AND 20 AND field7>=10"));
+ SQLStatementParser statementParser = new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLParser(
+ "DELETE FROM TABLE_XXX xxx WHERE field4<10 AND TABLE_XXX.field1=1 AND field5>10 AND xxx.field2 IN (1,3) AND field6<=10 AND field3 BETWEEN 5 AND 20 AND field7>=10",
+ shardingRule, parameters));
DeleteSQLContext sqlContext = (DeleteSQLContext) statementParser.parseStatement();
assertDeleteStatement(sqlContext);
assertThat(sqlContext.toSqlBuilder().toString(), is(
@@ -64,8 +65,8 @@ public final class DeleteStatementParserTest extends AbstractStatementParserTest
public void parseWithParameter() throws SQLException {
ShardingRule shardingRule = createShardingRule();
List parameters = Arrays.asList(10, 1, 10, 1, 3, 10, 5, 20, 10);
- SQLStatementParser statementParser = new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLExprParser(shardingRule, parameters,
- "DELETE FROM TABLE_XXX xxx WHERE field4 AND field1=? AND field5>? AND field2 IN (?,?) AND field6<=? AND field3 BETWEEN ? AND ? AND field7>=?"));
+ SQLStatementParser statementParser = new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLParser(
+ "DELETE FROM TABLE_XXX xxx WHERE field4 AND field1=? AND field5>? AND field2 IN (?,?) AND field6<=? AND field3 BETWEEN ? AND ? AND field7>=?", shardingRule, parameters));
DeleteSQLContext sqlContext = (DeleteSQLContext) statementParser.parseStatement();
assertDeleteStatement(sqlContext);
assertThat(sqlContext.toSqlBuilder().toString(), is(
@@ -103,7 +104,7 @@ public final class DeleteStatementParserTest extends AbstractStatementParserTest
public void parseStatementWithDeleteMultipleTable() {
ShardingRule shardingRule = createShardingRule();
List parameters = Collections.emptyList();
- new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLExprParser(shardingRule, parameters, "DELETE TABLE_XXX1, TABLE_xxx2 FROM TABLE_XXX1 JOIN TABLE_XXX2"))
+ new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLParser("DELETE TABLE_XXX1, TABLE_xxx2 FROM TABLE_XXX1 JOIN TABLE_XXX2", shardingRule, parameters))
.parseStatement();
}
@@ -111,7 +112,7 @@ public final class DeleteStatementParserTest extends AbstractStatementParserTest
public void parseStatementWithDeleteMultipleTableWithUsing() {
ShardingRule shardingRule = createShardingRule();
List parameters = Collections.emptyList();
- new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLExprParser(shardingRule, parameters, "DELETE FROM TABLE_XXX1, TABLE_xxx2 USING TABLE_XXX1 JOIN TABLE_XXX2"))
+ new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLParser("DELETE FROM TABLE_XXX1, TABLE_xxx2 USING TABLE_XXX1 JOIN TABLE_XXX2", shardingRule, parameters))
.parseStatement();
}
diff --git a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/InsertStatementParserTest.java b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/InsertStatementParserTest.java
index 6b035eae1c..5aee6a5aac 100644
--- a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/InsertStatementParserTest.java
+++ b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/InsertStatementParserTest.java
@@ -18,8 +18,8 @@
package com.dangdang.ddframe.rdb.sharding.parser.sql.parser;
import com.dangdang.ddframe.rdb.sharding.parser.sql.context.InsertSQLContext;
-import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.mysql.parser.MySQLExprParser;
-import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.oracle.parser.OracleExprParser;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.mysql.parser.MySQLParser;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.oracle.parser.OracleParser;
import com.dangdang.ddframe.rdb.sharding.api.rule.DataSourceRule;
import com.dangdang.ddframe.rdb.sharding.api.rule.ShardingRule;
import com.dangdang.ddframe.rdb.sharding.api.rule.TableRule;
@@ -54,8 +54,8 @@ public final class InsertStatementParserTest extends AbstractStatementParserTest
public void parseWithoutParameter() throws SQLException {
ShardingRule shardingRule = createShardingRule();
List parameters = Collections.emptyList();
- SQLStatementParser statementParser = new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLExprParser(shardingRule, parameters,
- "INSERT INTO `TABLE_XXX` (`field1`, `field2`) VALUES (10, 1)"));
+ SQLStatementParser statementParser = new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLParser(
+ "INSERT INTO `TABLE_XXX` (`field1`, `field2`) VALUES (10, 1)", shardingRule, parameters));
InsertSQLContext sqlContext = (InsertSQLContext) statementParser.parseStatement();
assertInsertStatement(sqlContext);
assertThat(sqlContext.toSqlBuilder().toString(), is("INSERT INTO [Token(TABLE_XXX)] (`field1`, `field2`) VALUES (10, 1)"));
@@ -65,8 +65,8 @@ public final class InsertStatementParserTest extends AbstractStatementParserTest
public void parseWithParameter() {
ShardingRule shardingRule = createShardingRule();
List parameters = Lists.newArrayList(10, 1);
- SQLStatementParser statementParser = new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLExprParser(shardingRule, parameters,
- "INSERT INTO TABLE_XXX (field1, field2) VALUES (?, ?)"));
+ SQLStatementParser statementParser = new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLParser(
+ "INSERT INTO TABLE_XXX (field1, field2) VALUES (?, ?)", shardingRule, parameters));
InsertSQLContext sqlContext = (InsertSQLContext) statementParser.parseStatement();
assertInsertStatement(sqlContext);
assertThat(sqlContext.toSqlBuilder().toString(), is("INSERT INTO [Token(TABLE_XXX)] (field1, field2) VALUES (?, ?)"));
@@ -76,8 +76,8 @@ public final class InsertStatementParserTest extends AbstractStatementParserTest
public void parseWithAutoIncrementColumnsWithoutParameter() throws SQLException {
ShardingRule shardingRule = createShardingRuleWithAutoIncrementColumns();
List parameters = Collections.emptyList();
- SQLStatementParser statementParser = new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLExprParser(shardingRule, parameters,
- "INSERT INTO `TABLE_XXX` (`field1`) VALUES (10)"));
+ SQLStatementParser statementParser = new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLParser(
+ "INSERT INTO `TABLE_XXX` (`field1`) VALUES (10)", shardingRule, parameters));
InsertSQLContext sqlContext = (InsertSQLContext) statementParser.parseStatement();
assertInsertStatement(sqlContext);
assertThat(sqlContext.toSqlBuilder().toString(), is("INSERT INTO [Token(TABLE_XXX)] (`field1`, field2) VALUES (10, 1)"));
@@ -87,8 +87,8 @@ public final class InsertStatementParserTest extends AbstractStatementParserTest
public void parseWithAutoIncrementColumnsWithParameter() throws SQLException {
ShardingRule shardingRule = createShardingRuleWithAutoIncrementColumns();
List parameters = Lists.newArrayList(10);
- SQLStatementParser statementParser = new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLExprParser(shardingRule, parameters,
- "INSERT INTO `TABLE_XXX` (`field1`) VALUES (?)"));
+ SQLStatementParser statementParser = new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLParser(
+ "INSERT INTO `TABLE_XXX` (`field1`) VALUES (?)", shardingRule, parameters));
InsertSQLContext sqlContext = (InsertSQLContext) statementParser.parseStatement();
assertInsertStatement(sqlContext);
assertThat(sqlContext.toSqlBuilder().toString(), is("INSERT INTO [Token(TABLE_XXX)] (`field1`, field2) VALUES (?, ?)"));
@@ -175,23 +175,23 @@ public final class InsertStatementParserTest extends AbstractStatementParserTest
public void parseMultipleInsertForMySQL() {
ShardingRule shardingRule = createShardingRule();
List parameters = Collections.emptyList();
- new SQLStatementParser(DatabaseType.Oracle, shardingRule, parameters, new OracleExprParser(shardingRule, parameters,
- "INSERT INTO TABLE_XXX (`field1`, `field2`) VALUES (1, 'value_char'), (2, 'value_char')")).parseStatement();
+ new SQLStatementParser(DatabaseType.Oracle, shardingRule, parameters, new OracleParser(
+ "INSERT INTO TABLE_XXX (`field1`, `field2`) VALUES (1, 'value_char'), (2, 'value_char')", shardingRule, parameters)).parseStatement();
}
@Test(expected = ParserUnsupportedException.class)
public void parseInsertAllForOracle() {
ShardingRule shardingRule = createShardingRule();
List parameters = Collections.emptyList();
- new SQLStatementParser(DatabaseType.Oracle, shardingRule, parameters, new OracleExprParser(shardingRule, parameters,
- "INSERT ALL INTO TABLE_XXX (field1) VALUES (field1) SELECT field1 FROM TABLE_XXX2")).parseStatement();
+ new SQLStatementParser(DatabaseType.Oracle, shardingRule, parameters, new OracleParser(
+ "INSERT ALL INTO TABLE_XXX (field1) VALUES (field1) SELECT field1 FROM TABLE_XXX2", shardingRule, parameters)).parseStatement();
}
@Test(expected = ParserUnsupportedException.class)
public void parseInsertFirstForOracle() {
ShardingRule shardingRule = createShardingRule();
List parameters = Collections.emptyList();
- new SQLStatementParser(DatabaseType.Oracle, shardingRule, parameters, new OracleExprParser(shardingRule, parameters,
- "INSERT FIRST INTO TABLE_XXX (field1) VALUES (field1) SELECT field1 FROM TABLE_XXX2")).parseStatement();
+ new SQLStatementParser(DatabaseType.Oracle, shardingRule, parameters, new OracleParser(
+ "INSERT FIRST INTO TABLE_XXX (field1) VALUES (field1) SELECT field1 FROM TABLE_XXX2", shardingRule, parameters)).parseStatement();
}
}
diff --git a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/UpdateStatementParserTest.java b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/UpdateStatementParserTest.java
index c99c907f4e..5fa5b3a9fa 100644
--- a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/UpdateStatementParserTest.java
+++ b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parser/sql/parser/UpdateStatementParserTest.java
@@ -18,8 +18,8 @@
package com.dangdang.ddframe.rdb.sharding.parser.sql.parser;
import com.dangdang.ddframe.rdb.sharding.parser.sql.context.UpdateSQLContext;
-import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.mysql.parser.MySQLExprParser;
-import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.oracle.parser.OracleExprParser;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.mysql.parser.MySQLParser;
+import com.dangdang.ddframe.rdb.sharding.parser.sql.dialect.oracle.parser.OracleParser;
import com.dangdang.ddframe.rdb.sharding.api.rule.ShardingRule;
import com.dangdang.ddframe.rdb.sharding.constants.DatabaseType;
import com.dangdang.ddframe.rdb.sharding.parser.result.router.Condition;
@@ -42,8 +42,7 @@ public final class UpdateStatementParserTest extends AbstractStatementParserTest
public void parseWithoutCondition() throws SQLException {
ShardingRule shardingRule = createShardingRule();
List parameters = Collections.emptyList();
- SQLStatementParser statementParser = new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLExprParser(shardingRule, parameters,
- "UPDATE TABLE_XXX SET field1=field1+1"));
+ SQLStatementParser statementParser = new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLParser("UPDATE TABLE_XXX SET field1=field1+1", shardingRule, parameters));
UpdateSQLContext sqlContext = (UpdateSQLContext) statementParser.parseStatement();
assertThat(sqlContext.getTables().get(0).getName(), is("TABLE_XXX"));
assertTrue(sqlContext.getConditionContexts().isEmpty());
@@ -54,9 +53,10 @@ public final class UpdateStatementParserTest extends AbstractStatementParserTest
public void parseWithoutParameter() {
ShardingRule shardingRule = createShardingRule();
List parameters = Collections.emptyList();
- SQLStatementParser statementParser = new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLExprParser(shardingRule, parameters,
+ SQLStatementParser statementParser = new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLParser(
"UPDATE TABLE_XXX xxx SET TABLE_XXX.field1=field1+1,xxx.field2=2 WHERE "
- + "TABLE_XXX.field4<10 AND TABLE_XXX.field1=1 AND xxx.field5>10 AND TABLE_XXX.field2 IN (1,3) AND xxx.field6<=10 AND TABLE_XXX.field3 BETWEEN 5 AND 20 AND xxx.field7>=10"));
+ + "TABLE_XXX.field4<10 AND TABLE_XXX.field1=1 AND xxx.field5>10 AND TABLE_XXX.field2 IN (1,3) AND xxx.field6<=10 AND TABLE_XXX.field3 BETWEEN 5 AND 20 AND xxx.field7>=10",
+ shardingRule, parameters));
UpdateSQLContext sqlContext = (UpdateSQLContext) statementParser.parseStatement();
assertUpdateStatement(sqlContext);
assertThat(sqlContext.toSqlBuilder().toString(), is("UPDATE [Token(TABLE_XXX)] xxx SET [Token(TABLE_XXX)].field1=field1+1,xxx.field2=2 WHERE [Token(TABLE_XXX)].field4<10 "
@@ -67,8 +67,9 @@ public final class UpdateStatementParserTest extends AbstractStatementParserTest
public void parseWithParameter() {
ShardingRule shardingRule = createShardingRule();
List parameters = Arrays.asList(2, 10, 1, 10, 1, 3, 10, 5, 20, 10);
- SQLStatementParser statementParser = new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLExprParser(shardingRule, parameters,
- "UPDATE TABLE_XXX AS xxx SET field1=field1+? WHERE field4 AND xxx.field1=? AND field5>? AND xxx.field2 IN (?, ?) AND field6<=? AND xxx.field3 BETWEEN ? AND ? AND field7>=?"));
+ SQLStatementParser statementParser = new SQLStatementParser(DatabaseType.MySQL, shardingRule, parameters, new MySQLParser(
+ "UPDATE TABLE_XXX AS xxx SET field1=field1+? WHERE field4 AND xxx.field1=? AND field5>? AND xxx.field2 IN (?, ?) AND field6<=? AND xxx.field3 BETWEEN ? AND ? AND field7>=?",
+ shardingRule, parameters));
UpdateSQLContext sqlContext = (UpdateSQLContext) statementParser.parseStatement();
assertUpdateStatement(sqlContext);
assertThat(sqlContext.toSqlBuilder().toString(), is("UPDATE [Token(TABLE_XXX)] AS xxx SET field1=field1+? "
@@ -106,8 +107,8 @@ public final class UpdateStatementParserTest extends AbstractStatementParserTest
public void parseWithOr() {
ShardingRule shardingRule = createShardingRule();
List parameters = Collections.emptyList();
- new SQLStatementParser(DatabaseType.Oracle, shardingRule, parameters, new OracleExprParser(shardingRule, parameters,
- "UPDATE TABLE_XXX SET field1=1 WHERE field1<1 AND (field1 >2 OR field2 =1)")).parseStatement();
+ new SQLStatementParser(DatabaseType.Oracle, shardingRule, parameters, new OracleParser("UPDATE TABLE_XXX SET field1=1 WHERE field1<1 AND (field1 >2 OR field2 =1)",
+ shardingRule, parameters)).parseStatement();
}
@Test
--
GitLab