Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
f0f01963
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,发现更多精彩内容 >>
提交
f0f01963
编写于
7月 09, 2017
作者:
T
terrymanu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor merger into ShardingResultSet 17th version, refactor OrderByValue
上级
15a9b000
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
15 addition
and
18 deletion
+15
-18
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/merger/stream/OrderByStreamResultSetMerger.java
.../sharding/merger/stream/OrderByStreamResultSetMerger.java
+8
-10
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/merger/stream/OrderByValue.java
...dang/ddframe/rdb/sharding/merger/stream/OrderByValue.java
+2
-3
sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/merger/row/OrderByValueTest.java
...ang/ddframe/rdb/sharding/merger/row/OrderByValueTest.java
+5
-5
未找到文件。
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/merger/stream/OrderByStreamResultSetMerger.java
浏览文件 @
f0f01963
...
...
@@ -49,7 +49,7 @@ public class OrderByStreamResultSetMerger extends AbstractStreamResultSetMerger
private
void
orderResultSetsToQueue
(
final
Collection
<
ResultSet
>
resultSets
)
throws
SQLException
{
for
(
ResultSet
each
:
resultSets
)
{
OrderByValue
orderByValue
=
new
OrderByValue
(
each
,
orderByItems
);
if
(
orderByValue
.
next
(
false
))
{
if
(
orderByValue
.
next
())
{
orderByValuesQueue
.
offer
(
orderByValue
);
}
}
...
...
@@ -63,16 +63,14 @@ public class OrderByStreamResultSetMerger extends AbstractStreamResultSetMerger
if
(
orderByValuesQueue
.
isEmpty
())
{
return
false
;
}
OrderByValue
firstResultSet
=
orderByValuesQueue
.
poll
();
setCurrentResultSet
(
firstResultSet
.
getResultSet
());
if
(
firstResultSet
.
next
(
isFirstNext
))
{
orderByValuesQueue
.
offer
(
firstResultSet
);
if
(
isFirstNext
)
{
isFirstNext
=
false
;
return
true
;
}
OrderByValue
firstOrderByValue
=
orderByValuesQueue
.
poll
();
if
(
firstOrderByValue
.
next
())
{
orderByValuesQueue
.
offer
(
firstOrderByValue
);
}
isFirstNext
=
false
;
return
hasNext
();
}
private
boolean
hasNext
()
{
if
(
orderByValuesQueue
.
isEmpty
())
{
return
false
;
}
...
...
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/merger/stream/OrderByValue.java
浏览文件 @
f0f01963
...
...
@@ -47,12 +47,11 @@ public final class OrderByValue implements Comparable<OrderByValue> {
/**
* 遍历下一个结果集游标.
*
* @param isFirstNext 是否第一次调用
* @return 是否有下一个结果集
* @throws SQLException SQL异常
*/
public
boolean
next
(
final
boolean
isFirstNext
)
throws
SQLException
{
boolean
result
=
isFirstNext
||
resultSet
.
next
();
public
boolean
next
()
throws
SQLException
{
boolean
result
=
resultSet
.
next
();
orderValues
=
result
?
getOrderValues
()
:
Collections
.<
Comparable
<?>>
emptyList
();
return
result
;
}
...
...
sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/merger/row/OrderByValueTest.java
浏览文件 @
f0f01963
...
...
@@ -39,10 +39,10 @@ public final class OrderByValueTest {
public
void
assertCompareToForAsc
()
throws
SQLException
{
OrderByValue
orderByValue1
=
new
OrderByValue
(
createResultSet
(
"order_1"
,
"order_2"
,
"other_1"
),
Arrays
.
asList
(
new
OrderItem
(
1
,
OrderType
.
ASC
),
new
OrderItem
(
2
,
OrderType
.
ASC
)));
orderByValue1
.
next
(
false
);
orderByValue1
.
next
();
OrderByValue
orderByValue2
=
new
OrderByValue
(
createResultSet
(
"order_3"
,
"order_4"
,
"other_2"
),
Arrays
.
asList
(
new
OrderItem
(
1
,
OrderType
.
ASC
),
new
OrderItem
(
2
,
OrderType
.
ASC
)));
orderByValue2
.
next
(
false
);
orderByValue2
.
next
();
assertTrue
(
orderByValue1
.
compareTo
(
orderByValue2
)
<
0
);
}
...
...
@@ -50,10 +50,10 @@ public final class OrderByValueTest {
public
void
assertCompareToForDesc
()
throws
SQLException
{
OrderByValue
orderByValue1
=
new
OrderByValue
(
createResultSet
(
"order_1"
,
"order_2"
,
"other_1"
),
Arrays
.
asList
(
new
OrderItem
(
1
,
OrderType
.
DESC
),
new
OrderItem
(
2
,
OrderType
.
DESC
)));
orderByValue1
.
next
(
false
);
orderByValue1
.
next
();
OrderByValue
orderByValue2
=
new
OrderByValue
(
createResultSet
(
"order_3"
,
"order_4"
,
"other_2"
),
Arrays
.
asList
(
new
OrderItem
(
1
,
OrderType
.
DESC
),
new
OrderItem
(
2
,
OrderType
.
DESC
)));
orderByValue2
.
next
(
false
);
orderByValue2
.
next
();
assertTrue
(
orderByValue1
.
compareTo
(
orderByValue2
)
>
0
);
}
...
...
@@ -61,7 +61,7 @@ public final class OrderByValueTest {
public
void
assertCompareToWhenEqual
()
throws
SQLException
{
OrderByValue
orderByValue
=
new
OrderByValue
(
createResultSet
(
"order_1"
,
"order_2"
,
"other"
),
Arrays
.
asList
(
new
OrderItem
(
1
,
OrderType
.
DESC
),
new
OrderItem
(
2
,
OrderType
.
DESC
)));
orderByValue
.
next
(
false
);
orderByValue
.
next
();
assertThat
(
orderByValue
.
compareTo
(
orderByValue
),
is
(
0
));
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录