You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2021/08/12 02:58:07 UTC
[shardingsphere] branch master updated: Refactor
shardingsphere-shadow-core first step (#11743)
This is an automated email from the ASF dual-hosted git repository.
panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 45eb443 Refactor shardingsphere-shadow-core first step (#11743)
45eb443 is described below
commit 45eb44338e34fa085a9dc4650312dafa40df8331
Author: gin <ja...@163.com>
AuthorDate: Thu Aug 12 10:57:32 2021 +0800
Refactor shardingsphere-shadow-core first step (#11743)
* Add shadow future function interface function.
* Add shadow future function basic skeleton classes.
* Private no args constructor.
* Refactor engine classes name.
* Refactor the boundary of the shadow route engine interface.
* Refactor shadow route engine method.
* Fix method.
* Fix shadow switch.
---
.../shadow/route/ShadowSQLRouter.java | 22 +++++-
.../route/future/engine/ShadowRouteEngine.java | 41 +++++++++++
.../future/engine/ShadowRouteEngineFactory.java | 80 ++++++++++++++++++++++
.../impl/ShadowDeleteStatementRoutingEngine.java | 36 ++++++++++
.../impl/ShadowInsertStatementRoutingEngine.java | 36 ++++++++++
.../impl/ShadowNonMDLStatementRoutingEngine.java | 36 ++++++++++
.../impl/ShadowSelectStatementRoutingEngine.java | 36 ++++++++++
.../impl/ShadowUpdateStatementRoutingEngine.java | 36 ++++++++++
8 files changed, 320 insertions(+), 3 deletions(-)
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/ShadowSQLRouter.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/ShadowSQLRouter.java
index fe44993..b5f156d 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/ShadowSQLRouter.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/ShadowSQLRouter.java
@@ -26,11 +26,11 @@ import org.apache.shardingsphere.infra.route.context.RouteContext;
import org.apache.shardingsphere.infra.route.context.RouteMapper;
import org.apache.shardingsphere.infra.route.context.RouteUnit;
import org.apache.shardingsphere.shadow.constant.ShadowOrder;
+import org.apache.shardingsphere.shadow.route.future.engine.ShadowRouteEngineFactory;
import org.apache.shardingsphere.shadow.route.judge.ShadowDataSourceJudgeEngine;
import org.apache.shardingsphere.shadow.route.judge.impl.PreparedShadowDataSourceJudgeEngine;
import org.apache.shardingsphere.shadow.route.judge.impl.SimpleShadowDataSourceJudgeEngine;
import org.apache.shardingsphere.shadow.rule.ShadowRule;
-import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.DMLStatement;
import java.util.Collection;
@@ -46,8 +46,7 @@ public final class ShadowSQLRouter implements SQLRouter<ShadowRule> {
@Override
public RouteContext createRouteContext(final LogicSQL logicSQL, final ShardingSphereMetaData metaData, final ShadowRule rule, final ConfigurationProperties props) {
- SQLStatement sqlStatement = logicSQL.getSqlStatementContext().getSqlStatement();
- return sqlStatement instanceof DMLStatement ? createRouteContextInDML(logicSQL, rule) : createRouteContextWithoutDML(rule);
+ return logicSQL.getSqlStatementContext().getSqlStatement() instanceof DMLStatement ? createRouteContextInDML(logicSQL, rule) : createRouteContextWithoutDML(rule);
}
private RouteContext createRouteContextWithoutDML(final ShadowRule rule) {
@@ -85,6 +84,14 @@ public final class ShadowSQLRouter implements SQLRouter<ShadowRule> {
@Override
public void decorateRouteContext(final RouteContext routeContext,
final LogicSQL logicSQL, final ShardingSphereMetaData metaData, final ShadowRule rule, final ConfigurationProperties props) {
+ if (isShadowEnable()) {
+ doShadowDecorateFuture(routeContext, logicSQL, metaData, rule, props);
+ } else {
+ doShadowDecorate(routeContext, logicSQL, rule);
+ }
+ }
+
+ private void doShadowDecorate(final RouteContext routeContext, final LogicSQL logicSQL, final ShadowRule rule) {
Collection<RouteUnit> toBeAdded = new LinkedList<>();
if (!(logicSQL.getSqlStatementContext().getSqlStatement() instanceof DMLStatement)) {
for (RouteUnit each : routeContext.getRouteUnits()) {
@@ -106,6 +113,15 @@ public final class ShadowSQLRouter implements SQLRouter<ShadowRule> {
routeContext.getRouteUnits().addAll(toBeAdded);
}
+ private void doShadowDecorateFuture(final RouteContext routeContext, final LogicSQL logicSQL, final ShardingSphereMetaData metaData, final ShadowRule rule, final ConfigurationProperties props) {
+ ShadowRouteEngineFactory.newInstance(logicSQL).route(routeContext, logicSQL, metaData, rule, props);
+ }
+
+ // fixme the shadow switch reconstruction is complete
+ private boolean isShadowEnable() {
+ return false;
+ }
+
@Override
public int getOrder() {
return ShadowOrder.ORDER;
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/future/engine/ShadowRouteEngine.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/future/engine/ShadowRouteEngine.java
new file mode 100644
index 0000000..4a7e916
--- /dev/null
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/future/engine/ShadowRouteEngine.java
@@ -0,0 +1,41 @@
+/*
+ * 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.shadow.route.future.engine;
+
+import org.apache.shardingsphere.infra.binder.LogicSQL;
+import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
+import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
+import org.apache.shardingsphere.infra.route.context.RouteContext;
+import org.apache.shardingsphere.shadow.rule.ShadowRule;
+
+/**
+ * Shadow route engine.
+ */
+public interface ShadowRouteEngine {
+
+ /**
+ * Route.
+ *
+ * @param routeContext route context
+ * @param logicSQL logic SQL
+ * @param metaData shardingSphere meta data
+ * @param shadowRule shadow rule
+ * @param props configuration properties
+ */
+ void route(RouteContext routeContext, LogicSQL logicSQL, ShardingSphereMetaData metaData, ShadowRule shadowRule, ConfigurationProperties props);
+}
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/future/engine/ShadowRouteEngineFactory.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/future/engine/ShadowRouteEngineFactory.java
new file mode 100644
index 0000000..6ce0bb0
--- /dev/null
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/future/engine/ShadowRouteEngineFactory.java
@@ -0,0 +1,80 @@
+/*
+ * 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.shadow.route.future.engine;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import org.apache.shardingsphere.infra.binder.LogicSQL;
+import org.apache.shardingsphere.shadow.route.future.engine.impl.ShadowDeleteStatementRoutingEngine;
+import org.apache.shardingsphere.shadow.route.future.engine.impl.ShadowInsertStatementRoutingEngine;
+import org.apache.shardingsphere.shadow.route.future.engine.impl.ShadowNonMDLStatementRoutingEngine;
+import org.apache.shardingsphere.shadow.route.future.engine.impl.ShadowSelectStatementRoutingEngine;
+import org.apache.shardingsphere.shadow.route.future.engine.impl.ShadowUpdateStatementRoutingEngine;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.DeleteStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.InsertStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.UpdateStatement;
+
+/**
+ * Shadow routing engine factory.
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class ShadowRouteEngineFactory {
+
+ /**
+ * Create new instance of shadow route engine.
+ *
+ * @param logicSQL logic SQL
+ * @return new instance of shadow route engine.
+ */
+ public static ShadowRouteEngine newInstance(final LogicSQL logicSQL) {
+ SQLStatement sqlStatement = logicSQL.getSqlStatementContext().getSqlStatement();
+ if (sqlStatement instanceof InsertStatement) {
+ return createShadowInsertStatementRoutingEngine();
+ } else if (sqlStatement instanceof DeleteStatement) {
+ return createShadowDeleteStatementRoutingEngine();
+ } else if (sqlStatement instanceof UpdateStatement) {
+ return createShadowUpdateStatementRoutingEngine();
+ } else if (sqlStatement instanceof SelectStatement) {
+ return createShadowSelectStatementRoutingEngine();
+ } else {
+ return createShadowNonMDLStatementRoutingEngine();
+ }
+ }
+
+ private static ShadowRouteEngine createShadowNonMDLStatementRoutingEngine() {
+ return new ShadowNonMDLStatementRoutingEngine();
+ }
+
+ private static ShadowRouteEngine createShadowSelectStatementRoutingEngine() {
+ return new ShadowSelectStatementRoutingEngine();
+ }
+
+ private static ShadowRouteEngine createShadowUpdateStatementRoutingEngine() {
+ return new ShadowUpdateStatementRoutingEngine();
+ }
+
+ private static ShadowRouteEngine createShadowDeleteStatementRoutingEngine() {
+ return new ShadowDeleteStatementRoutingEngine();
+ }
+
+ private static ShadowRouteEngine createShadowInsertStatementRoutingEngine() {
+ return new ShadowInsertStatementRoutingEngine();
+ }
+}
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/future/engine/impl/ShadowDeleteStatementRoutingEngine.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/future/engine/impl/ShadowDeleteStatementRoutingEngine.java
new file mode 100644
index 0000000..5964a73
--- /dev/null
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/future/engine/impl/ShadowDeleteStatementRoutingEngine.java
@@ -0,0 +1,36 @@
+/*
+ * 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.shadow.route.future.engine.impl;
+
+import org.apache.shardingsphere.infra.binder.LogicSQL;
+import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
+import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
+import org.apache.shardingsphere.infra.route.context.RouteContext;
+import org.apache.shardingsphere.shadow.route.future.engine.ShadowRouteEngine;
+import org.apache.shardingsphere.shadow.rule.ShadowRule;
+
+/**
+ * Shadow delete statement routing engine.
+ */
+public final class ShadowDeleteStatementRoutingEngine implements ShadowRouteEngine {
+
+ @Override
+ public void route(final RouteContext routeContext, final LogicSQL logicSQL, final ShardingSphereMetaData metaData, final ShadowRule shadowRule, final ConfigurationProperties props) {
+ // TODO decorate route in delete statement case
+ }
+}
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/future/engine/impl/ShadowInsertStatementRoutingEngine.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/future/engine/impl/ShadowInsertStatementRoutingEngine.java
new file mode 100644
index 0000000..96bee8f
--- /dev/null
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/future/engine/impl/ShadowInsertStatementRoutingEngine.java
@@ -0,0 +1,36 @@
+/*
+ * 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.shadow.route.future.engine.impl;
+
+import org.apache.shardingsphere.infra.binder.LogicSQL;
+import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
+import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
+import org.apache.shardingsphere.infra.route.context.RouteContext;
+import org.apache.shardingsphere.shadow.route.future.engine.ShadowRouteEngine;
+import org.apache.shardingsphere.shadow.rule.ShadowRule;
+
+/**
+ * Shadow insert statement routing engine.
+ */
+public final class ShadowInsertStatementRoutingEngine implements ShadowRouteEngine {
+
+ @Override
+ public void route(final RouteContext routeContext, final LogicSQL logicSQL, final ShardingSphereMetaData metaData, final ShadowRule shadowRule, final ConfigurationProperties props) {
+ // TODO decorate route in insert statement case
+ }
+}
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/future/engine/impl/ShadowNonMDLStatementRoutingEngine.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/future/engine/impl/ShadowNonMDLStatementRoutingEngine.java
new file mode 100644
index 0000000..4c8d392
--- /dev/null
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/future/engine/impl/ShadowNonMDLStatementRoutingEngine.java
@@ -0,0 +1,36 @@
+/*
+ * 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.shadow.route.future.engine.impl;
+
+import org.apache.shardingsphere.infra.binder.LogicSQL;
+import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
+import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
+import org.apache.shardingsphere.infra.route.context.RouteContext;
+import org.apache.shardingsphere.shadow.route.future.engine.ShadowRouteEngine;
+import org.apache.shardingsphere.shadow.rule.ShadowRule;
+
+/**
+ * Shadow non-MDL statement routing engine.
+ */
+public final class ShadowNonMDLStatementRoutingEngine implements ShadowRouteEngine {
+
+ @Override
+ public void route(final RouteContext routeContext, final LogicSQL logicSQL, final ShardingSphereMetaData metaData, final ShadowRule shadowRule, final ConfigurationProperties props) {
+ // TODO decorate route in non-MDL statement case
+ }
+}
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/future/engine/impl/ShadowSelectStatementRoutingEngine.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/future/engine/impl/ShadowSelectStatementRoutingEngine.java
new file mode 100644
index 0000000..23d22f4
--- /dev/null
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/future/engine/impl/ShadowSelectStatementRoutingEngine.java
@@ -0,0 +1,36 @@
+/*
+ * 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.shadow.route.future.engine.impl;
+
+import org.apache.shardingsphere.infra.binder.LogicSQL;
+import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
+import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
+import org.apache.shardingsphere.infra.route.context.RouteContext;
+import org.apache.shardingsphere.shadow.route.future.engine.ShadowRouteEngine;
+import org.apache.shardingsphere.shadow.rule.ShadowRule;
+
+/**
+ * Shadow select statement routing engine.
+ */
+public final class ShadowSelectStatementRoutingEngine implements ShadowRouteEngine {
+
+ @Override
+ public void route(final RouteContext routeContext, final LogicSQL logicSQL, final ShardingSphereMetaData metaData, final ShadowRule shadowRule, final ConfigurationProperties props) {
+ // TODO decorate route in select statement case
+ }
+}
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/future/engine/impl/ShadowUpdateStatementRoutingEngine.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/future/engine/impl/ShadowUpdateStatementRoutingEngine.java
new file mode 100644
index 0000000..9c01f4c
--- /dev/null
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/future/engine/impl/ShadowUpdateStatementRoutingEngine.java
@@ -0,0 +1,36 @@
+/*
+ * 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.shadow.route.future.engine.impl;
+
+import org.apache.shardingsphere.infra.binder.LogicSQL;
+import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
+import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
+import org.apache.shardingsphere.infra.route.context.RouteContext;
+import org.apache.shardingsphere.shadow.route.future.engine.ShadowRouteEngine;
+import org.apache.shardingsphere.shadow.rule.ShadowRule;
+
+/**
+ * Shadow update statement routing engine.
+ */
+public final class ShadowUpdateStatementRoutingEngine implements ShadowRouteEngine {
+
+ @Override
+ public void route(final RouteContext routeContext, final LogicSQL logicSQL, final ShardingSphereMetaData metaData, final ShadowRule shadowRule, final ConfigurationProperties props) {
+ // TODO decorate route in update statement case
+ }
+}