Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
6885ec6c
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,发现更多精彩内容 >>
未验证
提交
6885ec6c
编写于
3月 21, 2020
作者:
L
Liang Zhang
提交者:
GitHub
3月 21, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix typo for DataNodeRouter (#4878)
上级
42b3d2c6
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
71 addition
and
71 deletion
+71
-71
sharding-core/sharding-core-entry/src/main/java/org/apache/shardingsphere/core/shard/BaseShardingEngine.java
.../apache/shardingsphere/core/shard/BaseShardingEngine.java
+7
-7
sharding-core/sharding-core-entry/src/main/java/org/apache/shardingsphere/core/shard/PreparedQueryShardingEngine.java
...hardingsphere/core/shard/PreparedQueryShardingEngine.java
+3
-3
sharding-core/sharding-core-entry/src/main/java/org/apache/shardingsphere/core/shard/SimpleQueryShardingEngine.java
.../shardingsphere/core/shard/SimpleQueryShardingEngine.java
+3
-3
sharding-core/sharding-core-entry/src/test/java/org/apache/shardingsphere/core/shard/PreparedQueryShardingEngineTest.java
...ingsphere/core/shard/PreparedQueryShardingEngineTest.java
+6
-6
sharding-core/sharding-core-entry/src/test/java/org/apache/shardingsphere/core/shard/SimpleQueryShardingEngineTest.java
...rdingsphere/core/shard/SimpleQueryShardingEngineTest.java
+5
-5
sharding-core/sharding-core-rewrite/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/MixSQLRewriterParameterizedTest.java
...ewrite/parameterized/MixSQLRewriterParameterizedTest.java
+2
-2
sharding-core/sharding-core-rewrite/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/ShardingSQLRewriterParameterizedTest.java
...e/parameterized/ShardingSQLRewriterParameterizedTest.java
+2
-2
sharding-core/sharding-core-route/src/test/java/org/apache/shardingsphere/sharding/route/DatabaseTest.java
...rg/apache/shardingsphere/sharding/route/DatabaseTest.java
+6
-6
sharding-core/sharding-core-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/AbstractSQLRouteTest.java
...ding/route/engine/type/standard/AbstractSQLRouteTest.java
+2
-2
sharding-jdbc/sharding-jdbc-core/src/main/java/org/apache/shardingsphere/shardingjdbc/jdbc/core/statement/MasterSlavePreparedStatement.java
...dbc/jdbc/core/statement/MasterSlavePreparedStatement.java
+13
-13
sharding-jdbc/sharding-jdbc-core/src/main/java/org/apache/shardingsphere/shardingjdbc/jdbc/core/statement/MasterSlaveStatement.java
...hardingjdbc/jdbc/core/statement/MasterSlaveStatement.java
+13
-13
sharding-proxy/sharding-proxy-backend/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/wrapper/PreparedStatementExecutorWrapper.java
...cation/jdbc/wrapper/PreparedStatementExecutorWrapper.java
+4
-4
sharding-proxy/sharding-proxy-backend/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/wrapper/StatementExecutorWrapper.java
.../communication/jdbc/wrapper/StatementExecutorWrapper.java
+4
-4
shardingsphere-underlying/shardingsphere-route/src/main/java/org/apache/shardingsphere/underlying/route/DataNodeRouter.java
...pache/shardingsphere/underlying/route/DataNodeRouter.java
+1
-1
未找到文件。
sharding-core/sharding-core-entry/src/main/java/org/apache/shardingsphere/core/shard/BaseShardingEngine.java
浏览文件 @
6885ec6c
...
...
@@ -42,7 +42,7 @@ import org.apache.shardingsphere.underlying.rewrite.SQLRewriteEntry;
import
org.apache.shardingsphere.underlying.rewrite.context.SQLRewriteContext
;
import
org.apache.shardingsphere.underlying.rewrite.context.SQLRewriteContextDecorator
;
import
org.apache.shardingsphere.underlying.rewrite.engine.SQLRewriteResult
;
import
org.apache.shardingsphere.underlying.route.Dat
e
NodeRouter
;
import
org.apache.shardingsphere.underlying.route.Dat
a
NodeRouter
;
import
org.apache.shardingsphere.underlying.route.context.RouteContext
;
import
org.apache.shardingsphere.underlying.route.context.RouteUnit
;
...
...
@@ -64,7 +64,7 @@ public abstract class BaseShardingEngine {
private
final
ShardingSphereMetaData
metaData
;
private
final
Dat
eNodeRouter
date
NodeRouter
;
private
final
Dat
aNodeRouter
data
NodeRouter
;
private
final
SPIRoutingHook
routingHook
;
...
...
@@ -72,7 +72,7 @@ public abstract class BaseShardingEngine {
this
.
shardingRule
=
shardingRule
;
this
.
properties
=
properties
;
this
.
metaData
=
metaData
;
dat
eNodeRouter
=
new
Date
NodeRouter
(
metaData
,
properties
,
sqlParserEngine
);
dat
aNodeRouter
=
new
Data
NodeRouter
(
metaData
,
properties
,
sqlParserEngine
);
routingHook
=
new
SPIRoutingHook
();
}
...
...
@@ -96,13 +96,13 @@ public abstract class BaseShardingEngine {
protected
abstract
List
<
Object
>
cloneParameters
(
List
<
Object
>
parameters
);
protected
abstract
RouteContext
route
(
Dat
eNodeRouter
date
NodeRouter
,
String
sql
,
List
<
Object
>
parameters
);
protected
abstract
RouteContext
route
(
Dat
aNodeRouter
data
NodeRouter
,
String
sql
,
List
<
Object
>
parameters
);
private
ShardingRouteContext
executeRoute
(
final
String
sql
,
final
List
<
Object
>
clonedParameters
)
{
routingHook
.
start
(
sql
);
try
{
registerRouteDecorator
();
ShardingRouteContext
result
=
(
ShardingRouteContext
)
route
(
dat
e
NodeRouter
,
sql
,
clonedParameters
);
ShardingRouteContext
result
=
(
ShardingRouteContext
)
route
(
dat
a
NodeRouter
,
sql
,
clonedParameters
);
routingHook
.
finishSuccess
(
result
,
metaData
.
getSchema
());
return
result
;
// CHECKSTYLE:OFF
...
...
@@ -114,9 +114,9 @@ public abstract class BaseShardingEngine {
}
private
void
registerRouteDecorator
()
{
dat
e
NodeRouter
.
registerDecorator
(
shardingRule
,
new
ShardingRouteDecorator
());
dat
a
NodeRouter
.
registerDecorator
(
shardingRule
,
new
ShardingRouteDecorator
());
for
(
MasterSlaveRule
each
:
shardingRule
.
getMasterSlaveRules
())
{
dat
e
NodeRouter
.
registerDecorator
(
each
,
new
MasterSlaveRouteDecorator
());
dat
a
NodeRouter
.
registerDecorator
(
each
,
new
MasterSlaveRouteDecorator
());
}
}
...
...
sharding-core/sharding-core-entry/src/main/java/org/apache/shardingsphere/core/shard/PreparedQueryShardingEngine.java
浏览文件 @
6885ec6c
...
...
@@ -21,7 +21,7 @@ import org.apache.shardingsphere.core.rule.ShardingRule;
import
org.apache.shardingsphere.sql.parser.SQLParserEngine
;
import
org.apache.shardingsphere.underlying.common.config.properties.ConfigurationProperties
;
import
org.apache.shardingsphere.underlying.common.metadata.ShardingSphereMetaData
;
import
org.apache.shardingsphere.underlying.route.Dat
e
NodeRouter
;
import
org.apache.shardingsphere.underlying.route.Dat
a
NodeRouter
;
import
org.apache.shardingsphere.underlying.route.context.RouteContext
;
import
java.util.ArrayList
;
...
...
@@ -49,7 +49,7 @@ public final class PreparedQueryShardingEngine extends BaseShardingEngine {
}
@Override
protected
RouteContext
route
(
final
Dat
eNodeRouter
date
NodeRouter
,
final
String
sql
,
final
List
<
Object
>
parameters
)
{
return
dat
e
NodeRouter
.
route
(
sql
,
parameters
,
true
);
protected
RouteContext
route
(
final
Dat
aNodeRouter
data
NodeRouter
,
final
String
sql
,
final
List
<
Object
>
parameters
)
{
return
dat
a
NodeRouter
.
route
(
sql
,
parameters
,
true
);
}
}
sharding-core/sharding-core-entry/src/main/java/org/apache/shardingsphere/core/shard/SimpleQueryShardingEngine.java
浏览文件 @
6885ec6c
...
...
@@ -21,7 +21,7 @@ import org.apache.shardingsphere.core.rule.ShardingRule;
import
org.apache.shardingsphere.sql.parser.SQLParserEngine
;
import
org.apache.shardingsphere.underlying.common.config.properties.ConfigurationProperties
;
import
org.apache.shardingsphere.underlying.common.metadata.ShardingSphereMetaData
;
import
org.apache.shardingsphere.underlying.route.Dat
e
NodeRouter
;
import
org.apache.shardingsphere.underlying.route.Dat
a
NodeRouter
;
import
org.apache.shardingsphere.underlying.route.context.RouteContext
;
import
java.util.Collections
;
...
...
@@ -49,7 +49,7 @@ public final class SimpleQueryShardingEngine extends BaseShardingEngine {
}
@Override
protected
RouteContext
route
(
final
Dat
eNodeRouter
date
NodeRouter
,
final
String
sql
,
final
List
<
Object
>
parameters
)
{
return
dat
e
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
false
);
protected
RouteContext
route
(
final
Dat
aNodeRouter
data
NodeRouter
,
final
String
sql
,
final
List
<
Object
>
parameters
)
{
return
dat
a
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
false
);
}
}
sharding-core/sharding-core-entry/src/test/java/org/apache/shardingsphere/core/shard/PreparedQueryShardingEngineTest.java
浏览文件 @
6885ec6c
...
...
@@ -24,7 +24,7 @@ import org.apache.shardingsphere.sql.parser.SQLParserEngine;
import
org.apache.shardingsphere.sql.parser.binder.metadata.schema.SchemaMetaData
;
import
org.apache.shardingsphere.underlying.common.metadata.ShardingSphereMetaData
;
import
org.apache.shardingsphere.underlying.route.context.RouteContext
;
import
org.apache.shardingsphere.underlying.route.Dat
e
NodeRouter
;
import
org.apache.shardingsphere.underlying.route.Dat
a
NodeRouter
;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
...
...
@@ -48,7 +48,7 @@ public final class PreparedQueryShardingEngineTest extends BaseShardingEngineTes
private
ShardingRule
shardingRule
;
@Mock
private
Dat
eNodeRouter
date
NodeRouter
;
private
Dat
aNodeRouter
data
NodeRouter
;
private
PreparedQueryShardingEngine
shardingEngine
;
...
...
@@ -67,20 +67,20 @@ public final class PreparedQueryShardingEngineTest extends BaseShardingEngineTes
@SneakyThrows
private
void
setRoutingEngine
()
{
Field
field
=
BaseShardingEngine
.
class
.
getDeclaredField
(
"dat
e
NodeRouter"
);
Field
field
=
BaseShardingEngine
.
class
.
getDeclaredField
(
"dat
a
NodeRouter"
);
field
.
setAccessible
(
true
);
field
.
set
(
shardingEngine
,
dat
e
NodeRouter
);
field
.
set
(
shardingEngine
,
dat
a
NodeRouter
);
}
protected
void
assertShard
()
{
RouteContext
routeContext
=
createSQLRouteContext
();
when
(
dat
e
NodeRouter
.
route
(
getSql
(),
getParameters
(),
true
)).
thenReturn
(
routeContext
);
when
(
dat
a
NodeRouter
.
route
(
getSql
(),
getParameters
(),
true
)).
thenReturn
(
routeContext
);
assertExecutionContext
(
shardingEngine
.
shard
(
getSql
(),
getParameters
()));
}
@Test
(
expected
=
SQLException
.
class
)
public
void
assertWithRouteException
()
{
when
(
dat
e
NodeRouter
.
route
(
getSql
(),
getParameters
(),
true
)).
thenThrow
(
SQLException
.
class
);
when
(
dat
a
NodeRouter
.
route
(
getSql
(),
getParameters
(),
true
)).
thenThrow
(
SQLException
.
class
);
shardingEngine
.
shard
(
getSql
(),
getParameters
());
}
}
sharding-core/sharding-core-entry/src/test/java/org/apache/shardingsphere/core/shard/SimpleQueryShardingEngineTest.java
浏览文件 @
6885ec6c
...
...
@@ -24,7 +24,7 @@ import org.apache.shardingsphere.sql.parser.SQLParserEngine;
import
org.apache.shardingsphere.sql.parser.binder.metadata.schema.SchemaMetaData
;
import
org.apache.shardingsphere.underlying.common.metadata.ShardingSphereMetaData
;
import
org.apache.shardingsphere.underlying.route.context.RouteContext
;
import
org.apache.shardingsphere.underlying.route.Dat
e
NodeRouter
;
import
org.apache.shardingsphere.underlying.route.Dat
a
NodeRouter
;
import
org.junit.Before
;
import
org.junit.runner.RunWith
;
import
org.mockito.Mock
;
...
...
@@ -46,7 +46,7 @@ public final class SimpleQueryShardingEngineTest extends BaseShardingEngineTest
private
ShardingRule
shardingRule
;
@Mock
private
Dat
eNodeRouter
date
NodeRouter
;
private
Dat
aNodeRouter
data
NodeRouter
;
private
SimpleQueryShardingEngine
shardingEngine
;
...
...
@@ -65,14 +65,14 @@ public final class SimpleQueryShardingEngineTest extends BaseShardingEngineTest
@SneakyThrows
private
void
setRoutingEngine
()
{
Field
field
=
BaseShardingEngine
.
class
.
getDeclaredField
(
"dat
e
NodeRouter"
);
Field
field
=
BaseShardingEngine
.
class
.
getDeclaredField
(
"dat
a
NodeRouter"
);
field
.
setAccessible
(
true
);
field
.
set
(
shardingEngine
,
dat
e
NodeRouter
);
field
.
set
(
shardingEngine
,
dat
a
NodeRouter
);
}
protected
void
assertShard
()
{
RouteContext
routeContext
=
createSQLRouteContext
();
when
(
dat
e
NodeRouter
.
route
(
getSql
(),
Collections
.
emptyList
(),
false
)).
thenReturn
(
routeContext
);
when
(
dat
a
NodeRouter
.
route
(
getSql
(),
Collections
.
emptyList
(),
false
)).
thenReturn
(
routeContext
);
assertExecutionContext
(
shardingEngine
.
shard
(
getSql
(),
getParameters
()));
}
}
sharding-core/sharding-core-rewrite/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/MixSQLRewriterParameterizedTest.java
浏览文件 @
6885ec6c
...
...
@@ -42,7 +42,7 @@ import org.apache.shardingsphere.underlying.rewrite.engine.SQLRewriteResult;
import
org.apache.shardingsphere.underlying.rewrite.parameterized.engine.AbstractSQLRewriterParameterizedTest
;
import
org.apache.shardingsphere.underlying.rewrite.parameterized.engine.parameter.SQLRewriteEngineTestParameters
;
import
org.apache.shardingsphere.underlying.rewrite.parameterized.engine.parameter.SQLRewriteEngineTestParametersBuilder
;
import
org.apache.shardingsphere.underlying.route.Dat
e
NodeRouter
;
import
org.apache.shardingsphere.underlying.route.Dat
a
NodeRouter
;
import
org.apache.shardingsphere.underlying.route.context.RouteContext
;
import
org.apache.shardingsphere.underlying.route.context.RouteUnit
;
import
org.junit.runners.Parameterized.Parameters
;
...
...
@@ -80,7 +80,7 @@ public final class MixSQLRewriterParameterizedTest extends AbstractSQLRewriterPa
SQLParserEngine
sqlParserEngine
=
SQLParserEngineFactory
.
getSQLParserEngine
(
null
==
getTestParameters
().
getDatabaseType
()
?
"SQL92"
:
getTestParameters
().
getDatabaseType
());
ShardingSphereMetaData
metaData
=
createShardingSphereMetaData
();
ConfigurationProperties
properties
=
new
ConfigurationProperties
(
ruleConfiguration
.
getProps
());
RouteContext
routeContext
=
new
Dat
e
NodeRouter
(
metaData
,
properties
,
sqlParserEngine
).
route
(
getTestParameters
().
getInputSQL
(),
getTestParameters
().
getInputParameters
(),
false
);
RouteContext
routeContext
=
new
Dat
a
NodeRouter
(
metaData
,
properties
,
sqlParserEngine
).
route
(
getTestParameters
().
getInputSQL
(),
getTestParameters
().
getInputParameters
(),
false
);
ShardingRouteDecorator
shardingRouteDecorator
=
new
ShardingRouteDecorator
();
ShardingRouteContext
shardingRouteContext
=
(
ShardingRouteContext
)
shardingRouteDecorator
.
decorate
(
routeContext
,
metaData
,
shardingRule
,
properties
);
SQLRewriteContext
sqlRewriteContext
=
new
SQLRewriteContext
(
...
...
sharding-core/sharding-core-rewrite/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/ShardingSQLRewriterParameterizedTest.java
浏览文件 @
6885ec6c
...
...
@@ -41,7 +41,7 @@ import org.apache.shardingsphere.underlying.rewrite.engine.SQLRewriteResult;
import
org.apache.shardingsphere.underlying.rewrite.parameterized.engine.AbstractSQLRewriterParameterizedTest
;
import
org.apache.shardingsphere.underlying.rewrite.parameterized.engine.parameter.SQLRewriteEngineTestParameters
;
import
org.apache.shardingsphere.underlying.rewrite.parameterized.engine.parameter.SQLRewriteEngineTestParametersBuilder
;
import
org.apache.shardingsphere.underlying.route.Dat
e
NodeRouter
;
import
org.apache.shardingsphere.underlying.route.Dat
a
NodeRouter
;
import
org.apache.shardingsphere.underlying.route.context.RouteContext
;
import
org.apache.shardingsphere.underlying.route.context.RouteUnit
;
import
org.junit.runners.Parameterized.Parameters
;
...
...
@@ -79,7 +79,7 @@ public final class ShardingSQLRewriterParameterizedTest extends AbstractSQLRewri
SQLParserEngine
sqlParserEngine
=
SQLParserEngineFactory
.
getSQLParserEngine
(
null
==
getTestParameters
().
getDatabaseType
()
?
"SQL92"
:
getTestParameters
().
getDatabaseType
());
ShardingSphereMetaData
metaData
=
createShardingSphereMetaData
();
ConfigurationProperties
properties
=
new
ConfigurationProperties
(
ruleConfiguration
.
getProps
());
RouteContext
routeContext
=
new
Dat
e
NodeRouter
(
metaData
,
properties
,
sqlParserEngine
).
route
(
getTestParameters
().
getInputSQL
(),
getTestParameters
().
getInputParameters
(),
false
);
RouteContext
routeContext
=
new
Dat
a
NodeRouter
(
metaData
,
properties
,
sqlParserEngine
).
route
(
getTestParameters
().
getInputSQL
(),
getTestParameters
().
getInputParameters
(),
false
);
ShardingRouteDecorator
shardingRouteDecorator
=
new
ShardingRouteDecorator
();
ShardingRouteContext
shardingRouteContext
=
(
ShardingRouteContext
)
shardingRouteDecorator
.
decorate
(
routeContext
,
metaData
,
shardingRule
,
properties
);
SQLRewriteContext
sqlRewriteContext
=
new
SQLRewriteContext
(
...
...
sharding-core/sharding-core-route/src/test/java/org/apache/shardingsphere/sharding/route/DatabaseTest.java
浏览文件 @
6885ec6c
...
...
@@ -37,7 +37,7 @@ import org.apache.shardingsphere.sql.parser.binder.statement.dml.SelectStatement
import
org.apache.shardingsphere.underlying.common.config.properties.ConfigurationProperties
;
import
org.apache.shardingsphere.underlying.common.metadata.ShardingSphereMetaData
;
import
org.apache.shardingsphere.underlying.common.metadata.datasource.DataSourceMetas
;
import
org.apache.shardingsphere.underlying.route.Dat
e
NodeRouter
;
import
org.apache.shardingsphere.underlying.route.Dat
a
NodeRouter
;
import
org.apache.shardingsphere.underlying.route.context.RouteContext
;
import
org.junit.Before
;
import
org.junit.Test
;
...
...
@@ -77,7 +77,7 @@ public final class DatabaseTest {
String
originSQL
=
"select * from tesT"
;
SQLParserEngine
sqlParserEngine
=
SQLParserEngineFactory
.
getSQLParserEngine
(
"MySQL"
);
ShardingSphereMetaData
metaData
=
getMetaDataForAllRoutingSQL
();
RouteContext
routeContext
=
new
Dat
e
NodeRouter
(
metaData
,
properties
,
sqlParserEngine
).
route
(
originSQL
,
Collections
.
emptyList
(),
false
);
RouteContext
routeContext
=
new
Dat
a
NodeRouter
(
metaData
,
properties
,
sqlParserEngine
).
route
(
originSQL
,
Collections
.
emptyList
(),
false
);
ShardingRouteDecorator
shardingRouteDecorator
=
new
ShardingRouteDecorator
();
ShardingRouteContext
actual
=
(
ShardingRouteContext
)
shardingRouteDecorator
.
decorate
(
routeContext
,
metaData
,
shardingRule
,
properties
);
assertThat
(
actual
.
getRouteResult
().
getRouteUnits
().
size
(),
is
(
1
));
...
...
@@ -101,13 +101,13 @@ public final class DatabaseTest {
String
originSQL
=
"select user_id from tbl_pagination limit 0,5"
;
SQLParserEngine
sqlParserEngine
=
SQLParserEngineFactory
.
getSQLParserEngine
(
"MySQL"
);
ShardingSphereMetaData
metaData
=
getMetaDataForPagination
();
RouteContext
routeContext
=
new
Dat
e
NodeRouter
(
metaData
,
properties
,
sqlParserEngine
).
route
(
originSQL
,
Collections
.
emptyList
(),
false
);
RouteContext
routeContext
=
new
Dat
a
NodeRouter
(
metaData
,
properties
,
sqlParserEngine
).
route
(
originSQL
,
Collections
.
emptyList
(),
false
);
ShardingRouteDecorator
shardingRouteDecorator
=
new
ShardingRouteDecorator
();
ShardingRouteContext
actual
=
(
ShardingRouteContext
)
shardingRouteDecorator
.
decorate
(
routeContext
,
metaData
,
shardingRule
,
properties
);
assertThat
(((
SelectStatementContext
)
actual
.
getSqlStatementContext
()).
getPaginationContext
().
getActualOffset
(),
is
(
0L
));
assertThat
(((
SelectStatementContext
)
actual
.
getSqlStatementContext
()).
getPaginationContext
().
getActualRowCount
().
orElse
(
null
),
is
(
5L
));
originSQL
=
"select user_id from tbl_pagination limit 5,5"
;
routeContext
=
new
Dat
e
NodeRouter
(
metaData
,
properties
,
sqlParserEngine
).
route
(
originSQL
,
Collections
.
emptyList
(),
false
);
routeContext
=
new
Dat
a
NodeRouter
(
metaData
,
properties
,
sqlParserEngine
).
route
(
originSQL
,
Collections
.
emptyList
(),
false
);
shardingRouteDecorator
=
new
ShardingRouteDecorator
();
actual
=
(
ShardingRouteContext
)
shardingRouteDecorator
.
decorate
(
routeContext
,
metaData
,
shardingRule
,
properties
);
assertThat
(((
SelectStatementContext
)
actual
.
getSqlStatementContext
()).
getPaginationContext
().
getActualOffset
(),
is
(
5L
));
...
...
@@ -141,14 +141,14 @@ public final class DatabaseTest {
ShardingSphereMetaData
metaData
=
mock
(
ShardingSphereMetaData
.
class
);
when
(
metaData
.
getSchema
()).
thenReturn
(
mock
(
SchemaMetaData
.
class
));
SQLParserEngine
sqlParserEngine
=
SQLParserEngineFactory
.
getSQLParserEngine
(
"MySQL"
);
RouteContext
routeContext
=
new
Dat
e
NodeRouter
(
metaData
,
properties
,
sqlParserEngine
).
route
(
originSQL
,
Lists
.
newArrayList
(
13
,
173
),
false
);
RouteContext
routeContext
=
new
Dat
a
NodeRouter
(
metaData
,
properties
,
sqlParserEngine
).
route
(
originSQL
,
Lists
.
newArrayList
(
13
,
173
),
false
);
ShardingRouteDecorator
shardingRouteDecorator
=
new
ShardingRouteDecorator
();
ShardingRouteContext
actual
=
(
ShardingRouteContext
)
shardingRouteDecorator
.
decorate
(
routeContext
,
metaData
,
shardingRule
,
properties
);
assertThat
(((
SelectStatementContext
)
actual
.
getSqlStatementContext
()).
getPaginationContext
().
getActualOffset
(),
is
(
5L
));
assertThat
(((
SelectStatementContext
)
actual
.
getSqlStatementContext
()).
getPaginationContext
().
getActualRowCount
().
orElse
(
null
),
is
(
10L
));
assertThat
(
actual
.
getRouteResult
().
getRouteUnits
().
size
(),
is
(
1
));
originSQL
=
"select city_id from t_user where city_id in (?,?) limit 5,10"
;
routeContext
=
new
Dat
e
NodeRouter
(
metaData
,
properties
,
sqlParserEngine
).
route
(
originSQL
,
Lists
.
newArrayList
(
89
,
84
),
false
);
routeContext
=
new
Dat
a
NodeRouter
(
metaData
,
properties
,
sqlParserEngine
).
route
(
originSQL
,
Lists
.
newArrayList
(
89
,
84
),
false
);
shardingRouteDecorator
=
new
ShardingRouteDecorator
();
actual
=
(
ShardingRouteContext
)
shardingRouteDecorator
.
decorate
(
routeContext
,
metaData
,
shardingRule
,
properties
);
assertThat
(((
SelectStatementContext
)
actual
.
getSqlStatementContext
()).
getPaginationContext
().
getActualOffset
(),
is
(
5L
));
...
...
sharding-core/sharding-core-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/AbstractSQLRouteTest.java
浏览文件 @
6885ec6c
...
...
@@ -31,7 +31,7 @@ import org.apache.shardingsphere.underlying.common.config.properties.Configurati
import
org.apache.shardingsphere.underlying.common.database.type.DatabaseTypes
;
import
org.apache.shardingsphere.underlying.common.metadata.ShardingSphereMetaData
;
import
org.apache.shardingsphere.underlying.common.metadata.datasource.DataSourceMetas
;
import
org.apache.shardingsphere.underlying.route.Dat
e
NodeRouter
;
import
org.apache.shardingsphere.underlying.route.Dat
a
NodeRouter
;
import
org.apache.shardingsphere.underlying.route.context.RouteContext
;
import
java.util.Arrays
;
...
...
@@ -51,7 +51,7 @@ public abstract class AbstractSQLRouteTest extends AbstractRoutingEngineTest {
ShardingSphereMetaData
metaData
=
new
ShardingSphereMetaData
(
buildDataSourceMetas
(),
buildSchemaMetaData
());
ConfigurationProperties
properties
=
new
ConfigurationProperties
(
new
Properties
());
SQLParserEngine
sqlParserEngine
=
SQLParserEngineFactory
.
getSQLParserEngine
(
"MySQL"
);
RouteContext
routeContext
=
new
Dat
e
NodeRouter
(
metaData
,
properties
,
sqlParserEngine
).
route
(
sql
,
parameters
,
false
);
RouteContext
routeContext
=
new
Dat
a
NodeRouter
(
metaData
,
properties
,
sqlParserEngine
).
route
(
sql
,
parameters
,
false
);
ShardingRouteDecorator
shardingRouteDecorator
=
new
ShardingRouteDecorator
();
ShardingRouteContext
result
=
(
ShardingRouteContext
)
shardingRouteDecorator
.
decorate
(
routeContext
,
metaData
,
shardingRule
,
properties
);
assertThat
(
result
.
getRouteResult
().
getRouteUnits
().
size
(),
is
(
1
));
...
...
sharding-jdbc/sharding-jdbc-core/src/main/java/org/apache/shardingsphere/shardingjdbc/jdbc/core/statement/MasterSlavePreparedStatement.java
浏览文件 @
6885ec6c
...
...
@@ -27,7 +27,7 @@ import org.apache.shardingsphere.shardingjdbc.jdbc.core.constant.SQLExceptionCon
import
org.apache.shardingsphere.shardingjdbc.jdbc.core.context.MasterSlaveRuntimeContext
;
import
org.apache.shardingsphere.underlying.route.context.RouteContext
;
import
org.apache.shardingsphere.underlying.route.context.RouteUnit
;
import
org.apache.shardingsphere.underlying.route.Dat
e
NodeRouter
;
import
org.apache.shardingsphere.underlying.route.Dat
a
NodeRouter
;
import
java.sql.PreparedStatement
;
import
java.sql.ResultSet
;
...
...
@@ -61,9 +61,9 @@ public final class MasterSlavePreparedStatement extends AbstractMasterSlavePrepa
}
this
.
connection
=
connection
;
MasterSlaveRuntimeContext
runtimeContext
=
connection
.
getRuntimeContext
();
Dat
eNodeRouter
dateNodeRouter
=
new
Date
NodeRouter
(
runtimeContext
.
getMetaData
(),
runtimeContext
.
getProperties
(),
runtimeContext
.
getSqlParserEngine
());
dat
e
NodeRouter
.
registerDecorator
(
runtimeContext
.
getRule
(),
new
MasterSlaveRouteDecorator
());
RouteContext
routeContext
=
dat
e
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
true
);
Dat
aNodeRouter
dataNodeRouter
=
new
Data
NodeRouter
(
runtimeContext
.
getMetaData
(),
runtimeContext
.
getProperties
(),
runtimeContext
.
getSqlParserEngine
());
dat
a
NodeRouter
.
registerDecorator
(
runtimeContext
.
getRule
(),
new
MasterSlaveRouteDecorator
());
RouteContext
routeContext
=
dat
a
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
true
);
for
(
RouteUnit
each
:
routeContext
.
getRouteResult
().
getRouteUnits
())
{
PreparedStatement
preparedStatement
=
connection
.
getConnection
(
each
.
getDataSourceMapper
().
getActualName
()).
prepareStatement
(
sql
,
resultSetType
,
resultSetConcurrency
,
resultSetHoldability
);
routedStatements
.
add
(
preparedStatement
);
...
...
@@ -76,9 +76,9 @@ public final class MasterSlavePreparedStatement extends AbstractMasterSlavePrepa
}
this
.
connection
=
connection
;
MasterSlaveRuntimeContext
runtimeContext
=
connection
.
getRuntimeContext
();
Dat
eNodeRouter
dateNodeRouter
=
new
Date
NodeRouter
(
runtimeContext
.
getMetaData
(),
runtimeContext
.
getProperties
(),
runtimeContext
.
getSqlParserEngine
());
dat
e
NodeRouter
.
registerDecorator
(
runtimeContext
.
getRule
(),
new
MasterSlaveRouteDecorator
());
RouteContext
routeContext
=
dat
e
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
true
);
Dat
aNodeRouter
dataNodeRouter
=
new
Data
NodeRouter
(
runtimeContext
.
getMetaData
(),
runtimeContext
.
getProperties
(),
runtimeContext
.
getSqlParserEngine
());
dat
a
NodeRouter
.
registerDecorator
(
runtimeContext
.
getRule
(),
new
MasterSlaveRouteDecorator
());
RouteContext
routeContext
=
dat
a
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
true
);
for
(
RouteUnit
each
:
routeContext
.
getRouteResult
().
getRouteUnits
())
{
PreparedStatement
preparedStatement
=
connection
.
getConnection
(
each
.
getDataSourceMapper
().
getActualName
()).
prepareStatement
(
sql
,
autoGeneratedKeys
);
routedStatements
.
add
(
preparedStatement
);
...
...
@@ -91,9 +91,9 @@ public final class MasterSlavePreparedStatement extends AbstractMasterSlavePrepa
}
this
.
connection
=
connection
;
MasterSlaveRuntimeContext
runtimeContext
=
connection
.
getRuntimeContext
();
Dat
eNodeRouter
dateNodeRouter
=
new
Date
NodeRouter
(
runtimeContext
.
getMetaData
(),
runtimeContext
.
getProperties
(),
runtimeContext
.
getSqlParserEngine
());
dat
e
NodeRouter
.
registerDecorator
(
runtimeContext
.
getRule
(),
new
MasterSlaveRouteDecorator
());
RouteContext
routeContext
=
dat
e
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
true
);
Dat
aNodeRouter
dataNodeRouter
=
new
Data
NodeRouter
(
runtimeContext
.
getMetaData
(),
runtimeContext
.
getProperties
(),
runtimeContext
.
getSqlParserEngine
());
dat
a
NodeRouter
.
registerDecorator
(
runtimeContext
.
getRule
(),
new
MasterSlaveRouteDecorator
());
RouteContext
routeContext
=
dat
a
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
true
);
for
(
RouteUnit
each
:
routeContext
.
getRouteResult
().
getRouteUnits
())
{
PreparedStatement
preparedStatement
=
connection
.
getConnection
(
each
.
getDataSourceMapper
().
getActualName
()).
prepareStatement
(
sql
,
columnIndexes
);
routedStatements
.
add
(
preparedStatement
);
...
...
@@ -106,9 +106,9 @@ public final class MasterSlavePreparedStatement extends AbstractMasterSlavePrepa
}
this
.
connection
=
connection
;
MasterSlaveRuntimeContext
runtimeContext
=
connection
.
getRuntimeContext
();
Dat
eNodeRouter
dateNodeRouter
=
new
Date
NodeRouter
(
runtimeContext
.
getMetaData
(),
runtimeContext
.
getProperties
(),
runtimeContext
.
getSqlParserEngine
());
dat
e
NodeRouter
.
registerDecorator
(
runtimeContext
.
getRule
(),
new
MasterSlaveRouteDecorator
());
RouteContext
routeContext
=
dat
e
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
true
);
Dat
aNodeRouter
dataNodeRouter
=
new
Data
NodeRouter
(
runtimeContext
.
getMetaData
(),
runtimeContext
.
getProperties
(),
runtimeContext
.
getSqlParserEngine
());
dat
a
NodeRouter
.
registerDecorator
(
runtimeContext
.
getRule
(),
new
MasterSlaveRouteDecorator
());
RouteContext
routeContext
=
dat
a
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
true
);
for
(
RouteUnit
each
:
routeContext
.
getRouteResult
().
getRouteUnits
())
{
PreparedStatement
preparedStatement
=
connection
.
getConnection
(
each
.
getDataSourceMapper
().
getActualName
()).
prepareStatement
(
sql
,
columnNames
);
routedStatements
.
add
(
preparedStatement
);
...
...
sharding-jdbc/sharding-jdbc-core/src/main/java/org/apache/shardingsphere/shardingjdbc/jdbc/core/statement/MasterSlaveStatement.java
浏览文件 @
6885ec6c
...
...
@@ -28,7 +28,7 @@ import org.apache.shardingsphere.shardingjdbc.jdbc.core.constant.SQLExceptionCon
import
org.apache.shardingsphere.shardingjdbc.jdbc.core.context.MasterSlaveRuntimeContext
;
import
org.apache.shardingsphere.underlying.route.context.RouteContext
;
import
org.apache.shardingsphere.underlying.route.context.RouteUnit
;
import
org.apache.shardingsphere.underlying.route.Dat
e
NodeRouter
;
import
org.apache.shardingsphere.underlying.route.Dat
a
NodeRouter
;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
...
...
@@ -46,7 +46,7 @@ public final class MasterSlaveStatement extends AbstractStatementAdapter {
private
final
MasterSlaveConnection
connection
;
@Getter
(
AccessLevel
.
NONE
)
private
final
Dat
eNodeRouter
date
NodeRouter
;
private
final
Dat
aNodeRouter
data
NodeRouter
;
private
final
int
resultSetType
;
...
...
@@ -67,7 +67,7 @@ public final class MasterSlaveStatement extends AbstractStatementAdapter {
public
MasterSlaveStatement
(
final
MasterSlaveConnection
connection
,
final
int
resultSetType
,
final
int
resultSetConcurrency
,
final
int
resultSetHoldability
)
{
super
(
Statement
.
class
);
this
.
connection
=
connection
;
dat
eNodeRouter
=
new
Date
NodeRouter
(
connection
.
getRuntimeContext
().
getMetaData
(),
connection
.
getRuntimeContext
().
getProperties
(),
connection
.
getRuntimeContext
().
getSqlParserEngine
());
dat
aNodeRouter
=
new
Data
NodeRouter
(
connection
.
getRuntimeContext
().
getMetaData
(),
connection
.
getRuntimeContext
().
getProperties
(),
connection
.
getRuntimeContext
().
getSqlParserEngine
());
this
.
resultSetType
=
resultSetType
;
this
.
resultSetConcurrency
=
resultSetConcurrency
;
this
.
resultSetHoldability
=
resultSetHoldability
;
...
...
@@ -80,8 +80,8 @@ public final class MasterSlaveStatement extends AbstractStatementAdapter {
}
clearPrevious
();
MasterSlaveRuntimeContext
runtimeContext
=
connection
.
getRuntimeContext
();
dat
e
NodeRouter
.
registerDecorator
(
runtimeContext
.
getRule
(),
new
MasterSlaveRouteDecorator
());
RouteContext
routeContext
=
dat
e
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
false
);
dat
a
NodeRouter
.
registerDecorator
(
runtimeContext
.
getRule
(),
new
MasterSlaveRouteDecorator
());
RouteContext
routeContext
=
dat
a
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
false
);
Collection
<
RouteUnit
>
routeUnits
=
routeContext
.
getRouteResult
().
getRouteUnits
();
Preconditions
.
checkState
(
1
==
routeUnits
.
size
(),
"Cannot support executeQuery for DML or DDL"
);
Statement
statement
=
connection
.
getConnection
(
routeUnits
.
iterator
().
next
().
getDataSourceMapper
().
getActualName
()).
createStatement
(
resultSetType
,
resultSetConcurrency
,
resultSetHoldability
);
...
...
@@ -94,7 +94,7 @@ public final class MasterSlaveStatement extends AbstractStatementAdapter {
clearPrevious
();
int
result
=
0
;
MasterSlaveRuntimeContext
runtimeContext
=
connection
.
getRuntimeContext
();
RouteContext
routeContext
=
dat
e
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
false
);
RouteContext
routeContext
=
dat
a
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
false
);
routeContext
=
new
MasterSlaveRouteDecorator
().
decorate
(
routeContext
,
runtimeContext
.
getMetaData
(),
runtimeContext
.
getRule
(),
runtimeContext
.
getProperties
());
for
(
RouteUnit
each
:
routeContext
.
getRouteResult
().
getRouteUnits
())
{
Statement
statement
=
connection
.
getConnection
(
each
.
getDataSourceMapper
().
getActualName
()).
createStatement
(
resultSetType
,
resultSetConcurrency
,
resultSetHoldability
);
...
...
@@ -109,7 +109,7 @@ public final class MasterSlaveStatement extends AbstractStatementAdapter {
clearPrevious
();
int
result
=
0
;
MasterSlaveRuntimeContext
runtimeContext
=
connection
.
getRuntimeContext
();
RouteContext
routeContext
=
dat
e
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
false
);
RouteContext
routeContext
=
dat
a
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
false
);
routeContext
=
new
MasterSlaveRouteDecorator
().
decorate
(
routeContext
,
runtimeContext
.
getMetaData
(),
runtimeContext
.
getRule
(),
runtimeContext
.
getProperties
());
for
(
RouteUnit
each
:
routeContext
.
getRouteResult
().
getRouteUnits
())
{
Statement
statement
=
connection
.
getConnection
(
each
.
getDataSourceMapper
().
getActualName
()).
createStatement
(
resultSetType
,
resultSetConcurrency
,
resultSetHoldability
);
...
...
@@ -124,7 +124,7 @@ public final class MasterSlaveStatement extends AbstractStatementAdapter {
clearPrevious
();
int
result
=
0
;
MasterSlaveRuntimeContext
runtimeContext
=
connection
.
getRuntimeContext
();
RouteContext
routeContext
=
dat
e
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
false
);
RouteContext
routeContext
=
dat
a
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
false
);
routeContext
=
new
MasterSlaveRouteDecorator
().
decorate
(
routeContext
,
runtimeContext
.
getMetaData
(),
runtimeContext
.
getRule
(),
runtimeContext
.
getProperties
());
for
(
RouteUnit
each
:
routeContext
.
getRouteResult
().
getRouteUnits
())
{
Statement
statement
=
connection
.
getConnection
(
each
.
getDataSourceMapper
().
getActualName
()).
createStatement
(
resultSetType
,
resultSetConcurrency
,
resultSetHoldability
);
...
...
@@ -139,7 +139,7 @@ public final class MasterSlaveStatement extends AbstractStatementAdapter {
clearPrevious
();
int
result
=
0
;
MasterSlaveRuntimeContext
runtimeContext
=
connection
.
getRuntimeContext
();
RouteContext
routeContext
=
dat
e
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
false
);
RouteContext
routeContext
=
dat
a
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
false
);
routeContext
=
new
MasterSlaveRouteDecorator
().
decorate
(
routeContext
,
runtimeContext
.
getMetaData
(),
runtimeContext
.
getRule
(),
runtimeContext
.
getProperties
());
for
(
RouteUnit
each
:
routeContext
.
getRouteResult
().
getRouteUnits
())
{
Statement
statement
=
connection
.
getConnection
(
each
.
getDataSourceMapper
().
getActualName
()).
createStatement
(
resultSetType
,
resultSetConcurrency
,
resultSetHoldability
);
...
...
@@ -154,7 +154,7 @@ public final class MasterSlaveStatement extends AbstractStatementAdapter {
clearPrevious
();
boolean
result
=
false
;
MasterSlaveRuntimeContext
runtimeContext
=
connection
.
getRuntimeContext
();
RouteContext
routeContext
=
dat
e
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
false
);
RouteContext
routeContext
=
dat
a
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
false
);
routeContext
=
new
MasterSlaveRouteDecorator
().
decorate
(
routeContext
,
runtimeContext
.
getMetaData
(),
runtimeContext
.
getRule
(),
runtimeContext
.
getProperties
());
for
(
RouteUnit
each
:
routeContext
.
getRouteResult
().
getRouteUnits
())
{
Statement
statement
=
connection
.
getConnection
(
each
.
getDataSourceMapper
().
getActualName
()).
createStatement
(
resultSetType
,
resultSetConcurrency
,
resultSetHoldability
);
...
...
@@ -169,7 +169,7 @@ public final class MasterSlaveStatement extends AbstractStatementAdapter {
clearPrevious
();
boolean
result
=
false
;
MasterSlaveRuntimeContext
runtimeContext
=
connection
.
getRuntimeContext
();
RouteContext
routeContext
=
dat
e
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
false
);
RouteContext
routeContext
=
dat
a
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
false
);
routeContext
=
new
MasterSlaveRouteDecorator
().
decorate
(
routeContext
,
runtimeContext
.
getMetaData
(),
runtimeContext
.
getRule
(),
runtimeContext
.
getProperties
());
for
(
RouteUnit
each
:
routeContext
.
getRouteResult
().
getRouteUnits
())
{
Statement
statement
=
connection
.
getConnection
(
each
.
getDataSourceMapper
().
getActualName
()).
createStatement
(
resultSetType
,
resultSetConcurrency
,
resultSetHoldability
);
...
...
@@ -184,7 +184,7 @@ public final class MasterSlaveStatement extends AbstractStatementAdapter {
clearPrevious
();
boolean
result
=
false
;
MasterSlaveRuntimeContext
runtimeContext
=
connection
.
getRuntimeContext
();
RouteContext
routeContext
=
dat
e
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
false
);
RouteContext
routeContext
=
dat
a
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
false
);
routeContext
=
new
MasterSlaveRouteDecorator
().
decorate
(
routeContext
,
runtimeContext
.
getMetaData
(),
runtimeContext
.
getRule
(),
runtimeContext
.
getProperties
());
for
(
RouteUnit
each
:
routeContext
.
getRouteResult
().
getRouteUnits
())
{
Statement
statement
=
connection
.
getConnection
(
each
.
getDataSourceMapper
().
getActualName
()).
createStatement
(
resultSetType
,
resultSetConcurrency
,
resultSetHoldability
);
...
...
@@ -199,7 +199,7 @@ public final class MasterSlaveStatement extends AbstractStatementAdapter {
clearPrevious
();
boolean
result
=
false
;
MasterSlaveRuntimeContext
runtimeContext
=
connection
.
getRuntimeContext
();
RouteContext
routeContext
=
dat
e
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
false
);
RouteContext
routeContext
=
dat
a
NodeRouter
.
route
(
sql
,
Collections
.
emptyList
(),
false
);
routeContext
=
new
MasterSlaveRouteDecorator
().
decorate
(
routeContext
,
runtimeContext
.
getMetaData
(),
runtimeContext
.
getRule
(),
runtimeContext
.
getProperties
());
for
(
RouteUnit
each
:
routeContext
.
getRouteResult
().
getRouteUnits
())
{
Statement
statement
=
connection
.
getConnection
(
each
.
getDataSourceMapper
().
getActualName
()).
createStatement
(
resultSetType
,
resultSetConcurrency
,
resultSetHoldability
);
...
...
sharding-proxy/sharding-proxy-backend/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/wrapper/PreparedStatementExecutorWrapper.java
浏览文件 @
6885ec6c
...
...
@@ -46,7 +46,7 @@ import org.apache.shardingsphere.underlying.rewrite.context.SQLRewriteContext;
import
org.apache.shardingsphere.underlying.rewrite.context.SQLRewriteContextDecorator
;
import
org.apache.shardingsphere.underlying.rewrite.engine.SQLRewriteResult
;
import
org.apache.shardingsphere.underlying.rewrite.engine.impl.DefaultSQLRewriteEngine
;
import
org.apache.shardingsphere.underlying.route.Dat
e
NodeRouter
;
import
org.apache.shardingsphere.underlying.route.Dat
a
NodeRouter
;
import
org.apache.shardingsphere.underlying.route.context.RouteContext
;
import
org.apache.shardingsphere.underlying.route.context.RouteUnit
;
...
...
@@ -102,9 +102,9 @@ public final class PreparedStatementExecutorWrapper implements JDBCExecutorWrapp
sqlRewriteContext
.
generateSQLTokens
();
String
rewriteSQL
=
new
DefaultSQLRewriteEngine
().
rewrite
(
sqlRewriteContext
).
getSql
();
ExecutionContext
result
=
new
ExecutionContext
(
sqlStatementContext
);
Dat
eNodeRouter
dateNodeRouter
=
new
Date
NodeRouter
(
logicSchema
.
getMetaData
(),
SHARDING_PROXY_CONTEXT
.
getProperties
(),
logicSchema
.
getSqlParserEngine
());
dat
e
NodeRouter
.
registerDecorator
(((
MasterSlaveSchema
)
logicSchema
).
getMasterSlaveRule
(),
new
MasterSlaveRouteDecorator
());
RouteContext
routeContext
=
dat
e
NodeRouter
.
route
(
rewriteSQL
,
parameters
,
true
);
Dat
aNodeRouter
dataNodeRouter
=
new
Data
NodeRouter
(
logicSchema
.
getMetaData
(),
SHARDING_PROXY_CONTEXT
.
getProperties
(),
logicSchema
.
getSqlParserEngine
());
dat
a
NodeRouter
.
registerDecorator
(((
MasterSlaveSchema
)
logicSchema
).
getMasterSlaveRule
(),
new
MasterSlaveRouteDecorator
());
RouteContext
routeContext
=
dat
a
NodeRouter
.
route
(
rewriteSQL
,
parameters
,
true
);
for
(
RouteUnit
each
:
routeContext
.
getRouteResult
().
getRouteUnits
())
{
result
.
getExecutionUnits
().
add
(
new
ExecutionUnit
(
each
.
getDataSourceMapper
().
getActualName
(),
new
SQLUnit
(
rewriteSQL
,
parameters
)));
}
...
...
sharding-proxy/sharding-proxy-backend/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/wrapper/StatementExecutorWrapper.java
浏览文件 @
6885ec6c
...
...
@@ -46,7 +46,7 @@ import org.apache.shardingsphere.underlying.rewrite.context.SQLRewriteContext;
import
org.apache.shardingsphere.underlying.rewrite.context.SQLRewriteContextDecorator
;
import
org.apache.shardingsphere.underlying.rewrite.engine.SQLRewriteResult
;
import
org.apache.shardingsphere.underlying.rewrite.engine.impl.DefaultSQLRewriteEngine
;
import
org.apache.shardingsphere.underlying.route.Dat
e
NodeRouter
;
import
org.apache.shardingsphere.underlying.route.Dat
a
NodeRouter
;
import
org.apache.shardingsphere.underlying.route.context.RouteContext
;
import
org.apache.shardingsphere.underlying.route.context.RouteUnit
;
...
...
@@ -99,9 +99,9 @@ public final class StatementExecutorWrapper implements JDBCExecutorWrapper {
sqlRewriteContext
.
generateSQLTokens
();
String
rewriteSQL
=
new
DefaultSQLRewriteEngine
().
rewrite
(
sqlRewriteContext
).
getSql
();
ExecutionContext
result
=
new
ExecutionContext
(
sqlStatementContext
);
Dat
eNodeRouter
dateNodeRouter
=
new
Date
NodeRouter
(
logicSchema
.
getMetaData
(),
SHARDING_PROXY_CONTEXT
.
getProperties
(),
logicSchema
.
getSqlParserEngine
());
dat
e
NodeRouter
.
registerDecorator
(((
MasterSlaveSchema
)
logicSchema
).
getMasterSlaveRule
(),
new
MasterSlaveRouteDecorator
());
RouteContext
routeContext
=
dat
e
NodeRouter
.
route
(
rewriteSQL
,
Collections
.
emptyList
(),
false
);
Dat
aNodeRouter
dataNodeRouter
=
new
Data
NodeRouter
(
logicSchema
.
getMetaData
(),
SHARDING_PROXY_CONTEXT
.
getProperties
(),
logicSchema
.
getSqlParserEngine
());
dat
a
NodeRouter
.
registerDecorator
(((
MasterSlaveSchema
)
logicSchema
).
getMasterSlaveRule
(),
new
MasterSlaveRouteDecorator
());
RouteContext
routeContext
=
dat
a
NodeRouter
.
route
(
rewriteSQL
,
Collections
.
emptyList
(),
false
);
for
(
RouteUnit
each
:
routeContext
.
getRouteResult
().
getRouteUnits
())
{
result
.
getExecutionUnits
().
add
(
new
ExecutionUnit
(
each
.
getDataSourceMapper
().
getActualName
(),
new
SQLUnit
(
rewriteSQL
,
Collections
.
emptyList
())));
}
...
...
shardingsphere-underlying/shardingsphere-route/src/main/java/org/apache/shardingsphere/underlying/route/Dat
e
NodeRouter.java
→
shardingsphere-underlying/shardingsphere-route/src/main/java/org/apache/shardingsphere/underlying/route/Dat
a
NodeRouter.java
浏览文件 @
6885ec6c
...
...
@@ -39,7 +39,7 @@ import java.util.Map.Entry;
* Data node router.
*/
@RequiredArgsConstructor
public
final
class
Dat
e
NodeRouter
{
public
final
class
Dat
a
NodeRouter
{
private
final
ShardingSphereMetaData
metaData
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录