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 cb110996a55 Merge ShardingConditionEngine and
DefaultShardingConditionEngine (#23715)
cb110996a55 is described below
commit cb110996a55d0749c6bb0c51a363418c26f00a69
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Jan 24 20:48:46 2023 +0800
Merge ShardingConditionEngine and DefaultShardingConditionEngine (#23715)
---
docs/document/content/dev-manual/sharding.cn.md | 16 -------
docs/document/content/dev-manual/sharding.en.md | 16 -------
...MLShardingConditionsShardingAuditAlgorithm.java | 5 +--
.../decider/ShardingSQLFederationDecider.java | 5 +--
.../sharding/route/engine/ShardingSQLRouter.java | 5 +--
.../condition/engine/ShardingConditionEngine.java | 49 ----------------------
.../engine/ShardingConditionEngineFactory.java | 6 +--
.../impl/DefaultShardingConditionEngine.java | 24 +++++++----
...engine.condition.engine.ShardingConditionEngine | 18 --------
.../decider/ShardingSQLFederationDeciderTest.java | 3 +-
.../engine/ShardingConditionEngineFactoryTest.java | 5 +--
11 files changed, 29 insertions(+), 123 deletions(-)
diff --git a/docs/document/content/dev-manual/sharding.cn.md
b/docs/document/content/dev-manual/sharding.cn.md
index 332f175b5eb..ce413846ebe 100644
--- a/docs/document/content/dev-manual/sharding.cn.md
+++ b/docs/document/content/dev-manual/sharding.cn.md
@@ -85,19 +85,3 @@ chapter = true
| ----------------------- | ----------------------------- | ---------- |
| DatabaseDatetimeService | 从数据库中获取当前时间进行路由 |
[`org.apache.shardingsphere.datetime.database.DatabaseDatetimeService`](https://github.com/apache/shardingsphere/blob/master/infra/datetime/type/database/src/main/java/org/apache/shardingsphere/datetime/database/DatabaseDatetimeService.java)
|
| SystemDatetime | 从应用系统时间中获取当前时间进行路由 |
[`org.apache.shardingsphere.datetime.system.SystemDatetimeService`](https://github.com/apache/shardingsphere/blob/master/infra/datetime/type/system/src/main/java/org/apache/shardingsphere/datetime/system/SystemDatetimeService.java)
|
-
-## ShardingConditionEngine
-
-### 全限定类名
-
-[`org.apache.shardingsphere.sharding.route.engine.condition.engine.ShardingConditionEngine`](https://github.com/apache/shardingsphere/blob/master/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngine.java)
-
-### 定义
-
-分片条件生成引擎
-
-### 已知实现
-
-| *配置标识* | *详细说明* | *全限定类名* |
-| ------------------------------ | ---------------- | ---------- |
-| DefaultShardingConditionEngine | 默认分片条件生成引擎 |
[`org.apache.shardingsphere.sharding.route.engine.condition.engine.impl.DefaultShardingConditionEngine`](https://github.com/apache/shardingsphere/blob/master/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/impl/DefaultShardingConditionEngine.java)
|
diff --git a/docs/document/content/dev-manual/sharding.en.md
b/docs/document/content/dev-manual/sharding.en.md
index 3a90bdccbf8..f5904c57b7e 100644
--- a/docs/document/content/dev-manual/sharding.en.md
+++ b/docs/document/content/dev-manual/sharding.en.md
@@ -85,19 +85,3 @@ Obtain the current date for routing definition
| ----------------------- |
------------------------------------------------------------ |
---------------------------- |
| DatabaseDatetimeService | Get the current time from the database for routing
|
[`org.apache.shardingsphere.datetime.database.DatabaseDatetimeService`](https://github.com/apache/shardingsphere/blob/master/infra/datetime/type/database/src/main/java/org/apache/shardingsphere/datetime/database/DatabaseDatetimeService.java)
|
| SystemDatetime | Get the current time from the application system
for routing |
[`org.apache.shardingsphere.datetime.system.SystemDatetimeService`](https://github.com/apache/shardingsphere/blob/master/infra/datetime/type/system/src/main/java/org/apache/shardingsphere/datetime/system/SystemDatetimeService.java)
|
-
-## ShardingConditionEngine
-
-### Fully-qualified class name
-
-[`org.apache.shardingsphere.sharding.route.engine.condition.engine.ShardingConditionEngine`](https://github.com/apache/shardingsphere/blob/master/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngine.java)
-
-### Definition
-
-Sharding condition generator engine
-
-### Implementation classes
-
-| *Configuration Type* | *Description*
| *Fully-qualified class name* |
-| ------------------------------ | -------------------------------------------
| ---------------------------- |
-| DefaultShardingConditionEngine | Default sharding condition generator engine
|
[`org.apache.shardingsphere.sharding.route.engine.condition.engine.impl.DefaultShardingConditionEngine`](https://github.com/apache/shardingsphere/blob/master/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/impl/DefaultShardingConditionEngine.java)
|
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/audit/DMLShardingConditionsShardingAuditAlgorithm.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/audit/DMLShardingConditionsShardingAuditAlgorithm.java
index 318748ab4c1..1a4c9cea8ea 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/audit/DMLShardingConditionsShardingAuditAlgorithm.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/audit/DMLShardingConditionsShardingAuditAlgorithm.java
@@ -23,8 +23,8 @@ import
org.apache.shardingsphere.infra.executor.check.exception.SQLCheckExceptio
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.user.Grantee;
import
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
-import
org.apache.shardingsphere.sharding.route.engine.condition.engine.ShardingConditionEngine;
import
org.apache.shardingsphere.sharding.route.engine.condition.engine.ShardingConditionEngineFactory;
+import
org.apache.shardingsphere.sharding.route.engine.condition.engine.impl.DefaultShardingConditionEngine;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
import org.apache.shardingsphere.sharding.spi.ShardingAuditAlgorithm;
import
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.DMLStatement;
@@ -45,7 +45,6 @@ public final class
DMLShardingConditionsShardingAuditAlgorithm implements Shardi
this.props = props;
}
- @SuppressWarnings({"rawtypes", "unchecked"})
@Override
public void check(final SQLStatementContext<?> sqlStatementContext, final
List<Object> params, final Grantee grantee, final ShardingSphereDatabase
database) {
if (sqlStatementContext.getSqlStatement() instanceof DMLStatement) {
@@ -54,7 +53,7 @@ public final class
DMLShardingConditionsShardingAuditAlgorithm implements Shardi
||
sqlStatementContext.getTablesContext().getTableNames().stream().noneMatch(rule::isShardingTable))
{
return;
}
- ShardingConditionEngine shardingConditionEngine =
ShardingConditionEngineFactory.createShardingConditionEngine(database, rule);
+ DefaultShardingConditionEngine shardingConditionEngine =
ShardingConditionEngineFactory.createShardingConditionEngine(database, rule);
ShardingSpherePreconditions.checkState(!shardingConditionEngine.createShardingConditions(sqlStatementContext,
params).isEmpty(),
() -> new SQLCheckException("Not allow DML operation
without sharding conditions"));
}
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/decider/ShardingSQLFederationDecider.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/decider/ShardingSQLFederationDecider.java
index 25c4a428207..7b93fc77c47 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/decider/ShardingSQLFederationDecider.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/decider/ShardingSQLFederationDecider.java
@@ -26,8 +26,8 @@ import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.sharding.constant.ShardingOrder;
import
org.apache.shardingsphere.sharding.route.engine.condition.ShardingCondition;
import
org.apache.shardingsphere.sharding.route.engine.condition.ShardingConditions;
-import
org.apache.shardingsphere.sharding.route.engine.condition.engine.ShardingConditionEngine;
import
org.apache.shardingsphere.sharding.route.engine.condition.engine.ShardingConditionEngineFactory;
+import
org.apache.shardingsphere.sharding.route.engine.condition.engine.impl.DefaultShardingConditionEngine;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
import java.util.Collection;
@@ -68,9 +68,8 @@ public final class ShardingSQLFederationDecider implements
SQLFederationDecider<
}
}
- @SuppressWarnings({"unchecked", "rawtypes"})
private static ShardingConditions getMergedShardingConditions(final
QueryContext queryContext, final ShardingSphereDatabase database, final
ShardingRule rule) {
- ShardingConditionEngine shardingConditionEngine =
ShardingConditionEngineFactory.createShardingConditionEngine(database, rule);
+ DefaultShardingConditionEngine shardingConditionEngine =
ShardingConditionEngineFactory.createShardingConditionEngine(database, rule);
List<ShardingCondition> shardingConditions =
shardingConditionEngine.createShardingConditions(queryContext.getSqlStatementContext(),
queryContext.getParameters());
ShardingConditions result = new ShardingConditions(shardingConditions,
queryContext.getSqlStatementContext(), rule);
if (result.isNeedMerge()) {
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/ShardingSQLRouter.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/ShardingSQLRouter.java
index 857ad37a1bc..315de10a376 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/ShardingSQLRouter.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/ShardingSQLRouter.java
@@ -27,8 +27,8 @@ import
org.apache.shardingsphere.infra.route.context.RouteContext;
import org.apache.shardingsphere.sharding.constant.ShardingOrder;
import
org.apache.shardingsphere.sharding.route.engine.condition.ShardingCondition;
import
org.apache.shardingsphere.sharding.route.engine.condition.ShardingConditions;
-import
org.apache.shardingsphere.sharding.route.engine.condition.engine.ShardingConditionEngine;
import
org.apache.shardingsphere.sharding.route.engine.condition.engine.ShardingConditionEngineFactory;
+import
org.apache.shardingsphere.sharding.route.engine.condition.engine.impl.DefaultShardingConditionEngine;
import
org.apache.shardingsphere.sharding.route.engine.type.ShardingRouteEngineFactory;
import
org.apache.shardingsphere.sharding.route.engine.validator.ShardingStatementValidator;
import
org.apache.shardingsphere.sharding.route.engine.validator.ShardingStatementValidatorFactory;
@@ -61,11 +61,10 @@ public final class ShardingSQLRouter implements
SQLRouter<ShardingRule> {
return result;
}
- @SuppressWarnings({"rawtypes", "unchecked"})
private ShardingConditions createShardingConditions(final QueryContext
queryContext, final ShardingSphereDatabase database, final ShardingRule rule) {
List<ShardingCondition> shardingConditions;
if (queryContext.getSqlStatementContext().getSqlStatement() instanceof
DMLStatement || queryContext.getSqlStatementContext() instanceof
CursorAvailable) {
- ShardingConditionEngine shardingConditionEngine =
ShardingConditionEngineFactory.createShardingConditionEngine(database, rule);
+ DefaultShardingConditionEngine shardingConditionEngine =
ShardingConditionEngineFactory.createShardingConditionEngine(database, rule);
shardingConditions =
shardingConditionEngine.createShardingConditions(queryContext.getSqlStatementContext(),
queryContext.getParameters());
} else {
shardingConditions = Collections.emptyList();
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngine.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngine.java
deleted file mode 100644
index b6ceab18215..00000000000
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngine.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.sharding.route.engine.condition.engine;
-
-import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
-import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPI;
-import
org.apache.shardingsphere.sharding.route.engine.condition.ShardingCondition;
-import org.apache.shardingsphere.sharding.rule.ShardingRule;
-
-import java.util.List;
-
-/**
- * Sharding condition engine.
- */
-public interface ShardingConditionEngine<T extends SQLStatementContext<?>>
extends RequiredSPI {
-
- /**
- * Initialize sharding condition engine.
- *
- * @param rule sharding rule
- * @param database sharding database
- */
- void init(ShardingRule rule, ShardingSphereDatabase database);
-
- /**
- * Create sharding conditions.
- *
- * @param sqlStatementContext SQL statement context
- * @param params SQL parameters
- * @return sharding conditions
- */
- List<ShardingCondition> createShardingConditions(T sqlStatementContext,
List<Object> params);
-}
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngineFactory.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngineFactory.java
index 23fc3c085d6..aa22add2119 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngineFactory.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngineFactory.java
@@ -20,7 +20,7 @@ package
org.apache.shardingsphere.sharding.route.engine.condition.engine;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import
org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
+import
org.apache.shardingsphere.sharding.route.engine.condition.engine.impl.DefaultShardingConditionEngine;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
/**
@@ -36,8 +36,8 @@ public final class ShardingConditionEngineFactory {
* @param rule sharding rule
* @return created instance
*/
- public static ShardingConditionEngine<?>
createShardingConditionEngine(final ShardingSphereDatabase database, final
ShardingRule rule) {
- ShardingConditionEngine<?> result =
RequiredSPIRegistry.getService(ShardingConditionEngine.class);
+ public static DefaultShardingConditionEngine
createShardingConditionEngine(final ShardingSphereDatabase database, final
ShardingRule rule) {
+ DefaultShardingConditionEngine result = new
DefaultShardingConditionEngine();
result.init(rule, database);
return result;
}
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/impl/DefaultShardingConditionEngine.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/impl/DefaultShardingConditionEngine.java
index 826cb7b7f6c..0ba853db0b2 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/impl/DefaultShardingConditionEngine.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/impl/DefaultShardingConditionEngine.java
@@ -21,7 +21,6 @@ import
org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import
org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.sharding.route.engine.condition.ShardingCondition;
-import
org.apache.shardingsphere.sharding.route.engine.condition.engine.ShardingConditionEngine;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
import java.util.List;
@@ -29,23 +28,34 @@ import java.util.List;
/**
* Default sharding condition engine.
*/
-public final class DefaultShardingConditionEngine implements
ShardingConditionEngine<SQLStatementContext<?>> {
+public final class DefaultShardingConditionEngine {
private ShardingRule shardingRule;
private ShardingSphereDatabase database;
- @Override
+ /**
+ * Initialize sharding condition engine.
+ *
+ * @param shardingRule sharding rule
+ * @param database sharding database
+ */
public void init(final ShardingRule shardingRule, final
ShardingSphereDatabase database) {
this.shardingRule = shardingRule;
this.database = database;
}
- @Override
- public List<ShardingCondition> createShardingConditions(final
SQLStatementContext<?> sqlStatementContext, final List<Object> parameters) {
+ /**
+ * Create sharding conditions.
+ *
+ * @param sqlStatementContext SQL statement context
+ * @param params SQL parameters
+ * @return sharding conditions
+ */
+ public List<ShardingCondition> createShardingConditions(final
SQLStatementContext<?> sqlStatementContext, final List<Object> params) {
if (sqlStatementContext instanceof InsertStatementContext) {
- return new InsertClauseShardingConditionEngine(shardingRule,
database).createShardingConditions((InsertStatementContext)
sqlStatementContext, parameters);
+ return new InsertClauseShardingConditionEngine(shardingRule,
database).createShardingConditions((InsertStatementContext)
sqlStatementContext, params);
}
- return new WhereClauseShardingConditionEngine(shardingRule,
database).createShardingConditions(sqlStatementContext, parameters);
+ return new WhereClauseShardingConditionEngine(shardingRule,
database).createShardingConditions(sqlStatementContext, params);
}
}
diff --git
a/features/sharding/core/src/main/resources/META-INF/services/org.apache.shardingsphere.sharding.route.engine.condition.engine.ShardingConditionEngine
b/features/sharding/core/src/main/resources/META-INF/services/org.apache.shardingsphere.sharding.route.engine.condition.engine.ShardingConditionEngine
deleted file mode 100644
index dd6f99b26cf..00000000000
---
a/features/sharding/core/src/main/resources/META-INF/services/org.apache.shardingsphere.sharding.route.engine.condition.engine.ShardingConditionEngine
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# 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.
-#
-
-org.apache.shardingsphere.sharding.route.engine.condition.engine.impl.DefaultShardingConditionEngine
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/decider/ShardingSQLFederationDeciderTest.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/decider/ShardingSQLFederationDeciderTest.java
index da4bef5edae..32e19cf73d5 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/decider/ShardingSQLFederationDeciderTest.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/decider/ShardingSQLFederationDeciderTest.java
@@ -26,7 +26,6 @@ import
org.apache.shardingsphere.infra.database.type.dialect.PostgreSQLDatabaseT
import org.apache.shardingsphere.infra.datanode.DataNode;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.sharding.route.engine.condition.ShardingCondition;
-import
org.apache.shardingsphere.sharding.route.engine.condition.engine.ShardingConditionEngine;
import
org.apache.shardingsphere.sharding.route.engine.condition.engine.ShardingConditionEngineFactory;
import
org.apache.shardingsphere.sharding.route.engine.condition.engine.impl.DefaultShardingConditionEngine;
import
org.apache.shardingsphere.sharding.route.engine.condition.value.ListShardingConditionValue;
@@ -76,7 +75,7 @@ public final class ShardingSQLFederationDeciderTest {
SQLFederationDeciderContext actual = new SQLFederationDeciderContext();
ShardingSQLFederationDecider federationDecider = new
ShardingSQLFederationDecider();
try (MockedStatic<ShardingConditionEngineFactory>
shardingConditionEngineFactory =
mockStatic(ShardingConditionEngineFactory.class)) {
- ShardingConditionEngine<?> shardingConditionEngine =
mock(DefaultShardingConditionEngine.class);
+ DefaultShardingConditionEngine shardingConditionEngine =
mock(DefaultShardingConditionEngine.class);
when(shardingConditionEngine.createShardingConditions(any(),
any())).thenReturn(createShardingConditions());
shardingConditionEngineFactory.when(() ->
ShardingConditionEngineFactory.createShardingConditionEngine(any(),
any())).thenReturn(shardingConditionEngine);
federationDecider.decide(actual, queryContext, createDatabase(),
createShardingRule(), new ConfigurationProperties(new Properties()));
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngineFactoryTest.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngineFactoryTest.java
index 641ebb16915..85251e7a60a 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngineFactoryTest.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngineFactoryTest.java
@@ -65,7 +65,6 @@ public final class ShardingConditionEngineFactoryTest {
@Mock
private ShardingRule shardingRule;
- @SuppressWarnings({"rawtypes", "unchecked"})
@Test
public void assertCreateInsertClauseShardingConditionEngine() {
ShardingSphereDatabase database =
ShardingSphereDatabase.create("test_db",
DatabaseTypeEngine.getDatabaseType("MySQL"));
@@ -77,7 +76,7 @@ public final class ShardingConditionEngineFactoryTest {
when(insertStatementContext.getColumnNames()).thenReturn(Collections.singletonList("foo_col"));
when(insertStatementContext.getInsertValueContexts()).thenReturn(Collections.singletonList(insertValueContext));
when(insertStatementContext.getGeneratedKeyContext()).thenReturn(Optional.empty());
- ShardingConditionEngine engine =
ShardingConditionEngineFactory.createShardingConditionEngine(database,
shardingRule);
+ DefaultShardingConditionEngine engine =
ShardingConditionEngineFactory.createShardingConditionEngine(database,
shardingRule);
assertThat(engine, instanceOf(DefaultShardingConditionEngine.class));
List<ShardingCondition> shardingConditions =
engine.createShardingConditions(insertStatementContext,
Collections.emptyList());
assertThat(shardingConditions.get(0).getStartIndex(), is(0));
@@ -101,7 +100,7 @@ public final class ShardingConditionEngineFactoryTest {
when(sqlStatementContext.getWhereSegments()).thenReturn(Collections.singleton(whereSegment));
when(sqlStatementContext.getTablesContext()).thenReturn(tablesContext);
when(tablesContext.findTableNamesByColumnSegment(anyCollection(),
any())).thenReturn(Maps.of("foo_sharding_col", "table_1"));
- ShardingConditionEngine engine =
ShardingConditionEngineFactory.createShardingConditionEngine(database,
shardingRule);
+ DefaultShardingConditionEngine engine =
ShardingConditionEngineFactory.createShardingConditionEngine(database,
shardingRule);
assertThat(engine, instanceOf(DefaultShardingConditionEngine.class));
List<ShardingCondition> shardingConditions =
engine.createShardingConditions(sqlStatementContext, Collections.emptyList());
assertThat(shardingConditions.get(0).getStartIndex(), is(0));