Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
00f90493
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 搜索 >>
提交
00f90493
编写于
7月 20, 2018
作者:
T
terrymanu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor JDBCBackendHandler
上级
bad1ba70
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
26 deletion
+10
-26
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/jdbc/JDBCBackendHandler.java
...gsphere/proxy/backend/common/jdbc/JDBCBackendHandler.java
+10
-26
未找到文件。
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/jdbc/JDBCBackendHandler.java
浏览文件 @
00f90493
...
...
@@ -39,7 +39,6 @@ import io.shardingsphere.proxy.transport.mysql.constant.ColumnType;
import
io.shardingsphere.proxy.transport.mysql.constant.ServerErrorCode
;
import
io.shardingsphere.proxy.transport.mysql.packet.command.reponse.CommandResponsePackets
;
import
io.shardingsphere.proxy.transport.mysql.packet.command.reponse.QueryResponsePackets
;
import
io.shardingsphere.proxy.transport.mysql.packet.command.text.query.FieldCountPacket
;
import
io.shardingsphere.proxy.transport.mysql.packet.generic.EofPacket
;
import
io.shardingsphere.proxy.transport.mysql.packet.generic.ErrPacket
;
import
io.shardingsphere.proxy.transport.mysql.packet.generic.OKPacket
;
...
...
@@ -52,7 +51,6 @@ import java.sql.SQLException;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.Collections
;
import
java.util.Iterator
;
import
java.util.LinkedList
;
import
java.util.List
;
...
...
@@ -138,34 +136,20 @@ public abstract class JDBCBackendHandler implements BackendHandler {
}
CommandResponsePackets
firstCommandResponsePackets
=
packets
.
iterator
().
next
();
if
(
firstCommandResponsePackets
instanceof
QueryResponsePackets
)
{
return
mergeQuery
(
sqlStatement
,
packets
);
currentSequenceId
+=
firstCommandResponsePackets
.
getPackets
().
size
();
try
{
mergedResult
=
mergeQuery
(
sqlStatement
);
return
firstCommandResponsePackets
;
}
catch
(
final
SQLException
ex
)
{
return
new
CommandResponsePackets
(
new
ErrPacket
(
1
,
ex
));
}
}
return
mergeUpdate
(
headPackets
);
}
private
CommandResponsePackets
mergeQuery
(
final
SQLStatement
sqlStatement
,
final
Collection
<
CommandResponsePackets
>
packets
)
{
try
{
mergedResult
=
MergeEngineFactory
.
newInstance
(
ruleRegistry
.
getShardingRule
(),
responses
.
getQueryResults
(),
sqlStatement
,
ruleRegistry
.
getShardingMetaData
()).
merge
();
isMerged
=
true
;
}
catch
(
final
SQLException
ex
)
{
return
new
CommandResponsePackets
(
new
ErrPacket
(
1
,
ex
));
}
return
buildPackets
(
packets
);
}
private
CommandResponsePackets
buildPackets
(
final
Collection
<
CommandResponsePackets
>
packets
)
{
CommandResponsePackets
result
=
new
CommandResponsePackets
();
Iterator
<
DatabasePacket
>
databasePacketsSampling
=
packets
.
iterator
().
next
().
getPackets
().
iterator
();
FieldCountPacket
fieldCountPacketSampling
=
(
FieldCountPacket
)
databasePacketsSampling
.
next
();
result
.
getPackets
().
add
(
fieldCountPacketSampling
);
++
currentSequenceId
;
for
(
int
i
=
0
;
i
<
responses
.
getColumnCount
();
i
++)
{
result
.
getPackets
().
add
(
databasePacketsSampling
.
next
());
++
currentSequenceId
;
}
result
.
getPackets
().
add
(
databasePacketsSampling
.
next
());
++
currentSequenceId
;
return
result
;
private
MergedResult
mergeQuery
(
final
SQLStatement
sqlStatement
)
throws
SQLException
{
isMerged
=
true
;
return
MergeEngineFactory
.
newInstance
(
ruleRegistry
.
getShardingRule
(),
responses
.
getQueryResults
(),
sqlStatement
,
ruleRegistry
.
getShardingMetaData
()).
merge
();
}
private
CommandResponsePackets
mergeUpdate
(
final
Collection
<
DatabasePacket
>
packets
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录