Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
850da75a
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,发现更多精彩内容 >>
提交
850da75a
编写于
6月 04, 2019
作者:
T
tristaZero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add assertInsertWithQueryAssistedShardingEncryptor()
上级
0a523f41
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
25 addition
and
2 deletion
+25
-2
sharding-core/sharding-core-rewrite/src/test/java/org/apache/shardingsphere/core/rewrite/rewriter/ShardingSQLRewriterTest.java
...sphere/core/rewrite/rewriter/ShardingSQLRewriterTest.java
+25
-2
未找到文件。
sharding-core/sharding-core-rewrite/src/test/java/org/apache/shardingsphere/core/rewrite/rewriter/ShardingSQLRewriterTest.java
浏览文件 @
850da75a
...
...
@@ -547,7 +547,7 @@ public final class ShardingSQLRewriterTest {
selectStatement
.
setLogicSQL
(
"SELECT table_x.id, x.name FROM table_x x, table_y y WHERE table_x.id=? AND x.name=?"
);
SQLRewriteEngine
rewriteEngine
=
new
SQLRewriteEngine
(
shardingRule
,
routeResult
.
getSqlStatement
(),
parameters
);
rewriteEngine
.
init
(
new
ShardingSQLRewriter
(
shardingRule
,
DatabaseType
.
MySQL
,
routeResult
),
new
ShardingSQLRewriter
(
shardingRule
,
DatabaseType
.
MySQL
,
routeResult
,
null
),
new
EncryptSQLRewriter
(
shardingRule
.
getEncryptRule
().
getEncryptorEngine
(),
routeResult
.
getSqlStatement
(),
routeResult
.
getOptimizeResult
()));
RoutingUnit
routingUnit
=
new
RoutingUnit
(
"db0"
);
routingUnit
.
getTableUnits
().
add
(
new
TableUnit
(
"table_x"
,
"table_x"
));
...
...
@@ -867,6 +867,29 @@ public final class ShardingSQLRewriterTest {
assertThat
(
getSQLBuilder
(
rewriteEngine
).
toSQL
(
null
,
tableTokens
),
is
(
"UPDATE table_z SET id = 'encryptValue' WHERE id = 'encryptValue'"
));
}
@Test
public
void
assertInsertWithQueryAssistedShardingEncryptor
()
{
insertStatement
.
getColumnNames
().
add
(
"name"
);
ColumnSegment
columnSegment
=
new
ColumnSegment
(
26
,
29
,
"name"
);
LiteralExpressionSegment
expressionSegment
=
new
LiteralExpressionSegment
(
33
,
34
,
10
);
insertStatement
.
getSqlSegments
().
add
(
new
SetAssignmentsSegment
(
22
,
34
,
Collections
.
singleton
(
new
AssignmentSegment
(
22
,
34
,
columnSegment
,
expressionSegment
))));
insertStatement
.
getTables
().
add
(
new
Table
(
"table_w"
,
null
));
insertStatement
.
addSQLToken
(
new
TableToken
(
12
,
20
,
"`table_w`"
,
QuoteCharacter
.
BACK_QUOTE
));
InsertOptimizeResult
insertOptimizeResult
=
new
InsertOptimizeResult
(
Arrays
.
asList
(
"name"
,
"id"
,
"query_name"
));
ExpressionSegment
[]
expressionSegments
=
{
new
LiteralExpressionSegment
(
0
,
0
,
10
),
new
LiteralExpressionSegment
(
0
,
0
,
1
),
new
LiteralExpressionSegment
(
0
,
0
,
10
)};
insertOptimizeResult
.
addUnit
(
expressionSegments
,
new
Object
[
0
],
0
);
insertOptimizeResult
.
getUnits
().
get
(
0
).
getDataNodes
().
add
(
new
DataNode
(
"db0.table_1"
));
RoutingUnit
routingUnit
=
new
RoutingUnit
(
"db0"
);
routingUnit
.
getTableUnits
().
add
(
new
TableUnit
(
"table_w"
,
"table_1"
));
routeResult
=
new
SQLRouteResult
(
insertStatement
);
routeResult
.
setOptimizeResult
(
new
OptimizeResult
(
insertOptimizeResult
));
routeResult
.
setRoutingResult
(
new
RoutingResult
());
insertStatement
.
setLogicSQL
(
"INSERT INTO `table_w` set name = 10 ON DUPLICATE KEY UPDATE name = VALUES(name)"
);
SQLRewriteEngine
rewriteEngine
=
createSQLRewriteEngine
(
DatabaseType
.
MySQL
,
Collections
.
emptyList
());
assertThat
(
getSQLBuilder
(
rewriteEngine
).
toSQL
(
routingUnit
,
tableTokens
),
is
(
"INSERT INTO `table_w` set name = 'encryptValue', id = 1, query_name = 'assistedEncryptValue' ON DUPLICATE KEY UPDATE name = VALUES(name)"
));
}
@Test
public
void
assertSelectInWithAggregationDistinct
()
{
selectStatement
.
addSQLToken
(
new
TableToken
(
49
,
55
,
"table_z"
,
QuoteCharacter
.
NONE
));
...
...
@@ -887,7 +910,7 @@ public final class ShardingSQLRewriterTest {
private
SQLRewriteEngine
createSQLRewriteEngine
(
final
DatabaseType
databaseType
,
final
List
<
Object
>
parameters
)
{
SQLRewriteEngine
result
=
new
SQLRewriteEngine
(
shardingRule
,
routeResult
.
getSqlStatement
(),
parameters
);
result
.
init
(
new
ShardingSQLRewriter
(
shardingRule
,
databaseType
,
routeResult
),
new
ShardingSQLRewriter
(
shardingRule
,
databaseType
,
routeResult
,
routeResult
.
getOptimizeResult
()
),
new
EncryptSQLRewriter
(
shardingRule
.
getEncryptRule
().
getEncryptorEngine
(),
routeResult
.
getSqlStatement
(),
routeResult
.
getOptimizeResult
()));
return
result
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录