Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
3f09c253
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,发现更多精彩内容 >>
提交
3f09c253
编写于
4月 29, 2017
作者:
T
terrymanu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
sqlStatementType => sqlType
上级
60c20712
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
12 addition
and
12 deletion
+12
-12
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/SQLParseEngine.java
.../dangdang/ddframe/rdb/sharding/parser/SQLParseEngine.java
+1
-1
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/result/SQLParsedResult.java
...g/ddframe/rdb/sharding/parser/result/SQLParsedResult.java
+3
-3
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/router/SQLRouteEngine.java
.../dangdang/ddframe/rdb/sharding/router/SQLRouteEngine.java
+7
-7
sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parser/result/SQLParsedResultTest.java
...frame/rdb/sharding/parser/result/SQLParsedResultTest.java
+1
-1
未找到文件。
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/SQLParseEngine.java
浏览文件 @
3f09c253
...
...
@@ -70,7 +70,7 @@ public final class SQLParseEngine {
for
(
TableContext
each
:
sqlContext
.
getTables
())
{
result
.
getTables
().
add
(
each
);
}
result
.
setSql
Statement
Type
(
sqlContext
.
getType
());
result
.
setSqlType
(
sqlContext
.
getType
());
return
result
;
}
...
...
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parser/result/SQLParsedResult.java
浏览文件 @
3f09c253
...
...
@@ -42,14 +42,14 @@ import java.util.List;
@ToString
public
final
class
SQLParsedResult
{
private
final
Collection
<
TableContext
>
tables
=
new
LinkedHashSet
<>();
private
SQLType
sqlStatementType
;
private
SQLType
sqlType
;
private
SQLBuilder
sqlBuilder
;
private
GeneratedKeyContext
generatedKeyContext
=
new
GeneratedKeyContext
();
private
final
Collection
<
TableContext
>
tables
=
new
LinkedHashSet
<>();
private
final
List
<
ConditionContext
>
conditionContexts
=
new
ArrayList
<>();
private
final
MergeContext
mergeContext
=
new
MergeContext
();
...
...
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/router/SQLRouteEngine.java
浏览文件 @
3f09c253
...
...
@@ -98,8 +98,8 @@ public final class SQLRouteEngine {
private
SQLParsedResult
buildHintParsedResult
(
final
String
logicSql
)
{
SQLParsedResult
result
=
new
SQLParsedResult
();
result
.
setSql
Statement
Type
(
SQLUtil
.
getTypeByStart
(
logicSql
));
log
.
trace
(
"Get {} SQL Statement"
,
result
.
getSql
Statement
Type
());
result
.
setSqlType
(
SQLUtil
.
getTypeByStart
(
logicSql
));
log
.
trace
(
"Get {} SQL Statement"
,
result
.
getSqlType
());
SQLBuilder
sqlBuilder
=
new
SQLBuilder
();
try
{
sqlBuilder
.
append
(
logicSql
);
...
...
@@ -112,7 +112,7 @@ public final class SQLRouteEngine {
SQLRouteResult
routeSQL
(
final
SQLParsedResult
parsedResult
,
final
List
<
Object
>
parameters
)
{
Context
context
=
MetricsContext
.
start
(
"Route SQL"
);
SQLRouteResult
result
=
new
SQLRouteResult
(
parsedResult
.
getSql
Statement
Type
(),
parsedResult
.
getMergeContext
(),
parsedResult
.
getGeneratedKeyContext
());
SQLRouteResult
result
=
new
SQLRouteResult
(
parsedResult
.
getSqlType
(),
parsedResult
.
getMergeContext
(),
parsedResult
.
getGeneratedKeyContext
());
for
(
ConditionContext
each
:
parsedResult
.
getConditionContexts
())
{
RoutingResult
routingResult
=
routeSQL
(
each
,
parsedResult
);
result
.
getExecutionUnits
().
addAll
(
routingResult
.
getSQLExecutionUnits
(
parsedResult
.
getSqlBuilder
()));
...
...
@@ -129,7 +129,7 @@ public final class SQLRouteEngine {
private
RoutingResult
routeSQL
(
final
ConditionContext
conditionContext
,
final
SQLParsedResult
parsedResult
)
{
if
(
HintManagerHolder
.
isDatabaseShardingOnly
())
{
return
new
DatabaseRouter
(
shardingRule
.
getDataSourceRule
(),
shardingRule
.
getDatabaseShardingStrategy
(),
parsedResult
.
getSql
Statement
Type
()).
route
();
return
new
DatabaseRouter
(
shardingRule
.
getDataSourceRule
(),
shardingRule
.
getDatabaseShardingStrategy
(),
parsedResult
.
getSqlType
()).
route
();
}
Set
<
String
>
logicTables
=
Sets
.
newLinkedHashSet
(
Collections2
.
transform
(
parsedResult
.
getTables
(),
new
Function
<
TableContext
,
String
>()
{
...
...
@@ -139,13 +139,13 @@ public final class SQLRouteEngine {
}
}));
if
(
1
==
logicTables
.
size
())
{
return
new
SingleTableRouter
(
shardingRule
,
logicTables
.
iterator
().
next
(),
conditionContext
,
parsedResult
.
getSql
Statement
Type
()).
route
();
return
new
SingleTableRouter
(
shardingRule
,
logicTables
.
iterator
().
next
(),
conditionContext
,
parsedResult
.
getSqlType
()).
route
();
}
if
(
shardingRule
.
isAllBindingTables
(
logicTables
))
{
return
new
BindingTablesRouter
(
shardingRule
,
logicTables
,
conditionContext
,
parsedResult
.
getSql
Statement
Type
()).
route
();
return
new
BindingTablesRouter
(
shardingRule
,
logicTables
,
conditionContext
,
parsedResult
.
getSqlType
()).
route
();
}
// TODO 可配置是否执行笛卡尔积
return
new
MixedTablesRouter
(
shardingRule
,
logicTables
,
conditionContext
,
parsedResult
.
getSql
Statement
Type
()).
route
();
return
new
MixedTablesRouter
(
shardingRule
,
logicTables
,
conditionContext
,
parsedResult
.
getSqlType
()).
route
();
}
private
void
amendSQLAccordingToRouteResult
(
final
SQLParsedResult
parsedResult
,
final
List
<
Object
>
parameters
,
final
SQLRouteResult
sqlRouteResult
)
{
...
...
sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parser/result/SQLParsedResultTest.java
浏览文件 @
3f09c253
...
...
@@ -50,7 +50,7 @@ public final class SQLParsedResultTest {
actual
.
getConditionContexts
().
add
(
generateConditionContext
());
generateMergeContext
(
actual
.
getMergeContext
());
assertThat
(
actual
.
toString
(),
is
(
"SQLParsedResult(routeContext=RouteContext(tables=[TableContext(originalLiterals=order, name=order, alias=Optional.of(o)), "
+
"TableContext(originalLiterals=order_item, name=order_item, alias=Optional.absent())], sql
Statement
Type=null, sqlBuilder=SELECT * FROM [Token(order)]), "
+
"TableContext(originalLiterals=order_item, name=order_item, alias=Optional.absent())], sqlType=null, sqlBuilder=SELECT * FROM [Token(order)]), "
+
"generatedKeyContext=GeneratedKeyContext(columns=[], columnNameToIndexMap={}, valueTable={}, rowIndex=0, columnIndex=0, autoGeneratedKeys=0, columnIndexes=null, columnNames=null), "
+
"conditionContexts=[ConditionContext(conditions={Condition.Column(columnName=id, tableName=order)=Condition(column=Condition.Column(columnName=id, tableName=order), "
+
"operator=IN, values=[1, 2, 3], valueIndices=[])})], mergeContext=MergeContext(orderByContexts=[OrderByContext(super=AbstractSortableColumn(owner=Optional.absent(), "
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录