Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
585d8c0c
Shardingsphere
项目概览
apache
/
Shardingsphere
通知
56
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Shardingsphere
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
585d8c0c
编写于
8月 23, 2017
作者:
T
terrymanu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor parseWhere
上级
d47bdbc3
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
27 addition
and
28 deletion
+27
-28
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/dialect/mysql/MySQLSelectParser.java
...rding/parsing/parser/dialect/mysql/MySQLSelectParser.java
+3
-5
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/dialect/oracle/OracleSelectParser.java
...ing/parsing/parser/dialect/oracle/OracleSelectParser.java
+4
-6
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/dialect/postgresql/PostgreSQLSelectParser.java
...ing/parser/dialect/postgresql/PostgreSQLSelectParser.java
+3
-5
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/dialect/sqlserver/SQLServerSelectParser.java
...rsing/parser/dialect/sqlserver/SQLServerSelectParser.java
+4
-6
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/statement/dql/select/AbstractSelectParser.java
...ing/parser/statement/dql/select/AbstractSelectParser.java
+13
-6
未找到文件。
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/dialect/mysql/MySQLSelectParser.java
浏览文件 @
585d8c0c
...
...
@@ -37,8 +37,6 @@ public final class MySQLSelectParser extends AbstractSelectParser {
private
final
MySQLSelectOptionSQLParser
selectOptionSQLParser
;
private
final
WhereSQLParser
whereSQLParser
;
private
final
GroupBySQLParser
groupBySQLParser
;
private
final
HavingSQLParser
havingSQLParser
;
...
...
@@ -50,9 +48,9 @@ public final class MySQLSelectParser extends AbstractSelectParser {
private
final
SelectRestSQLParser
selectRestSQLParser
;
public
MySQLSelectParser
(
final
ShardingRule
shardingRule
,
final
LexerEngine
lexerEngine
)
{
super
(
shardingRule
,
lexerEngine
,
new
MySQLDistinctSQLParser
(
lexerEngine
),
new
SelectListSQLParser
(
shardingRule
,
lexerEngine
),
new
MySQLTableSQLParser
(
shardingRule
,
lexerEngine
));
super
(
shardingRule
,
lexerEngine
,
new
MySQLDistinctSQLParser
(
lexerEngine
),
new
SelectListSQLParser
(
shardingRule
,
lexerEngine
),
new
MySQLTableSQLParser
(
shardingRule
,
lexerEngine
),
new
WhereSQLParser
(
lexerEngine
));
selectOptionSQLParser
=
new
MySQLSelectOptionSQLParser
(
lexerEngine
);
whereSQLParser
=
new
WhereSQLParser
(
lexerEngine
);
groupBySQLParser
=
new
MySQLGroupBySQLParser
(
lexerEngine
);
havingSQLParser
=
new
HavingSQLParser
(
lexerEngine
);
orderBySQLParser
=
new
MySQLOrderBySQLParser
(
lexerEngine
);
...
...
@@ -66,7 +64,7 @@ public final class MySQLSelectParser extends AbstractSelectParser {
selectOptionSQLParser
.
parse
();
parseSelectList
(
selectStatement
,
getItems
());
parseFrom
(
selectStatement
);
whereSQLParser
.
pars
e
(
getShardingRule
(),
selectStatement
,
getItems
());
parseWher
e
(
getShardingRule
(),
selectStatement
,
getItems
());
groupBySQLParser
.
parse
(
selectStatement
);
havingSQLParser
.
parse
();
orderBySQLParser
.
parse
(
selectStatement
);
...
...
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/dialect/oracle/OracleSelectParser.java
浏览文件 @
585d8c0c
...
...
@@ -23,7 +23,6 @@ import com.dangdang.ddframe.rdb.sharding.parsing.parser.sql.GroupBySQLParser;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.sql.HavingSQLParser
;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.sql.OrderBySQLParser
;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.sql.SelectRestSQLParser
;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.sql.WhereSQLParser
;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.statement.dql.select.AbstractSelectParser
;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.statement.dql.select.SelectStatement
;
...
...
@@ -34,8 +33,6 @@ import com.dangdang.ddframe.rdb.sharding.parsing.parser.statement.dql.select.Sel
*/
public
final
class
OracleSelectParser
extends
AbstractSelectParser
{
private
final
WhereSQLParser
whereSQLParser
;
private
final
OracleHierarchicalQueryClauseParser
hierarchicalQueryClauseParser
;
private
final
GroupBySQLParser
groupBySQLParser
;
...
...
@@ -51,8 +48,9 @@ public final class OracleSelectParser extends AbstractSelectParser {
private
final
SelectRestSQLParser
selectRestSQLParser
;
public
OracleSelectParser
(
final
ShardingRule
shardingRule
,
final
LexerEngine
lexerEngine
)
{
super
(
shardingRule
,
lexerEngine
,
new
OracleDistinctSQLParser
(
lexerEngine
),
new
OracleSelectListSQLParser
(
shardingRule
,
lexerEngine
),
new
OracleTableSQLParser
(
shardingRule
,
lexerEngine
));
whereSQLParser
=
new
OracleWhereSQLParser
(
lexerEngine
);
super
(
shardingRule
,
lexerEngine
,
new
OracleDistinctSQLParser
(
lexerEngine
),
new
OracleSelectListSQLParser
(
shardingRule
,
lexerEngine
),
new
OracleTableSQLParser
(
shardingRule
,
lexerEngine
),
new
OracleWhereSQLParser
(
lexerEngine
));
hierarchicalQueryClauseParser
=
new
OracleHierarchicalQueryClauseParser
(
shardingRule
,
lexerEngine
);
groupBySQLParser
=
new
OracleGroupBySQLParser
(
lexerEngine
);
havingSQLParser
=
new
HavingSQLParser
(
lexerEngine
);
...
...
@@ -67,7 +65,7 @@ public final class OracleSelectParser extends AbstractSelectParser {
parseDistinct
();
parseSelectList
(
selectStatement
,
getItems
());
parseFrom
(
selectStatement
);
whereSQLParser
.
pars
e
(
getShardingRule
(),
selectStatement
,
getItems
());
parseWher
e
(
getShardingRule
(),
selectStatement
,
getItems
());
hierarchicalQueryClauseParser
.
parse
(
selectStatement
);
groupBySQLParser
.
parse
(
selectStatement
);
havingSQLParser
.
parse
();
...
...
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/dialect/postgresql/PostgreSQLSelectParser.java
浏览文件 @
585d8c0c
...
...
@@ -37,8 +37,6 @@ import com.dangdang.ddframe.rdb.sharding.parsing.parser.statement.dql.select.Sel
*/
public
final
class
PostgreSQLSelectParser
extends
AbstractSelectParser
{
private
final
WhereSQLParser
whereSQLParser
;
private
final
GroupBySQLParser
groupBySQLParser
;
private
final
HavingSQLParser
havingSQLParser
;
...
...
@@ -52,8 +50,8 @@ public final class PostgreSQLSelectParser extends AbstractSelectParser {
private
final
SelectRestSQLParser
selectRestSQLParser
;
public
PostgreSQLSelectParser
(
final
ShardingRule
shardingRule
,
final
LexerEngine
lexerEngine
)
{
super
(
shardingRule
,
lexerEngine
,
new
DistinctSQLParser
(
lexerEngine
),
new
SelectListSQLParser
(
shardingRule
,
lexerEngine
),
new
TableSQLParser
(
shardingRule
,
lexerEngine
));
whereSQLParser
=
new
WhereSQLParser
(
lexerEngine
);
super
(
shardingRule
,
lexerEngine
,
new
DistinctSQLParser
(
lexerEngine
),
new
SelectListSQLParser
(
shardingRule
,
lexerEngine
),
new
TableSQLParser
(
shardingRule
,
lexerEngine
),
new
WhereSQLParser
(
lexerEngine
)
);
groupBySQLParser
=
new
GroupBySQLParser
(
lexerEngine
);
havingSQLParser
=
new
HavingSQLParser
(
lexerEngine
);
orderBySQLParser
=
new
PostgreSQLOrderBySQLParser
(
lexerEngine
);
...
...
@@ -67,7 +65,7 @@ public final class PostgreSQLSelectParser extends AbstractSelectParser {
parseDistinct
();
parseSelectList
(
selectStatement
,
getItems
());
parseFrom
(
selectStatement
);
whereSQLParser
.
pars
e
(
getShardingRule
(),
selectStatement
,
getItems
());
parseWher
e
(
getShardingRule
(),
selectStatement
,
getItems
());
groupBySQLParser
.
parse
(
selectStatement
);
havingSQLParser
.
parse
();
orderBySQLParser
.
parse
(
selectStatement
);
...
...
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/dialect/sqlserver/SQLServerSelectParser.java
浏览文件 @
585d8c0c
...
...
@@ -25,7 +25,6 @@ import com.dangdang.ddframe.rdb.sharding.parsing.parser.sql.GroupBySQLParser;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.sql.HavingSQLParser
;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.sql.OrderBySQLParser
;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.sql.SelectRestSQLParser
;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.sql.WhereSQLParser
;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.statement.dql.select.AbstractSelectParser
;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.statement.dql.select.SelectStatement
;
...
...
@@ -38,8 +37,6 @@ public final class SQLServerSelectParser extends AbstractSelectParser {
private
final
SQLServerTopParser
sqlServerTopParser
;
private
final
WhereSQLParser
whereSQLParser
;
private
final
GroupBySQLParser
groupBySQLParser
;
private
final
HavingSQLParser
havingSQLParser
;
...
...
@@ -53,9 +50,10 @@ public final class SQLServerSelectParser extends AbstractSelectParser {
private
final
SelectRestSQLParser
selectRestSQLParser
;
public
SQLServerSelectParser
(
final
ShardingRule
shardingRule
,
final
LexerEngine
lexerEngine
)
{
super
(
shardingRule
,
lexerEngine
,
new
DistinctSQLParser
(
lexerEngine
),
new
SQLServerSelectListSQLParser
(
shardingRule
,
lexerEngine
),
new
SQLServerTableSQLParser
(
shardingRule
,
lexerEngine
));
super
(
shardingRule
,
lexerEngine
,
new
DistinctSQLParser
(
lexerEngine
),
new
SQLServerSelectListSQLParser
(
shardingRule
,
lexerEngine
),
new
SQLServerTableSQLParser
(
shardingRule
,
lexerEngine
),
new
SQLServerWhereSQLParser
(
lexerEngine
));
sqlServerTopParser
=
new
SQLServerTopParser
(
lexerEngine
);
whereSQLParser
=
new
SQLServerWhereSQLParser
(
lexerEngine
);
groupBySQLParser
=
new
GroupBySQLParser
(
lexerEngine
);
havingSQLParser
=
new
HavingSQLParser
(
lexerEngine
);
orderBySQLParser
=
new
MySQLOrderBySQLParser
(
lexerEngine
);
...
...
@@ -70,7 +68,7 @@ public final class SQLServerSelectParser extends AbstractSelectParser {
parseTop
(
selectStatement
);
parseSelectList
(
selectStatement
,
getItems
());
parseFrom
(
selectStatement
);
whereSQLParser
.
pars
e
(
getShardingRule
(),
selectStatement
,
getItems
());
parseWher
e
(
getShardingRule
(),
selectStatement
,
getItems
());
groupBySQLParser
.
parse
(
selectStatement
);
havingSQLParser
.
parse
();
orderBySQLParser
.
parse
(
selectStatement
);
...
...
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/statement/dql/select/AbstractSelectParser.java
浏览文件 @
585d8c0c
...
...
@@ -30,6 +30,7 @@ import com.dangdang.ddframe.rdb.sharding.parsing.parser.exception.SQLParsingUnsu
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.sql.DistinctSQLParser
;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.sql.SelectListSQLParser
;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.sql.TableSQLParser
;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.sql.WhereSQLParser
;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.statement.SQLStatementParser
;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.token.ItemsToken
;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.token.OrderByToken
;
...
...
@@ -68,6 +69,8 @@ public abstract class AbstractSelectParser implements SQLStatementParser {
private
final
TableSQLParser
tableSQLParser
;
private
final
WhereSQLParser
whereSQLParser
;
private
final
List
<
SelectItem
>
items
=
new
LinkedList
<>();
@Override
...
...
@@ -91,6 +94,14 @@ public abstract class AbstractSelectParser implements SQLStatementParser {
protected
abstract
void
parseInternal
(
final
SelectStatement
selectStatement
);
protected
final
void
parseDistinct
()
{
distinctSQLParser
.
parse
();
}
protected
final
void
parseSelectList
(
final
SelectStatement
selectStatement
,
final
List
<
SelectItem
>
items
)
{
selectListSQLParser
.
parse
(
selectStatement
,
items
);
}
protected
final
void
parseFrom
(
final
SelectStatement
selectStatement
)
{
if
(
lexerEngine
.
equalAny
(
DefaultKeyword
.
INTO
))
{
throw
new
SQLParsingUnsupportedException
(
DefaultKeyword
.
INTO
);
...
...
@@ -111,12 +122,8 @@ public abstract class AbstractSelectParser implements SQLStatementParser {
tableSQLParser
.
parseJoinTable
(
selectStatement
);
}
protected
final
void
parseDistinct
()
{
distinctSQLParser
.
parse
();
}
protected
final
void
parseSelectList
(
final
SelectStatement
selectStatement
,
final
List
<
SelectItem
>
items
)
{
selectListSQLParser
.
parse
(
selectStatement
,
items
);
protected
final
void
parseWhere
(
final
ShardingRule
shardingRule
,
final
SelectStatement
selectStatement
,
final
List
<
SelectItem
>
items
)
{
whereSQLParser
.
parse
(
shardingRule
,
selectStatement
,
items
);
}
private
void
appendDerivedColumns
(
final
SelectStatement
selectStatement
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录