Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
b1bb938b
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 搜索 >>
提交
b1bb938b
编写于
3月 04, 2019
作者:
T
terrymanu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
for #1941, move execute logic from PostgreSQLComBindPacket to PostgreSQLComBindPacketExecutor
上级
e4da99bc
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
13 addition
and
9 deletion
+13
-9
sharding-proxy/sharding-proxy-transport/sharding-proxy-transport-postgresql/src/main/java/org/apache/shardingsphere/shardingproxy/transport/postgresql/packet/command/query/binary/bind/PostgreSQLComBindPacketExecutor.java
...nd/query/binary/bind/PostgreSQLComBindPacketExecutor.java
+13
-9
未找到文件。
sharding-proxy/sharding-proxy-transport/sharding-proxy-transport-postgresql/src/main/java/org/apache/shardingsphere/shardingproxy/transport/postgresql/packet/command/query/binary/bind/PostgreSQLComBindPacketExecutor.java
浏览文件 @
b1bb938b
...
...
@@ -65,22 +65,27 @@ public final class PostgreSQLComBindPacketExecutor implements QueryCommandPacket
if
(
GlobalContext
.
getInstance
().
isCircuitBreak
())
{
return
Collections
.<
PostgreSQLPacket
>
singletonList
(
new
PostgreSQLErrorResponsePacket
());
}
List
<
PostgreSQLPacket
>
result
=
new
LinkedList
<>();
result
.
add
(
new
PostgreSQLBindCompletePacket
());
isBinaryRowData
=
comBindPacket
.
isBinaryRowData
();
if
(
null
!=
comBindPacket
.
getBinaryStatement
()
&&
null
!=
comBindPacket
.
getBinaryStatement
().
getSql
())
{
databaseCommunicationEngine
=
DatabaseCommunicationEngineFactory
.
getInstance
().
newBinaryProtocolInstance
(
backendConnection
.
getLogicSchema
(),
comBindPacket
.
getBinaryStatement
().
getSql
(),
comBindPacket
.
getParameters
(),
backendConnection
);
BackendResponse
backendResponse
=
databaseCommunicationEngine
.
execute
();
if
(
backendResponse
instanceof
ErrorResponse
)
{
re
turn
Collections
.<
PostgreSQLPacket
>
singletonList
(
createErrorPacket
((
ErrorResponse
)
backendResponse
));
re
sult
.
add
(
createErrorPacket
((
ErrorResponse
)
backendResponse
));
}
if
(
backendResponse
instanceof
UpdateResponse
)
{
return
Collections
.<
PostgreSQLPacket
>
singletonList
(
createUpdatePacket
((
UpdateResponse
)
backendResponse
));
result
.
add
(
createUpdatePacket
((
UpdateResponse
)
backendResponse
));
}
if
(
backendResponse
instanceof
QueryResponse
)
{
Optional
<
PostgreSQLRowDescriptionPacket
>
postgreSQLRowDescriptionPacket
=
createQueryPacket
((
QueryResponse
)
backendResponse
);
if
(
postgreSQLRowDescriptionPacket
.
isPresent
())
{
result
.
add
(
postgreSQLRowDescriptionPacket
.
get
());
}
}
Optional
<
PostgreSQLRowDescriptionPacket
>
result
=
createQueryPacket
((
QueryResponse
)
backendResponse
);
return
result
.
isPresent
()
?
Collections
.<
PostgreSQLPacket
>
singletonList
(
result
.
get
())
:
Collections
.<
PostgreSQLPacket
>
emptyList
();
}
return
Collections
.<
PostgreSQLPacket
>
singletonList
(
new
PostgreSQLBindCompletePacket
())
;
return
result
;
}
private
PostgreSQLErrorResponsePacket
createErrorPacket
(
final
ErrorResponse
errorResponse
)
{
...
...
@@ -94,7 +99,7 @@ public final class PostgreSQLComBindPacketExecutor implements QueryCommandPacket
private
Optional
<
PostgreSQLRowDescriptionPacket
>
createQueryPacket
(
final
QueryResponse
queryResponse
)
{
List
<
PostgreSQLColumnDescription
>
columnDescriptions
=
getPostgreSQLColumnDescriptions
(
queryResponse
);
isQuery
=
!
columnDescriptions
.
isEmpty
();
if
(
columnDescriptions
.
isEmpty
()
||
!
isBinaryRowData
)
{
if
(
columnDescriptions
.
isEmpty
()
||
isBinaryRowData
)
{
return
Optional
.
absent
();
}
return
Optional
.
of
(
new
PostgreSQLRowDescriptionPacket
(
columnDescriptions
.
size
(),
columnDescriptions
));
...
...
@@ -122,8 +127,7 @@ public final class PostgreSQLComBindPacketExecutor implements QueryCommandPacket
@Override
public
PostgreSQLPacket
getQueryData
()
throws
SQLException
{
QueryData
queryData
=
databaseCommunicationEngine
.
getQueryData
();
return
isBinaryRowData
?
new
PostgreSQLBinaryResultSetRowPacket
(
queryData
.
getData
(),
getPostgreSQLColumnTypes
(
queryData
))
:
new
PostgreSQLDataRowPacket
(
queryData
.
getData
());
return
isBinaryRowData
?
new
PostgreSQLBinaryResultSetRowPacket
(
queryData
.
getData
(),
getPostgreSQLColumnTypes
(
queryData
))
:
new
PostgreSQLDataRowPacket
(
queryData
.
getData
());
}
private
List
<
PostgreSQLColumnType
>
getPostgreSQLColumnTypes
(
final
QueryData
queryData
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录