Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
605bfd7d
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,发现更多精彩内容 >>
未验证
提交
605bfd7d
编写于
4月 27, 2018
作者:
ShardingSphere
提交者:
GitHub
4月 27, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #764 from tuohai666/dev
for #675 fix bug that DAL didn't merge
上级
4038db19
69f9db47
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
16 addition
and
14 deletion
+16
-14
sharding-proxy/src/main/java/io/shardingjdbc/proxy/backend/common/SQLExecuteBackendHandler.java
...ngjdbc/proxy/backend/common/SQLExecuteBackendHandler.java
+8
-7
sharding-proxy/src/main/java/io/shardingjdbc/proxy/backend/common/StatementExecuteBackendHandler.java
.../proxy/backend/common/StatementExecuteBackendHandler.java
+8
-7
未找到文件。
sharding-proxy/src/main/java/io/shardingjdbc/proxy/backend/common/SQLExecuteBackendHandler.java
浏览文件 @
605bfd7d
...
@@ -75,7 +75,7 @@ public final class SQLExecuteBackendHandler implements BackendHandler {
...
@@ -75,7 +75,7 @@ public final class SQLExecuteBackendHandler implements BackendHandler {
private
int
columnCount
;
private
int
columnCount
;
private
boolean
is
DQL
;
private
boolean
is
Merged
;
private
boolean
hasMoreResultValueFlag
;
private
boolean
hasMoreResultValueFlag
;
...
@@ -84,7 +84,7 @@ public final class SQLExecuteBackendHandler implements BackendHandler {
...
@@ -84,7 +84,7 @@ public final class SQLExecuteBackendHandler implements BackendHandler {
routingEngine
=
new
StatementRoutingEngine
(
ShardingRuleRegistry
.
getInstance
().
getShardingRule
(),
ShardingRuleRegistry
.
getInstance
().
getShardingMetaData
(),
databaseType
,
showSQL
);
routingEngine
=
new
StatementRoutingEngine
(
ShardingRuleRegistry
.
getInstance
().
getShardingRule
(),
ShardingRuleRegistry
.
getInstance
().
getShardingMetaData
(),
databaseType
,
showSQL
);
connections
=
new
ArrayList
<>(
1024
);
connections
=
new
ArrayList
<>(
1024
);
resultSets
=
new
ArrayList
<>(
1024
);
resultSets
=
new
ArrayList
<>(
1024
);
is
DQL
=
false
;
is
Merged
=
false
;
hasMoreResultValueFlag
=
true
;
hasMoreResultValueFlag
=
true
;
}
}
...
@@ -105,6 +105,7 @@ public final class SQLExecuteBackendHandler implements BackendHandler {
...
@@ -105,6 +105,7 @@ public final class SQLExecuteBackendHandler implements BackendHandler {
private
CommandResponsePackets
execute
(
final
SQLStatement
sqlStatement
,
final
SQLExecutionUnit
sqlExecutionUnit
)
{
private
CommandResponsePackets
execute
(
final
SQLStatement
sqlStatement
,
final
SQLExecutionUnit
sqlExecutionUnit
)
{
switch
(
sqlStatement
.
getType
())
{
switch
(
sqlStatement
.
getType
())
{
case
DQL:
case
DQL:
case
DAL:
return
executeQuery
(
ShardingRuleRegistry
.
getInstance
().
getDataSourceMap
().
get
(
sqlExecutionUnit
.
getDataSource
()),
sqlExecutionUnit
.
getSqlUnit
().
getSql
());
return
executeQuery
(
ShardingRuleRegistry
.
getInstance
().
getDataSourceMap
().
get
(
sqlExecutionUnit
.
getDataSource
()),
sqlExecutionUnit
.
getSqlUnit
().
getSql
());
case
DML:
case
DML:
case
DDL:
case
DDL:
...
@@ -228,8 +229,8 @@ public final class SQLExecuteBackendHandler implements BackendHandler {
...
@@ -228,8 +229,8 @@ public final class SQLExecuteBackendHandler implements BackendHandler {
if
(
SQLType
.
DML
==
sqlStatement
.
getType
())
{
if
(
SQLType
.
DML
==
sqlStatement
.
getType
())
{
return
mergeDML
(
headPackets
);
return
mergeDML
(
headPackets
);
}
}
if
(
SQLType
.
DQL
==
sqlStatement
.
getType
())
{
if
(
SQLType
.
DQL
==
sqlStatement
.
getType
()
||
SQLType
.
DAL
==
sqlStatement
.
getType
()
)
{
return
mergeDQL
(
sqlStatement
,
packets
);
return
mergeDQL
orDAL
(
sqlStatement
,
packets
);
}
}
return
packets
.
get
(
0
);
return
packets
.
get
(
0
);
}
}
...
@@ -245,7 +246,7 @@ public final class SQLExecuteBackendHandler implements BackendHandler {
...
@@ -245,7 +246,7 @@ public final class SQLExecuteBackendHandler implements BackendHandler {
return
new
CommandResponsePackets
(
new
OKPacket
(
1
,
affectedRows
,
0
,
StatusFlag
.
SERVER_STATUS_AUTOCOMMIT
.
getValue
(),
0
,
""
));
return
new
CommandResponsePackets
(
new
OKPacket
(
1
,
affectedRows
,
0
,
StatusFlag
.
SERVER_STATUS_AUTOCOMMIT
.
getValue
(),
0
,
""
));
}
}
private
CommandResponsePackets
mergeDQL
(
final
SQLStatement
sqlStatement
,
final
List
<
CommandResponsePackets
>
packets
)
{
private
CommandResponsePackets
mergeDQL
orDAL
(
final
SQLStatement
sqlStatement
,
final
List
<
CommandResponsePackets
>
packets
)
{
List
<
QueryResult
>
queryResults
=
new
ArrayList
<>(
packets
.
size
());
List
<
QueryResult
>
queryResults
=
new
ArrayList
<>(
packets
.
size
());
for
(
int
i
=
0
;
i
<
packets
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
packets
.
size
();
i
++)
{
// TODO replace to a common PacketQueryResult
// TODO replace to a common PacketQueryResult
...
@@ -253,7 +254,7 @@ public final class SQLExecuteBackendHandler implements BackendHandler {
...
@@ -253,7 +254,7 @@ public final class SQLExecuteBackendHandler implements BackendHandler {
}
}
try
{
try
{
mergedResult
=
MergeEngineFactory
.
newInstance
(
ShardingRuleRegistry
.
getInstance
().
getShardingRule
(),
queryResults
,
sqlStatement
).
merge
();
mergedResult
=
MergeEngineFactory
.
newInstance
(
ShardingRuleRegistry
.
getInstance
().
getShardingRule
(),
queryResults
,
sqlStatement
).
merge
();
is
DQL
=
true
;
is
Merged
=
true
;
}
catch
(
final
SQLException
ex
)
{
}
catch
(
final
SQLException
ex
)
{
return
new
CommandResponsePackets
(
new
ErrPacket
(
1
,
ex
.
getErrorCode
(),
""
,
ex
.
getSQLState
(),
ex
.
getMessage
()));
return
new
CommandResponsePackets
(
new
ErrPacket
(
1
,
ex
.
getErrorCode
(),
""
,
ex
.
getSQLState
(),
ex
.
getMessage
()));
}
}
...
@@ -282,7 +283,7 @@ public final class SQLExecuteBackendHandler implements BackendHandler {
...
@@ -282,7 +283,7 @@ public final class SQLExecuteBackendHandler implements BackendHandler {
* @throws SQLException sql exception
* @throws SQLException sql exception
*/
*/
public
boolean
hasMoreResultValue
()
throws
SQLException
{
public
boolean
hasMoreResultValue
()
throws
SQLException
{
if
(!
is
DQL
||
!
hasMoreResultValueFlag
)
{
if
(!
is
Merged
||
!
hasMoreResultValueFlag
)
{
return
false
;
return
false
;
}
}
if
(!
mergedResult
.
next
())
{
if
(!
mergedResult
.
next
())
{
...
...
sharding-proxy/src/main/java/io/shardingjdbc/proxy/backend/common/StatementExecuteBackendHandler.java
浏览文件 @
605bfd7d
...
@@ -79,7 +79,7 @@ public final class StatementExecuteBackendHandler implements BackendHandler {
...
@@ -79,7 +79,7 @@ public final class StatementExecuteBackendHandler implements BackendHandler {
private
final
List
<
ColumnType
>
columnTypes
;
private
final
List
<
ColumnType
>
columnTypes
;
private
boolean
is
DQL
;
private
boolean
is
Merged
;
private
boolean
hasMoreResultValueFlag
;
private
boolean
hasMoreResultValueFlag
;
...
@@ -89,7 +89,7 @@ public final class StatementExecuteBackendHandler implements BackendHandler {
...
@@ -89,7 +89,7 @@ public final class StatementExecuteBackendHandler implements BackendHandler {
connections
=
new
ArrayList
<>(
1024
);
connections
=
new
ArrayList
<>(
1024
);
resultSets
=
new
ArrayList
<>(
1024
);
resultSets
=
new
ArrayList
<>(
1024
);
columnTypes
=
new
ArrayList
<>(
32
);
columnTypes
=
new
ArrayList
<>(
32
);
is
DQL
=
false
;
is
Merged
=
false
;
hasMoreResultValueFlag
=
true
;
hasMoreResultValueFlag
=
true
;
}
}
...
@@ -111,6 +111,7 @@ public final class StatementExecuteBackendHandler implements BackendHandler {
...
@@ -111,6 +111,7 @@ public final class StatementExecuteBackendHandler implements BackendHandler {
private
CommandResponsePackets
execute
(
final
SQLStatement
sqlStatement
,
final
SQLExecutionUnit
sqlExecutionUnit
)
{
private
CommandResponsePackets
execute
(
final
SQLStatement
sqlStatement
,
final
SQLExecutionUnit
sqlExecutionUnit
)
{
switch
(
sqlStatement
.
getType
())
{
switch
(
sqlStatement
.
getType
())
{
case
DQL:
case
DQL:
case
DAL:
return
executeQuery
(
ShardingRuleRegistry
.
getInstance
().
getDataSourceMap
().
get
(
sqlExecutionUnit
.
getDataSource
()),
sqlExecutionUnit
.
getSqlUnit
().
getSql
());
return
executeQuery
(
ShardingRuleRegistry
.
getInstance
().
getDataSourceMap
().
get
(
sqlExecutionUnit
.
getDataSource
()),
sqlExecutionUnit
.
getSqlUnit
().
getSql
());
case
DML:
case
DML:
case
DDL:
case
DDL:
...
@@ -265,8 +266,8 @@ public final class StatementExecuteBackendHandler implements BackendHandler {
...
@@ -265,8 +266,8 @@ public final class StatementExecuteBackendHandler implements BackendHandler {
if
(
SQLType
.
DML
==
sqlStatement
.
getType
())
{
if
(
SQLType
.
DML
==
sqlStatement
.
getType
())
{
return
mergeDML
(
headPackets
);
return
mergeDML
(
headPackets
);
}
}
if
(
SQLType
.
DQL
==
sqlStatement
.
getType
())
{
if
(
SQLType
.
DQL
==
sqlStatement
.
getType
()
||
SQLType
.
DAL
==
sqlStatement
.
getType
()
)
{
return
mergeDQL
(
sqlStatement
,
packets
);
return
mergeDQL
orDAL
(
sqlStatement
,
packets
);
}
}
return
packets
.
get
(
0
);
return
packets
.
get
(
0
);
}
}
...
@@ -282,7 +283,7 @@ public final class StatementExecuteBackendHandler implements BackendHandler {
...
@@ -282,7 +283,7 @@ public final class StatementExecuteBackendHandler implements BackendHandler {
return
new
CommandResponsePackets
(
new
OKPacket
(
1
,
affectedRows
,
0
,
StatusFlag
.
SERVER_STATUS_AUTOCOMMIT
.
getValue
(),
0
,
""
));
return
new
CommandResponsePackets
(
new
OKPacket
(
1
,
affectedRows
,
0
,
StatusFlag
.
SERVER_STATUS_AUTOCOMMIT
.
getValue
(),
0
,
""
));
}
}
private
CommandResponsePackets
mergeDQL
(
final
SQLStatement
sqlStatement
,
final
List
<
CommandResponsePackets
>
packets
)
{
private
CommandResponsePackets
mergeDQL
orDAL
(
final
SQLStatement
sqlStatement
,
final
List
<
CommandResponsePackets
>
packets
)
{
List
<
QueryResult
>
queryResults
=
new
ArrayList
<>(
packets
.
size
());
List
<
QueryResult
>
queryResults
=
new
ArrayList
<>(
packets
.
size
());
for
(
int
i
=
0
;
i
<
packets
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
packets
.
size
();
i
++)
{
// TODO replace to a common PacketQueryResult
// TODO replace to a common PacketQueryResult
...
@@ -290,7 +291,7 @@ public final class StatementExecuteBackendHandler implements BackendHandler {
...
@@ -290,7 +291,7 @@ public final class StatementExecuteBackendHandler implements BackendHandler {
}
}
try
{
try
{
mergedResult
=
MergeEngineFactory
.
newInstance
(
ShardingRuleRegistry
.
getInstance
().
getShardingRule
(),
queryResults
,
sqlStatement
).
merge
();
mergedResult
=
MergeEngineFactory
.
newInstance
(
ShardingRuleRegistry
.
getInstance
().
getShardingRule
(),
queryResults
,
sqlStatement
).
merge
();
is
DQL
=
true
;
is
Merged
=
true
;
}
catch
(
final
SQLException
ex
)
{
}
catch
(
final
SQLException
ex
)
{
return
new
CommandResponsePackets
(
new
ErrPacket
(
1
,
ex
.
getErrorCode
(),
""
,
ex
.
getSQLState
(),
ex
.
getMessage
()));
return
new
CommandResponsePackets
(
new
ErrPacket
(
1
,
ex
.
getErrorCode
(),
""
,
ex
.
getSQLState
(),
ex
.
getMessage
()));
}
}
...
@@ -319,7 +320,7 @@ public final class StatementExecuteBackendHandler implements BackendHandler {
...
@@ -319,7 +320,7 @@ public final class StatementExecuteBackendHandler implements BackendHandler {
* @throws SQLException sql exception
* @throws SQLException sql exception
*/
*/
public
boolean
hasMoreResultValue
()
throws
SQLException
{
public
boolean
hasMoreResultValue
()
throws
SQLException
{
if
(!
is
DQL
||
!
hasMoreResultValueFlag
)
{
if
(!
is
Merged
||
!
hasMoreResultValueFlag
)
{
return
false
;
return
false
;
}
}
if
(!
mergedResult
.
next
())
{
if
(!
mergedResult
.
next
())
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录