Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
a5f64317
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 搜索 >>
提交
a5f64317
编写于
8月 23, 2017
作者:
T
terrymanu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor parseSelectRest
上级
c8a9fafb
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
21 addition
and
28 deletion
+21
-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
+4
-8
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
-7
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/dialect/postgresql/PostgreSQLSelectParser.java
...ing/parser/dialect/postgresql/PostgreSQLSelectParser.java
+2
-6
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/dialect/sqlserver/SQLServerSelectParser.java
...rsing/parser/dialect/sqlserver/SQLServerSelectParser.java
+4
-7
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
+7
-0
未找到文件。
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/dialect/mysql/MySQLSelectParser.java
浏览文件 @
a5f64317
...
...
@@ -21,7 +21,6 @@ import com.dangdang.ddframe.rdb.sharding.api.rule.ShardingRule;
import
com.dangdang.ddframe.rdb.sharding.parsing.lexer.LexerEngine
;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.sql.HavingSQLParser
;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.sql.SelectListSQLParser
;
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
;
...
...
@@ -37,15 +36,12 @@ public final class MySQLSelectParser extends AbstractSelectParser {
private
final
MySQLLimitSQLParser
limitSQLParser
;
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
),
new
WhereSQLParser
(
lexerEngine
),
new
MySQLGroupBySQLParser
(
lexerEngine
),
new
HavingSQLParser
(
lexerEngine
),
new
MySQLOrderBy
SQLParser
(
lexerEngine
));
super
(
shardingRule
,
lexerEngine
,
new
MySQLDistinctSQLParser
(
lexerEngine
),
new
SelectListSQLParser
(
shardingRule
,
lexerEngine
),
new
MySQLTableSQLParser
(
shardingRule
,
lexerEngine
),
new
WhereSQLParser
(
lexerEngine
),
new
MySQLGroupBySQLParser
(
lexerEngine
),
new
HavingSQLParser
(
lexerEngine
),
new
MySQLOrderBySQLParser
(
lexerEngine
),
new
MySQLSelectRest
SQLParser
(
lexerEngine
));
selectOptionSQLParser
=
new
MySQLSelectOptionSQLParser
(
lexerEngine
);
limitSQLParser
=
new
MySQLLimitSQLParser
(
lexerEngine
);
selectRestSQLParser
=
new
MySQLSelectRestSQLParser
(
lexerEngine
);
}
@Override
...
...
@@ -59,7 +55,7 @@ public final class MySQLSelectParser extends AbstractSelectParser {
parseHaving
();
parseOrderBy
(
selectStatement
);
parseLimit
(
selectStatement
);
selectRestSQLParser
.
parse
();
parseSelectRest
();
}
private
void
parseSelectOption
()
{
...
...
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/dialect/oracle/OracleSelectParser.java
浏览文件 @
a5f64317
...
...
@@ -37,16 +37,13 @@ public final class OracleSelectParser extends AbstractSelectParser {
private
final
OracleForParser
forParser
;
private
final
SelectRestSQLParser
selectRestSQLParser
;
public
OracleSelectParser
(
final
ShardingRule
shardingRule
,
final
LexerEngine
lexerEngine
)
{
super
(
shardingRule
,
lexerEngine
,
new
Oracle
DistinctSQLParser
(
lexerEngine
),
new
OracleSelectListSQLParser
(
shardingRule
,
lexerEngine
),
new
OracleTableSQLParser
(
shardingRule
,
lexerEngine
),
new
OracleWhereSQLParser
(
lexerEngine
),
new
OracleGroupBySQLParser
(
lexerEngine
),
new
HavingSQLParser
(
lexerEngine
),
new
OracleOrderBy
SQLParser
(
lexerEngine
));
super
(
shardingRule
,
lexerEngine
,
new
OracleDistinctSQLParser
(
lexerEngine
),
new
OracleSelectListSQLParser
(
shardingRule
,
lexerEngine
),
new
OracleTableSQLParser
(
shardingRule
,
lexerEngine
),
new
Oracle
WhereSQLParser
(
lexerEngine
),
new
OracleGroupBySQLParser
(
lexerEngine
),
new
HavingSQLParser
(
lexerEngine
),
new
OracleOrderBySQLParser
(
lexerEngine
),
new
SelectRest
SQLParser
(
lexerEngine
));
hierarchicalQueryClauseParser
=
new
OracleHierarchicalQueryClauseParser
(
shardingRule
,
lexerEngine
);
modelClauseParser
=
new
OracleModelClauseParser
(
lexerEngine
);
forParser
=
new
OracleForParser
(
lexerEngine
);
selectRestSQLParser
=
new
SelectRestSQLParser
(
lexerEngine
);
}
@Override
...
...
@@ -61,7 +58,7 @@ public final class OracleSelectParser extends AbstractSelectParser {
parseModelClause
(
selectStatement
);
parseOrderBy
(
selectStatement
);
parseFor
(
selectStatement
);
selectRestSQLParser
.
parse
();
parseSelectRest
();
}
private
void
parseHierarchicalQueryClause
(
final
SelectStatement
selectStatement
)
{
...
...
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/dialect/postgresql/PostgreSQLSelectParser.java
浏览文件 @
a5f64317
...
...
@@ -23,7 +23,6 @@ import com.dangdang.ddframe.rdb.sharding.parsing.parser.sql.DistinctSQLParser;
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.SelectListSQLParser
;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.sql.SelectRestSQLParser
;
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.dql.select.AbstractSelectParser
;
...
...
@@ -40,15 +39,12 @@ public final class PostgreSQLSelectParser extends AbstractSelectParser {
private
final
PostgreSQLForSQLParser
forSQLParser
;
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
),
new
WhereSQLParser
(
lexerEngine
),
new
GroupBySQLParser
(
lexerEngine
),
new
HavingSQLParser
(
lexerEngine
),
new
PostgreSQLOrderBySQLParser
(
lexerEngine
));
new
HavingSQLParser
(
lexerEngine
),
new
PostgreSQLOrderBySQLParser
(
lexerEngine
)
,
new
PostgreSQLSelectRestSQLParser
(
lexerEngine
)
);
limitSQLParser
=
new
PostgreSQLLimitSQLParser
(
lexerEngine
);
forSQLParser
=
new
PostgreSQLForSQLParser
(
lexerEngine
);
selectRestSQLParser
=
new
PostgreSQLSelectRestSQLParser
(
lexerEngine
);
}
@Override
...
...
@@ -62,7 +58,7 @@ public final class PostgreSQLSelectParser extends AbstractSelectParser {
parseOrderBy
(
selectStatement
);
parseLimit
(
selectStatement
);
parseFor
();
selectRestSQLParser
.
parse
();
parseSelectRest
();
}
private
void
parseLimit
(
final
SelectStatement
selectStatement
)
{
...
...
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/dialect/sqlserver/SQLServerSelectParser.java
浏览文件 @
a5f64317
...
...
@@ -39,16 +39,13 @@ public final class SQLServerSelectParser extends AbstractSelectParser {
private
final
SQLServerForSQLParser
forSQLParser
;
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
),
new
S
QLServerWhereSQLParser
(
lexerEngine
),
new
GroupBySQLParser
(
lexerEngine
),
new
HavingSQLParser
(
lexerEngine
),
new
SQLServerOrderBy
SQLParser
(
lexerEngine
));
super
(
shardingRule
,
lexerEngine
,
new
DistinctSQLParser
(
lexerEngine
),
new
SQLServerSelectListSQLParser
(
shardingRule
,
lexerEngine
),
new
SQLServerTableSQLParser
(
shardingRule
,
lexerEngine
),
new
SQLServerWhereSQLParser
(
lexerEngine
),
new
GroupBySQLParser
(
lexerEngine
),
new
HavingSQLParser
(
lexerEngine
),
new
SQLServerOrderBySQLParser
(
lexerEngine
),
new
S
electRest
SQLParser
(
lexerEngine
));
sqlServerTopParser
=
new
SQLServerTopParser
(
lexerEngine
);
offsetSQLParser
=
new
SQLServerOffsetSQLParser
(
lexerEngine
);
forSQLParser
=
new
SQLServerForSQLParser
(
lexerEngine
);
selectRestSQLParser
=
new
SelectRestSQLParser
(
lexerEngine
);
}
@Override
...
...
@@ -63,7 +60,7 @@ public final class SQLServerSelectParser extends AbstractSelectParser {
parseOrderBy
(
selectStatement
);
parseOffset
(
selectStatement
);
parseFor
();
selectRestSQLParser
.
parse
();
parseSelectRest
();
}
private
void
parseTop
(
final
SelectStatement
selectStatement
)
{
...
...
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/statement/dql/select/AbstractSelectParser.java
浏览文件 @
a5f64317
...
...
@@ -32,6 +32,7 @@ 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.SelectListSQLParser
;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.sql.SelectRestSQLParser
;
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
;
...
...
@@ -80,6 +81,8 @@ public abstract class AbstractSelectParser implements SQLStatementParser {
private
final
OrderBySQLParser
orderBySQLParser
;
private
final
SelectRestSQLParser
selectRestSQLParser
;
private
final
List
<
SelectItem
>
items
=
new
LinkedList
<>();
@Override
...
...
@@ -147,6 +150,10 @@ public abstract class AbstractSelectParser implements SQLStatementParser {
orderBySQLParser
.
parse
(
selectStatement
);
}
protected
final
void
parseSelectRest
()
{
selectRestSQLParser
.
parse
();
}
private
void
appendDerivedColumns
(
final
SelectStatement
selectStatement
)
{
ItemsToken
itemsToken
=
new
ItemsToken
(
selectStatement
.
getSelectListLastPosition
());
appendAvgDerivedColumns
(
itemsToken
,
selectStatement
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录