Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
ef553f6b
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 搜索 >>
提交
ef553f6b
编写于
2月 25, 2019
作者:
T
terrymanu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
for #1898, merge ExecuteResponse & BackendResponse
上级
5b247bad
变更
23
隐藏空白更改
内联
并排
Showing
23 changed file
with
136 addition
and
200 deletion
+136
-200
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java
...d/communication/jdbc/JDBCDatabaseCommunicationEngine.java
+11
-13
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/execute/JDBCExecuteEngine.java
...backend/communication/jdbc/execute/JDBCExecuteEngine.java
+9
-9
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/execute/SQLExecuteEngine.java
.../backend/communication/jdbc/execute/SQLExecuteEngine.java
+2
-2
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/execute/callback/ProxySQLExecuteCallback.java
...cation/jdbc/execute/callback/ProxySQLExecuteCallback.java
+3
-3
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/execute/response/ExecuteQueryResponse.java
...unication/jdbc/execute/response/ExecuteQueryResponse.java
+0
-40
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/execute/response/ExecuteQueryResponseUnit.java
...ation/jdbc/execute/response/ExecuteQueryResponseUnit.java
+1
-1
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/execute/response/ExecuteResponse.java
.../communication/jdbc/execute/response/ExecuteResponse.java
+0
-26
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/execute/response/ExecuteResponseUnit.java
...munication/jdbc/execute/response/ExecuteResponseUnit.java
+1
-1
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/execute/response/ExecuteUpdateResponseUnit.java
...tion/jdbc/execute/response/ExecuteUpdateResponseUnit.java
+1
-1
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/result/query/QueryResponse.java
...ere/shardingproxy/backend/result/query/QueryResponse.java
+6
-2
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/result/update/UpdateResponse.java
...e/shardingproxy/backend/result/update/UpdateResponse.java
+8
-8
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/text/admin/ShowDatabasesBackendHandler.java
...proxy/backend/text/admin/ShowDatabasesBackendHandler.java
+2
-2
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/text/sctl/show/ShardingCTLShowBackendHandler.java
...backend/text/sctl/show/ShardingCTLShowBackendHandler.java
+2
-2
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/transport/mysql/packet/command/query/binary/execute/MySQLQueryComStmtExecutePacket.java
.../query/binary/execute/MySQLQueryComStmtExecutePacket.java
+2
-2
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/transport/mysql/packet/command/query/text/query/MySQLComPacketQuery.java
.../packet/command/query/text/query/MySQLComPacketQuery.java
+4
-4
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/transport/postgresql/packet/command/query/binary/bind/PostgreSQLComBindPacket.java
...et/command/query/binary/bind/PostgreSQLComBindPacket.java
+2
-2
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/transport/postgresql/packet/command/query/text/PostgreSQLComQueryPacket.java
...l/packet/command/query/text/PostgreSQLComQueryPacket.java
+4
-4
sharding-proxy/src/main/resources/conf/config-sharding.yaml
sharding-proxy/src/main/resources/conf/config-sharding.yaml
+48
-48
sharding-proxy/src/main/resources/conf/server.yaml
sharding-proxy/src/main/resources/conf/server.yaml
+15
-15
sharding-proxy/src/test/java/org/apache/shardingsphere/shardingproxy/backend/text/admin/ShowDatabasesBackendHandlerTest.java
...y/backend/text/admin/ShowDatabasesBackendHandlerTest.java
+3
-3
sharding-proxy/src/test/java/org/apache/shardingsphere/shardingproxy/backend/text/sctl/show/ShardingCTLShowBackendHandlerTest.java
...end/text/sctl/show/ShardingCTLShowBackendHandlerTest.java
+5
-5
sharding-proxy/src/test/java/org/apache/shardingsphere/shardingproxy/transport/mysql/packet/command/query/binary/execute/MySQLComStmtExecutePacketTest.java
...d/query/binary/execute/MySQLComStmtExecutePacketTest.java
+2
-2
sharding-proxy/src/test/java/org/apache/shardingsphere/shardingproxy/transport/mysql/packet/command/query/text/query/MySQLComQueryPacketTest.java
...ket/command/query/text/query/MySQLComQueryPacketTest.java
+5
-5
未找到文件。
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java
浏览文件 @
ef553f6b
...
...
@@ -32,15 +32,13 @@ import org.apache.shardingsphere.shardingproxy.backend.communication.DatabaseCom
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.connection.BackendConnection
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.connection.ConnectionStatus
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.JDBCExecuteEngine
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response.ExecuteQueryResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response.ExecuteResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response.ExecuteUpdateResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.result.BackendResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.result.common.FailureResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.result.common.SuccessResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryData
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryHeader
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryHeaderResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.result.update.UpdateResponse
;
import
org.apache.shardingsphere.shardingproxy.runtime.GlobalRegistry
;
import
org.apache.shardingsphere.shardingproxy.runtime.schema.LogicSchema
;
import
org.apache.shardingsphere.shardingproxy.runtime.schema.ShardingSchema
;
...
...
@@ -71,7 +69,7 @@ public final class JDBCDatabaseCommunicationEngine implements DatabaseCommunicat
private
final
DatabaseType
databaseType
=
GlobalRegistry
.
getInstance
().
getDatabaseType
();
private
ExecuteResponse
executeR
esponse
;
private
BackendResponse
r
esponse
;
private
MergedResult
mergedResult
;
...
...
@@ -94,7 +92,7 @@ public final class JDBCDatabaseCommunicationEngine implements DatabaseCommunicat
return
new
FailureResponse
(
MySQLServerErrorCode
.
ER_ERROR_ON_MODIFYING_GTID_EXECUTED_TABLE
,
sqlStatement
.
getTables
().
isSingleTable
()
?
sqlStatement
.
getTables
().
getSingleTableName
()
:
"unknown_table"
);
}
executeR
esponse
=
executeEngine
.
execute
(
routeResult
);
r
esponse
=
executeEngine
.
execute
(
routeResult
);
if
(
logicSchema
instanceof
ShardingSchema
)
{
logicSchema
.
refreshTableMetaData
(
routeResult
.
getSqlStatement
());
}
...
...
@@ -112,15 +110,15 @@ public final class JDBCDatabaseCommunicationEngine implements DatabaseCommunicat
}
private
BackendResponse
merge
(
final
SQLStatement
sqlStatement
)
throws
SQLException
{
if
(
executeResponse
instanceof
Execute
UpdateResponse
)
{
return
((
ExecuteUpdateResponse
)
executeResponse
).
getBackend
Response
(!
isAllBroadcastTables
(
sqlStatement
));
if
(
response
instanceof
UpdateResponse
)
{
return
((
UpdateResponse
)
response
).
get
Response
(!
isAllBroadcastTables
(
sqlStatement
));
}
mergedResult
=
MergeEngineFactory
.
newInstance
(
databaseType
,
getShardingRule
(),
sqlStatement
,
logicSchema
.
getMetaData
().
getTable
(),
((
ExecuteQueryResponse
)
executeR
esponse
).
getQueryResults
()).
merge
();
databaseType
,
getShardingRule
(),
sqlStatement
,
logicSchema
.
getMetaData
().
getTable
(),
((
QueryResponse
)
r
esponse
).
getQueryResults
()).
merge
();
if
(
mergedResult
instanceof
ShowTablesMergedResult
)
{
((
ShowTablesMergedResult
)
mergedResult
).
resetColumnLabel
(
logicSchema
.
getName
());
}
return
getQueryHeaderResponseWithoutDerivedColumns
(((
ExecuteQueryResponse
)
executeR
esponse
).
getQueryHeaders
());
return
getQueryHeaderResponseWithoutDerivedColumns
(((
QueryResponse
)
r
esponse
).
getQueryHeaders
());
}
private
boolean
isAllBroadcastTables
(
final
SQLStatement
sqlStatement
)
{
...
...
@@ -131,7 +129,7 @@ public final class JDBCDatabaseCommunicationEngine implements DatabaseCommunicat
return
logicSchema
instanceof
ShardingSchema
?
((
ShardingSchema
)
logicSchema
).
getShardingRule
()
:
new
ShardingRule
(
new
ShardingRuleConfiguration
(),
logicSchema
.
getDataSources
().
keySet
());
}
private
Query
Header
Response
getQueryHeaderResponseWithoutDerivedColumns
(
final
List
<
QueryHeader
>
queryHeaders
)
{
private
QueryResponse
getQueryHeaderResponseWithoutDerivedColumns
(
final
List
<
QueryHeader
>
queryHeaders
)
{
List
<
QueryHeader
>
derivedColumnQueryHeaders
=
new
LinkedList
<>();
for
(
QueryHeader
each
:
queryHeaders
)
{
if
(
DerivedColumn
.
isDerivedColumn
(
each
.
getColumnLabel
()))
{
...
...
@@ -139,7 +137,7 @@ public final class JDBCDatabaseCommunicationEngine implements DatabaseCommunicat
}
}
queryHeaders
.
removeAll
(
derivedColumnQueryHeaders
);
return
new
Query
Header
Response
(
queryHeaders
);
return
new
QueryResponse
(
queryHeaders
);
}
@Override
...
...
@@ -149,7 +147,7 @@ public final class JDBCDatabaseCommunicationEngine implements DatabaseCommunicat
@Override
public
QueryData
getQueryData
()
throws
SQLException
{
List
<
QueryHeader
>
queryHeaders
=
((
ExecuteQueryResponse
)
executeR
esponse
).
getQueryHeaders
();
List
<
QueryHeader
>
queryHeaders
=
((
QueryResponse
)
r
esponse
).
getQueryHeaders
();
List
<
Object
>
row
=
new
ArrayList
<>(
queryHeaders
.
size
());
for
(
int
columnIndex
=
1
;
columnIndex
<=
queryHeaders
.
size
();
columnIndex
++)
{
row
.
add
(
mergedResult
.
getValue
(
columnIndex
,
Object
.
class
));
...
...
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/execute/JDBCExecuteEngine.java
浏览文件 @
ef553f6b
...
...
@@ -29,13 +29,13 @@ import org.apache.shardingsphere.core.routing.SQLRouteResult;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.connection.BackendConnection
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.callback.ProxyJDBCExecutePrepareCallback
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.callback.ProxySQLExecuteCallback
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response.ExecuteQueryResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response.ExecuteResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response.ExecuteUpdateResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response.unit.ExecuteQueryResponseUnit
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response.unit.ExecuteResponseUnit
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response.ExecuteQueryResponseUnit
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response.ExecuteResponseUnit
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.wrapper.JDBCExecutorWrapper
;
import
org.apache.shardingsphere.shardingproxy.backend.result.BackendResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryHeader
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.result.update.UpdateResponse
;
import
org.apache.shardingsphere.shardingproxy.runtime.ExecutorContext
;
import
org.apache.shardingsphere.shardingproxy.runtime.GlobalRegistry
;
...
...
@@ -72,7 +72,7 @@ public final class JDBCExecuteEngine implements SQLExecuteEngine {
@SuppressWarnings
(
"unchecked"
)
@Override
public
Execute
Response
execute
(
final
SQLRouteResult
routeResult
)
throws
SQLException
{
public
Backend
Response
execute
(
final
SQLRouteResult
routeResult
)
throws
SQLException
{
boolean
isReturnGeneratedKeys
=
routeResult
.
getSqlStatement
()
instanceof
InsertStatement
;
boolean
isExceptionThrown
=
ExecutorExceptionHandler
.
isExceptionThrown
();
Collection
<
ShardingExecuteGroup
<
StatementExecuteUnit
>>
sqlExecuteGroups
=
sqlExecutePrepareTemplate
.
getExecuteUnitGroups
(
...
...
@@ -82,11 +82,11 @@ public final class JDBCExecuteEngine implements SQLExecuteEngine {
new
ProxySQLExecuteCallback
(
backendConnection
,
jdbcExecutorWrapper
,
isExceptionThrown
,
isReturnGeneratedKeys
,
false
));
ExecuteResponseUnit
firstExecuteResponseUnit
=
executeResponseUnits
.
iterator
().
next
();
return
firstExecuteResponseUnit
instanceof
ExecuteQueryResponseUnit
?
getExecuteQueryResponse
(((
ExecuteQueryResponseUnit
)
firstExecuteResponseUnit
).
getQueryHeaders
(),
executeResponseUnits
)
:
new
Execute
UpdateResponse
(
executeResponseUnits
);
?
getExecuteQueryResponse
(((
ExecuteQueryResponseUnit
)
firstExecuteResponseUnit
).
getQueryHeaders
(),
executeResponseUnits
)
:
new
UpdateResponse
(
executeResponseUnits
);
}
private
Execute
Response
getExecuteQueryResponse
(
final
List
<
QueryHeader
>
queryHeaders
,
final
Collection
<
ExecuteResponseUnit
>
executeResponseUnits
)
{
ExecuteQueryResponse
result
=
new
Execute
QueryResponse
(
queryHeaders
);
private
Backend
Response
getExecuteQueryResponse
(
final
List
<
QueryHeader
>
queryHeaders
,
final
Collection
<
ExecuteResponseUnit
>
executeResponseUnits
)
{
QueryResponse
result
=
new
QueryResponse
(
queryHeaders
);
for
(
ExecuteResponseUnit
each
:
executeResponseUnits
)
{
result
.
getQueryResults
().
add
(((
ExecuteQueryResponseUnit
)
each
).
getQueryResult
());
}
...
...
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/execute/SQLExecuteEngine.java
浏览文件 @
ef553f6b
...
...
@@ -18,7 +18,7 @@
package
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute
;
import
org.apache.shardingsphere.core.routing.SQLRouteResult
;
import
org.apache.shardingsphere.shardingproxy.backend.
communication.jdbc.execute.response.Execute
Response
;
import
org.apache.shardingsphere.shardingproxy.backend.
result.Backend
Response
;
import
java.sql.SQLException
;
...
...
@@ -36,5 +36,5 @@ public interface SQLExecuteEngine {
* @return execute response
* @throws SQLException SQL exception
*/
Execute
Response
execute
(
SQLRouteResult
routeResult
)
throws
SQLException
;
Backend
Response
execute
(
SQLRouteResult
routeResult
)
throws
SQLException
;
}
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/execute/callback/ProxySQLExecuteCallback.java
浏览文件 @
ef553f6b
...
...
@@ -25,9 +25,9 @@ import org.apache.shardingsphere.core.merger.QueryResult;
import
org.apache.shardingsphere.core.routing.RouteUnit
;
import
org.apache.shardingsphere.core.rule.ShardingRule
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.connection.BackendConnection
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response.
unit.
ExecuteQueryResponseUnit
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response.
unit.
ExecuteResponseUnit
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response.
unit.
ExecuteUpdateResponseUnit
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response.ExecuteQueryResponseUnit
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response.ExecuteResponseUnit
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response.ExecuteUpdateResponseUnit
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.wrapper.JDBCExecutorWrapper
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryHeader
;
import
org.apache.shardingsphere.shardingproxy.runtime.GlobalRegistry
;
...
...
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/execute/response/ExecuteQueryResponse.java
已删除
100644 → 0
浏览文件 @
5b247bad
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response
;
import
lombok.Getter
;
import
lombok.RequiredArgsConstructor
;
import
org.apache.shardingsphere.core.merger.QueryResult
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryHeader
;
import
java.util.LinkedList
;
import
java.util.List
;
/**
* Execute query response.
*
* @author zhangliang
*/
@RequiredArgsConstructor
@Getter
public
final
class
ExecuteQueryResponse
implements
ExecuteResponse
{
private
final
List
<
QueryHeader
>
queryHeaders
;
private
final
List
<
QueryResult
>
queryResults
=
new
LinkedList
<>();
}
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/execute/response/
unit/
ExecuteQueryResponseUnit.java
→
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/execute/response/ExecuteQueryResponseUnit.java
浏览文件 @
ef553f6b
...
...
@@ -15,7 +15,7 @@
* limitations under the License.
*/
package
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response
.unit
;
package
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response
;
import
lombok.Getter
;
import
lombok.RequiredArgsConstructor
;
...
...
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/execute/response/ExecuteResponse.java
已删除
100644 → 0
浏览文件 @
5b247bad
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response
;
/**
* Execute response.
*
* @author zhangliang
*/
public
interface
ExecuteResponse
{
}
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/execute/response/
unit/
ExecuteResponseUnit.java
→
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/execute/response/ExecuteResponseUnit.java
浏览文件 @
ef553f6b
...
...
@@ -15,7 +15,7 @@
* limitations under the License.
*/
package
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response
.unit
;
package
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response
;
/**
* Execute response unit.
...
...
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/execute/response/
unit/
ExecuteUpdateResponseUnit.java
→
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/execute/response/ExecuteUpdateResponseUnit.java
浏览文件 @
ef553f6b
...
...
@@ -15,7 +15,7 @@
* limitations under the License.
*/
package
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response
.unit
;
package
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response
;
import
lombok.Getter
;
import
lombok.RequiredArgsConstructor
;
...
...
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/result/query/Query
Header
Response.java
→
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/result/query/QueryResponse.java
浏览文件 @
ef553f6b
...
...
@@ -19,18 +19,22 @@ package org.apache.shardingsphere.shardingproxy.backend.result.query;
import
lombok.Getter
;
import
lombok.RequiredArgsConstructor
;
import
org.apache.shardingsphere.core.merger.QueryResult
;
import
org.apache.shardingsphere.shardingproxy.backend.result.BackendResponse
;
import
java.util.LinkedList
;
import
java.util.List
;
/**
* Query
header
response.
* Query response.
*
* @author zhangliang
*/
@RequiredArgsConstructor
@Getter
public
final
class
Query
Header
Response
implements
BackendResponse
{
public
final
class
QueryResponse
implements
BackendResponse
{
private
final
List
<
QueryHeader
>
queryHeaders
;
private
final
List
<
QueryResult
>
queryResults
=
new
LinkedList
<>();
}
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/
communication/jdbc/execute/response/Execute
UpdateResponse.java
→
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/
result/update/
UpdateResponse.java
浏览文件 @
ef553f6b
...
...
@@ -15,10 +15,10 @@
* limitations under the License.
*/
package
org.apache.shardingsphere.shardingproxy.backend.
communication.jdbc.execute.respons
e
;
package
org.apache.shardingsphere.shardingproxy.backend.
result.updat
e
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response.
unit.
ExecuteResponseUnit
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response.
unit.
ExecuteUpdateResponseUnit
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response.ExecuteResponseUnit
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response.ExecuteUpdateResponseUnit
;
import
org.apache.shardingsphere.shardingproxy.backend.result.BackendResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.result.common.SuccessResponse
;
...
...
@@ -27,17 +27,17 @@ import java.util.LinkedList;
import
java.util.List
;
/**
*
Execute u
pdate response.
*
U
pdate response.
*
* @author zhangliang
*/
public
final
class
ExecuteUpdateResponse
implements
Execute
Response
{
public
final
class
UpdateResponse
implements
Backend
Response
{
private
final
List
<
Integer
>
updateCounts
=
new
LinkedList
<>();
private
final
List
<
Long
>
lastInsertIds
=
new
LinkedList
<>();
public
Execute
UpdateResponse
(
final
Collection
<
ExecuteResponseUnit
>
responseUnits
)
{
public
UpdateResponse
(
final
Collection
<
ExecuteResponseUnit
>
responseUnits
)
{
for
(
ExecuteResponseUnit
each
:
responseUnits
)
{
updateCounts
.
add
(((
ExecuteUpdateResponseUnit
)
each
).
getUpdateCount
());
lastInsertIds
.
add
(((
ExecuteUpdateResponseUnit
)
each
).
getLastInsertId
());
...
...
@@ -45,12 +45,12 @@ public final class ExecuteUpdateResponse implements ExecuteResponse {
}
/**
* Get
backend
response.
* Get response.
*
* @param isMerge is need merge
* @return backend response
*/
public
BackendResponse
get
Backend
Response
(
final
boolean
isMerge
)
{
public
BackendResponse
getResponse
(
final
boolean
isMerge
)
{
return
isMerge
?
new
SuccessResponse
(
mergeUpdateCount
(),
mergeLastInsertId
())
:
new
SuccessResponse
(
updateCounts
.
get
(
0
),
lastInsertIds
.
get
(
0
));
}
...
...
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/text/admin/ShowDatabasesBackendHandler.java
浏览文件 @
ef553f6b
...
...
@@ -22,7 +22,7 @@ import org.apache.shardingsphere.core.merger.dal.show.ShowDatabasesMergedResult;
import
org.apache.shardingsphere.shardingproxy.backend.result.BackendResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryData
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryHeader
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.Query
Header
Response
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.text.TextProtocolBackendHandler
;
import
org.apache.shardingsphere.shardingproxy.runtime.GlobalRegistry
;
...
...
@@ -43,7 +43,7 @@ public final class ShowDatabasesBackendHandler implements TextProtocolBackendHan
@Override
public
BackendResponse
execute
()
{
mergedResult
=
new
ShowDatabasesMergedResult
(
GlobalRegistry
.
getInstance
().
getSchemaNames
());
return
new
Query
Header
Response
(
Collections
.
singletonList
(
new
QueryHeader
(
""
,
""
,
""
,
"Database"
,
100
,
Types
.
VARCHAR
,
0
)));
return
new
QueryResponse
(
Collections
.
singletonList
(
new
QueryHeader
(
""
,
""
,
""
,
"Database"
,
100
,
Types
.
VARCHAR
,
0
)));
}
@Override
...
...
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/backend/text/sctl/show/ShardingCTLShowBackendHandler.java
浏览文件 @
ef553f6b
...
...
@@ -25,7 +25,7 @@ import org.apache.shardingsphere.shardingproxy.backend.result.BackendResponse;
import
org.apache.shardingsphere.shardingproxy.backend.result.common.FailureResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryData
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryHeader
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.Query
Header
Response
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.text.TextProtocolBackendHandler
;
import
java.sql.SQLException
;
...
...
@@ -69,7 +69,7 @@ public final class ShardingCTLShowBackendHandler implements TextProtocolBackendH
private
BackendResponse
createResponsePackets
(
final
String
columnName
,
final
Object
...
values
)
{
mergedResult
=
new
ShowShardingCTLMergedResult
(
Arrays
.
asList
(
values
));
return
new
Query
Header
Response
(
Collections
.
singletonList
(
new
QueryHeader
(
""
,
""
,
columnName
,
columnName
,
100
,
Types
.
VARCHAR
,
0
)));
return
new
QueryResponse
(
Collections
.
singletonList
(
new
QueryHeader
(
""
,
""
,
columnName
,
columnName
,
100
,
Types
.
VARCHAR
,
0
)));
}
@Override
...
...
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/transport/mysql/packet/command/query/binary/execute/MySQLQueryComStmtExecutePacket.java
浏览文件 @
ef553f6b
...
...
@@ -29,7 +29,7 @@ import org.apache.shardingsphere.shardingproxy.backend.result.common.FailureResp
import
org.apache.shardingsphere.shardingproxy.backend.result.common.SuccessResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryData
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryHeader
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.Query
Header
Response
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryResponse
;
import
org.apache.shardingsphere.shardingproxy.runtime.GlobalRegistry
;
import
org.apache.shardingsphere.shardingproxy.transport.common.packet.DatabasePacket
;
import
org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets
;
...
...
@@ -162,7 +162,7 @@ public final class MySQLQueryComStmtExecutePacket implements MySQLQueryCommandPa
if
(
backendResponse
instanceof
FailureResponse
)
{
return
Optional
.
of
(
new
CommandResponsePackets
(
createDatabaseFailurePacket
((
FailureResponse
)
backendResponse
)));
}
Collection
<
DataHeaderPacket
>
dataHeaderPackets
=
createDataHeaderPackets
(((
Query
Header
Response
)
backendResponse
).
getQueryHeaders
());
Collection
<
DataHeaderPacket
>
dataHeaderPackets
=
createDataHeaderPackets
(((
QueryResponse
)
backendResponse
).
getQueryHeaders
());
dataHeaderEofSequenceId
=
dataHeaderPackets
.
size
()
+
2
;
return
Optional
.<
CommandResponsePackets
>
of
(
new
QueryResponsePackets
(
dataHeaderPackets
,
dataHeaderEofSequenceId
));
}
...
...
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/transport/mysql/packet/command/query/text/query/MySQLComPacketQuery.java
浏览文件 @
ef553f6b
...
...
@@ -26,7 +26,7 @@ import org.apache.shardingsphere.shardingproxy.backend.result.common.FailureResp
import
org.apache.shardingsphere.shardingproxy.backend.result.common.SuccessResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryData
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryHeader
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.Query
Header
Response
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.text.TextProtocolBackendHandler
;
import
org.apache.shardingsphere.shardingproxy.backend.text.TextProtocolBackendHandlerFactory
;
import
org.apache.shardingsphere.shardingproxy.runtime.GlobalRegistry
;
...
...
@@ -100,7 +100,7 @@ public final class MySQLComPacketQuery implements MySQLQueryCommandPacket {
if
(
backendResponse
instanceof
FailureResponse
)
{
return
Optional
.
of
(
new
CommandResponsePackets
(
createDatabaseFailurePacket
((
FailureResponse
)
backendResponse
)));
}
Collection
<
DataHeaderPacket
>
dataHeaderPackets
=
createDataHeaderPackets
((
Query
Header
Response
)
backendResponse
);
Collection
<
DataHeaderPacket
>
dataHeaderPackets
=
createDataHeaderPackets
((
QueryResponse
)
backendResponse
);
dataHeaderEofSequenceId
=
dataHeaderPackets
.
size
()
+
2
;
return
Optional
.<
CommandResponsePackets
>
of
(
new
QueryResponsePackets
(
dataHeaderPackets
,
dataHeaderEofSequenceId
));
}
...
...
@@ -113,10 +113,10 @@ public final class MySQLComPacketQuery implements MySQLQueryCommandPacket {
return
new
DatabaseFailurePacket
(
1
,
failureResponse
.
getErrorCode
(),
failureResponse
.
getSqlState
(),
failureResponse
.
getErrorMessage
());
}
private
Collection
<
DataHeaderPacket
>
createDataHeaderPackets
(
final
Query
HeaderResponse
queryHeader
Response
)
{
private
Collection
<
DataHeaderPacket
>
createDataHeaderPackets
(
final
Query
Response
query
Response
)
{
Collection
<
DataHeaderPacket
>
result
=
new
LinkedList
<>();
int
sequenceId
=
1
;
for
(
QueryHeader
each
:
query
Header
Response
.
getQueryHeaders
())
{
for
(
QueryHeader
each
:
queryResponse
.
getQueryHeaders
())
{
result
.
add
(
new
DataHeaderPacket
(
++
sequenceId
,
each
.
getSchema
(),
each
.
getTable
(),
each
.
getTable
(),
each
.
getColumnLabel
(),
each
.
getColumnName
(),
each
.
getColumnLength
(),
each
.
getColumnType
(),
each
.
getDecimals
()));
}
...
...
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/transport/postgresql/packet/command/query/binary/bind/PostgreSQLComBindPacket.java
浏览文件 @
ef553f6b
...
...
@@ -28,7 +28,7 @@ import org.apache.shardingsphere.shardingproxy.backend.result.common.FailureResp
import
org.apache.shardingsphere.shardingproxy.backend.result.common.SuccessResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryData
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryHeader
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.Query
Header
Response
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryResponse
;
import
org.apache.shardingsphere.shardingproxy.runtime.GlobalRegistry
;
import
org.apache.shardingsphere.shardingproxy.transport.common.packet.DatabasePacket
;
import
org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets
;
...
...
@@ -122,7 +122,7 @@ public final class PostgreSQLComBindPacket implements PostgreSQLQueryCommandPack
if
(
backendResponse
instanceof
FailureResponse
)
{
return
Optional
.
of
(
new
CommandResponsePackets
(
createDatabaseFailurePacket
((
FailureResponse
)
backendResponse
)));
}
Collection
<
DataHeaderPacket
>
dataHeaderPackets
=
createDataHeaderPackets
(((
Query
Header
Response
)
backendResponse
).
getQueryHeaders
());
Collection
<
DataHeaderPacket
>
dataHeaderPackets
=
createDataHeaderPackets
(((
QueryResponse
)
backendResponse
).
getQueryHeaders
());
return
Optional
.<
CommandResponsePackets
>
of
(
new
QueryResponsePackets
(
dataHeaderPackets
,
dataHeaderPackets
.
size
()
+
2
));
}
return
Optional
.
of
(
result
);
...
...
sharding-proxy/src/main/java/org/apache/shardingsphere/shardingproxy/transport/postgresql/packet/command/query/text/PostgreSQLComQueryPacket.java
浏览文件 @
ef553f6b
...
...
@@ -25,7 +25,7 @@ import org.apache.shardingsphere.shardingproxy.backend.result.BackendResponse;
import
org.apache.shardingsphere.shardingproxy.backend.result.common.FailureResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.result.common.SuccessResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryHeader
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.Query
Header
Response
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.text.TextProtocolBackendHandler
;
import
org.apache.shardingsphere.shardingproxy.backend.text.TextProtocolBackendHandlerFactory
;
import
org.apache.shardingsphere.shardingproxy.runtime.GlobalRegistry
;
...
...
@@ -83,7 +83,7 @@ public final class PostgreSQLComQueryPacket implements PostgreSQLQueryCommandPac
if
(
backendResponse
instanceof
FailureResponse
)
{
return
Optional
.
of
(
new
CommandResponsePackets
(
createDatabaseFailurePacket
((
FailureResponse
)
backendResponse
)));
}
Collection
<
DataHeaderPacket
>
dataHeaderPackets
=
createDataHeaderPackets
((
Query
Header
Response
)
backendResponse
);
Collection
<
DataHeaderPacket
>
dataHeaderPackets
=
createDataHeaderPackets
((
QueryResponse
)
backendResponse
);
return
Optional
.<
CommandResponsePackets
>
of
(
new
QueryResponsePackets
(
dataHeaderPackets
,
dataHeaderPackets
.
size
()
+
2
));
}
...
...
@@ -95,10 +95,10 @@ public final class PostgreSQLComQueryPacket implements PostgreSQLQueryCommandPac
return
new
DatabaseFailurePacket
(
1
,
failureResponse
.
getErrorCode
(),
failureResponse
.
getSqlState
(),
failureResponse
.
getErrorMessage
());
}
private
Collection
<
DataHeaderPacket
>
createDataHeaderPackets
(
final
Query
HeaderResponse
queryHeader
Response
)
{
private
Collection
<
DataHeaderPacket
>
createDataHeaderPackets
(
final
Query
Response
query
Response
)
{
Collection
<
DataHeaderPacket
>
result
=
new
LinkedList
<>();
int
sequenceId
=
1
;
for
(
QueryHeader
each
:
query
Header
Response
.
getQueryHeaders
())
{
for
(
QueryHeader
each
:
queryResponse
.
getQueryHeaders
())
{
result
.
add
(
new
DataHeaderPacket
(
++
sequenceId
,
each
.
getSchema
(),
each
.
getTable
(),
each
.
getTable
(),
each
.
getColumnLabel
(),
each
.
getColumnName
(),
each
.
getColumnLength
(),
each
.
getColumnType
(),
each
.
getDecimals
()));
}
...
...
sharding-proxy/src/main/resources/conf/config-sharding.yaml
浏览文件 @
ef553f6b
...
...
@@ -8,51 +8,51 @@
#
######################################################################################################
#
#
schemaName: sharding_db
#
#
dataSources:
#
ds_0:
#
url: jdbc:mysql://127.0.0.1:3306/demo_ds_0?serverTimezone=UTC&useSSL=false
#
username: root
#
password:
#
connectionTimeoutMilliseconds: 30000
#
idleTimeoutMilliseconds: 60000
#
maxLifetimeMilliseconds: 1800000
#
maxPoolSize: 50
#
ds_1:
#
url: jdbc:mysql://127.0.0.1:3306/demo_ds_1?serverTimezone=UTC&useSSL=false
#
username: root
#
password:
#
connectionTimeoutMilliseconds: 30000
#
idleTimeoutMilliseconds: 60000
#
maxLifetimeMilliseconds: 1800000
#
maxPoolSize: 50
#
#
shardingRule:
#
tables:
#
t_order:
#
actualDataNodes: ds_${0..1}.t_order_${0..1}
#
tableStrategy:
#
inline:
#
shardingColumn: order_id
#
algorithmExpression: t_order_${order_id % 2}
#
keyGenerator:
#
type: SNOWFLAKE
#
column: order_id
#
t_order_item:
#
actualDataNodes: ds_${0..1}.t_order_item_${0..1}
#
tableStrategy:
#
inline:
#
shardingColumn: order_id
#
algorithmExpression: t_order_item_${order_id % 2}
#
keyGenerator:
#
type: SNOWFLAKE
#
column: order_item_id
#
bindingTables:
#
- t_order,t_order_item
#
defaultDatabaseStrategy:
#
inline:
#
shardingColumn: user_id
#
algorithmExpression: ds_${user_id % 2}
#
defaultTableStrategy:
#
none:
schemaName
:
sharding_db
dataSources
:
ds_0
:
url
:
jdbc:mysql://127.0.0.1:3306/demo_ds_0?serverTimezone=UTC&useSSL=false
username
:
root
password
:
connectionTimeoutMilliseconds
:
30000
idleTimeoutMilliseconds
:
60000
maxLifetimeMilliseconds
:
1800000
maxPoolSize
:
50
ds_1
:
url
:
jdbc:mysql://127.0.0.1:3306/demo_ds_1?serverTimezone=UTC&useSSL=false
username
:
root
password
:
connectionTimeoutMilliseconds
:
30000
idleTimeoutMilliseconds
:
60000
maxLifetimeMilliseconds
:
1800000
maxPoolSize
:
50
shardingRule
:
tables
:
t_order
:
actualDataNodes
:
ds_${0..1}.t_order_${0..1}
tableStrategy
:
inline
:
shardingColumn
:
order_id
algorithmExpression
:
t_order_${order_id % 2}
keyGenerator
:
type
:
SNOWFLAKE
column
:
order_id
t_order_item
:
actualDataNodes
:
ds_${0..1}.t_order_item_${0..1}
tableStrategy
:
inline
:
shardingColumn
:
order_id
algorithmExpression
:
t_order_item_${order_id % 2}
keyGenerator
:
type
:
SNOWFLAKE
column
:
order_item_id
bindingTables
:
-
t_order,t_order_item
defaultDatabaseStrategy
:
inline
:
shardingColumn
:
user_id
algorithmExpression
:
ds_${user_id % 2}
defaultTableStrategy
:
none
:
sharding-proxy/src/main/resources/conf/server.yaml
浏览文件 @
ef553f6b
...
...
@@ -11,18 +11,18 @@
# serverLists: localhost:2181
# namespace: orchestration
#
#
authentication:
#
username: root
#
password: root
#
#
props:
#
max.connections.size.per.query: 1
#
acceptor.size: 16 # The default value is available processors count * 2.
#
executor.size: 16 # Infinite by default.
#
proxy.frontend.flush.threshold: 128 # The default value is 128.
#
# LOCAL: Proxy will run with LOCAL transaction.
#
# XA: Proxy will run with XA transaction.
#
# BASE: Proxy will run with B.A.S.E transaction.
#
proxy.transaction.type: LOCAL
#
proxy.opentracing.enabled: false
#
sql.show: false
authentication
:
username
:
root
password
:
root
props
:
max.connections.size.per.query
:
1
acceptor.size
:
16
# The default value is available processors count * 2.
executor.size
:
16
# Infinite by default.
proxy.frontend.flush.threshold
:
128
# The default value is 128.
# LOCAL: Proxy will run with LOCAL transaction.
# XA: Proxy will run with XA transaction.
# BASE: Proxy will run with B.A.S.E transaction.
proxy.transaction.type
:
LOCAL
proxy.opentracing.enabled
:
false
sql.show
:
false
sharding-proxy/src/test/java/org/apache/shardingsphere/shardingproxy/backend/text/admin/ShowDatabasesBackendHandlerTest.java
浏览文件 @
ef553f6b
...
...
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.shardingproxy.backend.text.admin;
import
org.apache.shardingsphere.shardingproxy.backend.MockGlobalRegistryUtil
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryData
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.Query
Header
Response
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryResponse
;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
...
...
@@ -44,8 +44,8 @@ public final class ShowDatabasesBackendHandlerTest {
@Test
public
void
assertExecuteShowDatabaseBackendHandler
()
{
Query
HeaderResponse
actual
=
(
QueryHeader
Response
)
showDatabasesBackendHandler
.
execute
();
assertThat
(
actual
,
instanceOf
(
Query
Header
Response
.
class
));
Query
Response
actual
=
(
Query
Response
)
showDatabasesBackendHandler
.
execute
();
assertThat
(
actual
,
instanceOf
(
QueryResponse
.
class
));
assertThat
(
actual
.
getQueryHeaders
().
size
(),
is
(
1
));
}
...
...
sharding-proxy/src/test/java/org/apache/shardingsphere/shardingproxy/backend/text/sctl/show/ShardingCTLShowBackendHandlerTest.java
浏览文件 @
ef553f6b
...
...
@@ -21,7 +21,7 @@ import org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.connec
import
org.apache.shardingsphere.shardingproxy.backend.result.BackendResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.result.common.FailureResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryData
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.Query
Header
Response
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryResponse
;
import
org.apache.shardingsphere.transaction.core.TransactionType
;
import
org.hamcrest.CoreMatchers
;
import
org.junit.Test
;
...
...
@@ -42,8 +42,8 @@ public final class ShardingCTLShowBackendHandlerTest {
backendConnection
.
setCurrentSchema
(
"schema"
);
ShardingCTLShowBackendHandler
backendHandler
=
new
ShardingCTLShowBackendHandler
(
"sctl:show transaction_type"
,
backendConnection
);
BackendResponse
actual
=
backendHandler
.
execute
();
assertThat
(
actual
,
instanceOf
(
Query
Header
Response
.
class
));
assertThat
(((
Query
Header
Response
)
actual
).
getQueryHeaders
().
size
(),
is
(
1
));
assertThat
(
actual
,
instanceOf
(
QueryResponse
.
class
));
assertThat
(((
QueryResponse
)
actual
).
getQueryHeaders
().
size
(),
is
(
1
));
backendHandler
.
next
();
QueryData
queryData
=
backendHandler
.
getQueryData
();
assertThat
(
queryData
.
getData
().
iterator
().
next
(),
CoreMatchers
.<
Object
>
is
(
"LOCAL"
));
...
...
@@ -54,8 +54,8 @@ public final class ShardingCTLShowBackendHandlerTest {
backendConnection
.
setCurrentSchema
(
"schema"
);
ShardingCTLShowBackendHandler
backendHandler
=
new
ShardingCTLShowBackendHandler
(
"sctl:show cached_connections"
,
backendConnection
);
BackendResponse
actual
=
backendHandler
.
execute
();
assertThat
(
actual
,
instanceOf
(
Query
Header
Response
.
class
));
assertThat
(((
Query
Header
Response
)
actual
).
getQueryHeaders
().
size
(),
is
(
1
));
assertThat
(
actual
,
instanceOf
(
QueryResponse
.
class
));
assertThat
(((
QueryResponse
)
actual
).
getQueryHeaders
().
size
(),
is
(
1
));
backendHandler
.
next
();
QueryData
queryData
=
backendHandler
.
getQueryData
();
assertThat
(
queryData
.
getData
().
iterator
().
next
(),
CoreMatchers
.<
Object
>
is
(
0
));
...
...
sharding-proxy/src/test/java/org/apache/shardingsphere/shardingproxy/transport/mysql/packet/command/query/binary/execute/MySQLComStmtExecutePacketTest.java
浏览文件 @
ef553f6b
...
...
@@ -22,7 +22,7 @@ import lombok.SneakyThrows;
import
org.apache.shardingsphere.shardingproxy.backend.communication.DatabaseCommunicationEngine
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.connection.BackendConnection
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryData
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.Query
Header
Response
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryResponse
;
import
org.apache.shardingsphere.shardingproxy.transport.common.packet.DatabasePacket
;
import
org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets
;
import
org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload
;
...
...
@@ -84,7 +84,7 @@ public final class MySQLComStmtExecutePacketTest {
DatabaseCommunicationEngine
databaseCommunicationEngine
=
mock
(
DatabaseCommunicationEngine
.
class
);
when
(
payload
.
readInt4
()).
thenReturn
(
1
);
when
(
payload
.
readInt1
()).
thenReturn
(
0
,
1
);
when
(
databaseCommunicationEngine
.
execute
()).
thenReturn
(
mock
(
Query
Header
Response
.
class
));
when
(
databaseCommunicationEngine
.
execute
()).
thenReturn
(
mock
(
QueryResponse
.
class
));
when
(
databaseCommunicationEngine
.
next
()).
thenReturn
(
true
,
false
);
when
(
databaseCommunicationEngine
.
getQueryData
()).
thenReturn
(
new
QueryData
(
Collections
.
singletonList
(
Types
.
BIGINT
),
Collections
.<
Object
>
singletonList
(
99999L
)));
MySQLQueryComStmtExecutePacket
packet
=
new
MySQLQueryComStmtExecutePacket
(
1
,
payload
,
backendConnection
);
...
...
sharding-proxy/src/test/java/org/apache/shardingsphere/shardingproxy/transport/mysql/packet/command/query/text/query/MySQLComQueryPacketTest.java
浏览文件 @
ef553f6b
...
...
@@ -23,7 +23,7 @@ import org.apache.shardingsphere.core.constant.ShardingConstant;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.connection.BackendConnection
;
import
org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.connection.ConnectionStatus
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryData
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.Query
Header
Response
;
import
org.apache.shardingsphere.shardingproxy.backend.result.query.QueryResponse
;
import
org.apache.shardingsphere.shardingproxy.backend.text.TextProtocolBackendHandler
;
import
org.apache.shardingsphere.shardingproxy.runtime.GlobalRegistry
;
import
org.apache.shardingsphere.shardingproxy.runtime.schema.ShardingSchema
;
...
...
@@ -101,8 +101,8 @@ public final class MySQLComQueryPacketTest {
public
void
assertExecuteWithoutTransaction
()
throws
SQLException
{
when
(
payload
.
readStringEOF
()).
thenReturn
(
"SELECT id FROM tbl"
);
MySQLComPacketQuery
packet
=
new
MySQLComPacketQuery
(
1
,
payload
,
backendConnection
);
Query
HeaderResponse
queryHeaderResponse
=
mock
(
QueryHeader
Response
.
class
);
setBackendHandler
(
packet
,
query
Header
Response
);
Query
Response
queryResponse
=
mock
(
Query
Response
.
class
);
setBackendHandler
(
packet
,
queryResponse
);
Optional
<
CommandResponsePackets
>
actual
=
packet
.
execute
();
assertTrue
(
actual
.
isPresent
());
assertTrue
(
packet
.
next
());
...
...
@@ -112,11 +112,11 @@ public final class MySQLComQueryPacketTest {
}
@SneakyThrows
private
void
setBackendHandler
(
final
MySQLComPacketQuery
packet
,
final
Query
HeaderResponse
queryHeader
Response
)
{
private
void
setBackendHandler
(
final
MySQLComPacketQuery
packet
,
final
Query
Response
query
Response
)
{
TextProtocolBackendHandler
textProtocolBackendHandler
=
mock
(
TextProtocolBackendHandler
.
class
);
when
(
textProtocolBackendHandler
.
next
()).
thenReturn
(
true
,
false
);
when
(
textProtocolBackendHandler
.
getQueryData
()).
thenReturn
(
new
QueryData
(
Collections
.
singletonList
(
Types
.
VARCHAR
),
Collections
.<
Object
>
singletonList
(
"id"
)));
when
(
textProtocolBackendHandler
.
execute
()).
thenReturn
(
query
Header
Response
);
when
(
textProtocolBackendHandler
.
execute
()).
thenReturn
(
queryResponse
);
when
(
textProtocolBackendHandler
.
next
()).
thenReturn
(
true
,
false
);
when
(
textProtocolBackendHandler
.
getQueryData
()).
thenReturn
(
new
QueryData
(
Collections
.
singletonList
(
Types
.
BIGINT
),
Collections
.<
Object
>
singletonList
(
99999L
)));
Field
field
=
MySQLComPacketQuery
.
class
.
getDeclaredField
(
"textProtocolBackendHandler"
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录