You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2026/03/26 08:53:47 UTC
(shardingsphere) branch master updated: Refactor index access with IdentifierValue (#38559)
This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 67d86a31524 Refactor index access with IdentifierValue (#38559)
67d86a31524 is described below
commit 67d86a31524d143697b1d7c3ef8999331decdb50
Author: ZhangCheng <ch...@apache.org>
AuthorDate: Thu Mar 26 16:53:40 2026 +0800
Refactor index access with IdentifierValue (#38559)
* Refactor index access with IdentifierValue
* Refactor index access with IdentifierValue
---
.../encrypt/merge/dal/EncryptDALResultDecorator.java | 5 ++---
.../encrypt/merge/dql/EncryptMergedResult.java | 4 ++--
.../sql/util/ShardingSupportedCheckUtils.java | 2 +-
.../ddl/ShardingAlterIndexSupportedCheckerTest.java | 20 ++++++++++++--------
.../ddl/ShardingDropIndexSupportedCheckerTest.java | 10 ++++++----
.../ShardingTableBroadcastRouteEngineTest.java | 10 +++++-----
.../dml/from/type/SimpleTableSegmentBinder.java | 8 ++++----
.../database/schema/model/ShardingSphereTable.java | 2 +-
.../database/schema/util/IndexMetaDataUtils.java | 5 +++--
.../shardingsphere/single/rule/SingleRuleTest.java | 9 +++++----
10 files changed, 41 insertions(+), 34 deletions(-)
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java
index 5ee31d3cf27..05b256889a7 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.encrypt.merge.dal;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.attribute.type.ViewInResultSetSQLStatementAttribute;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.encrypt.merge.dal.show.EncryptShowColumnsMergedResult;
import org.apache.shardingsphere.encrypt.merge.dal.show.EncryptShowCreateTableMergedResult;
@@ -33,7 +32,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.attribute.type.ColumnInResultSetSQLStatementAttribute;
import org.apache.shardingsphere.sql.parser.statement.core.statement.attribute.type.TableInResultSetSQLStatementAttribute;
-import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.attribute.type.ViewInResultSetSQLStatementAttribute;
import java.util.Collection;
import java.util.Optional;
@@ -55,7 +54,7 @@ public final class EncryptDALResultDecorator implements ResultDecorator {
return mergedResult;
}
ShardingSphereDatabase shardingSphereDatabase = simpleTables.iterator().next().getTableName().getTableBoundInfo().map(TableSegmentBoundInfo::getOriginalDatabase)
- .map(IdentifierValue::getValue).map(metaData::getDatabase).orElse(database);
+ .map(metaData::getDatabase).orElse(database);
Optional<EncryptRule> encryptRule = shardingSphereDatabase.getRuleMetaData().findSingleRule(EncryptRule.class);
if (!encryptRule.isPresent()) {
return mergedResult;
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptMergedResult.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptMergedResult.java
index 32d7960c34c..430d9959334 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptMergedResult.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptMergedResult.java
@@ -58,8 +58,8 @@ public final class EncryptMergedResult extends DecoratorMergedResult {
}
String originalTableName = columnSegmentBoundInfo.get().getOriginalTable().getValue();
String originalColumnName = columnSegmentBoundInfo.get().getOriginalColumn().getValue();
- ShardingSphereDatabase database = metaData.containsDatabase(columnSegmentBoundInfo.get().getOriginalDatabase().getValue())
- ? metaData.getDatabase(columnSegmentBoundInfo.get().getOriginalDatabase().getValue())
+ ShardingSphereDatabase database = metaData.containsDatabase(columnSegmentBoundInfo.get().getOriginalDatabase())
+ ? metaData.getDatabase(columnSegmentBoundInfo.get().getOriginalDatabase())
: this.database;
Optional<EncryptRule> rule = database.getRuleMetaData().findSingleRule(EncryptRule.class);
if (!rule.isPresent() || !rule.get().findEncryptTable(originalTableName).map(optional -> optional.isEncryptColumn(originalColumnName)).orElse(false)) {
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/checker/sql/util/ShardingSupportedCheckUtils.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/checker/sql/util/ShardingSupportedCheckUtils.java
index 9c5abb288c5..9df08a1572f 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/checker/sql/util/ShardingSupportedCheckUtils.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/checker/sql/util/ShardingSupportedCheckUtils.java
@@ -42,7 +42,7 @@ public final class ShardingSupportedCheckUtils {
* @return whether schema contains index or not
*/
public static boolean isSchemaContainsIndex(final ShardingSphereSchema schema, final IndexSegment index) {
- return schema.getAllTables().stream().anyMatch(each -> each.containsIndex(index.getIndexName().getIdentifier().getValue()));
+ return schema.getAllTables().stream().anyMatch(each -> each.containsIndex(index.getIndexName().getIdentifier()));
}
/**
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingAlterIndexSupportedCheckerTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingAlterIndexSupportedCheckerTest.java
index f3c1ce00153..b24784f5ff0 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingAlterIndexSupportedCheckerTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingAlterIndexSupportedCheckerTest.java
@@ -58,11 +58,13 @@ class ShardingAlterIndexSupportedCheckerTest {
void assertCheckWhenIndexExistRenameIndexNotExistForPostgreSQL() {
ShardingSphereTable table = mock(ShardingSphereTable.class);
ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
+ IdentifierValue currentIndexName = new IdentifierValue("foo_tbl_idx");
+ IdentifierValue renamedIndexName = new IdentifierValue("foo_tbl_idx_new");
when(schema.getAllTables()).thenReturn(Collections.singleton(table));
- when(table.containsIndex("foo_tbl_idx")).thenReturn(true);
- when(table.containsIndex("foo_tbl_idx_new")).thenReturn(false);
- AlterIndexStatement sqlStatement = new AlterIndexStatement(databaseType, new IndexSegment(0, 0, new IndexNameSegment(0, 0, new IdentifierValue("foo_tbl_idx"))),
- new IndexSegment(0, 0, new IndexNameSegment(0, 0, new IdentifierValue("foo_tbl_idx_new"))), null);
+ when(table.containsIndex(currentIndexName)).thenReturn(true);
+ when(table.containsIndex(renamedIndexName)).thenReturn(false);
+ AlterIndexStatement sqlStatement = new AlterIndexStatement(databaseType, new IndexSegment(0, 0, new IndexNameSegment(0, 0, currentIndexName)),
+ new IndexSegment(0, 0, new IndexNameSegment(0, 0, renamedIndexName)), null);
assertDoesNotThrow(() -> new ShardingAlterIndexSupportedChecker().check(rule, database, schema, new CommonSQLStatementContext(sqlStatement)));
}
@@ -79,11 +81,13 @@ class ShardingAlterIndexSupportedCheckerTest {
void assertCheckAlterIndexWhenIndexExistRenameIndexExistForPostgreSQL() {
ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
ShardingSphereTable table = mock(ShardingSphereTable.class);
+ IdentifierValue currentIndexName = new IdentifierValue("foo_tbl_idx");
+ IdentifierValue renamedIndexName = new IdentifierValue("foo_tbl_idx_new");
when(schema.getAllTables()).thenReturn(Collections.singleton(table));
- when(table.containsIndex("foo_tbl_idx")).thenReturn(true);
- when(table.containsIndex("foo_tbl_idx_new")).thenReturn(true);
- AlterIndexStatement sqlStatement = new AlterIndexStatement(databaseType, new IndexSegment(0, 0, new IndexNameSegment(0, 0, new IdentifierValue("foo_tbl_idx"))),
- new IndexSegment(0, 0, new IndexNameSegment(0, 0, new IdentifierValue("foo_tbl_idx_new"))), null);
+ when(table.containsIndex(currentIndexName)).thenReturn(true);
+ when(table.containsIndex(renamedIndexName)).thenReturn(true);
+ AlterIndexStatement sqlStatement = new AlterIndexStatement(databaseType, new IndexSegment(0, 0, new IndexNameSegment(0, 0, currentIndexName)),
+ new IndexSegment(0, 0, new IndexNameSegment(0, 0, renamedIndexName)), null);
assertThrows(DuplicateIndexException.class, () -> new ShardingAlterIndexSupportedChecker().check(rule, database, schema, new CommonSQLStatementContext(sqlStatement)));
}
}
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingDropIndexSupportedCheckerTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingDropIndexSupportedCheckerTest.java
index b45fad6c0a4..bf223dd1f93 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingDropIndexSupportedCheckerTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingDropIndexSupportedCheckerTest.java
@@ -58,12 +58,14 @@ class ShardingDropIndexSupportedCheckerTest {
void assertCheckWhenIndexExistForPostgreSQL() {
ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
ShardingSphereTable table = mock(ShardingSphereTable.class);
+ IdentifierValue firstIndexName = new IdentifierValue("t_order_index");
+ IdentifierValue secondIndexName = new IdentifierValue("t_order_index_new");
when(schema.getAllTables()).thenReturn(Collections.singleton(table));
- when(table.containsIndex("t_order_index")).thenReturn(true);
- when(table.containsIndex("t_order_index_new")).thenReturn(true);
+ when(table.containsIndex(firstIndexName)).thenReturn(true);
+ when(table.containsIndex(secondIndexName)).thenReturn(true);
DropIndexStatement sqlStatement = DropIndexStatement.builder().databaseType(databaseType)
- .indexes(Arrays.asList(new IndexSegment(0, 0, new IndexNameSegment(0, 0, new IdentifierValue("t_order_index"))),
- new IndexSegment(0, 0, new IndexNameSegment(0, 0, new IdentifierValue("t_order_index_new")))))
+ .indexes(Arrays.asList(new IndexSegment(0, 0, new IndexNameSegment(0, 0, firstIndexName)),
+ new IndexSegment(0, 0, new IndexNameSegment(0, 0, secondIndexName))))
.build();
assertDoesNotThrow(() -> new ShardingDropIndexSupportedChecker().check(rule, database, schema, new CommonSQLStatementContext(sqlStatement)));
}
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingTableBroadcastRouteEngineTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingTableBroadcastRouteEngineTest.java
index 99fd44e50d2..5c70500ac9d 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingTableBroadcastRouteEngineTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingTableBroadcastRouteEngineTest.java
@@ -32,17 +32,18 @@ import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
+import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.IndexNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.IndexSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.attribute.SQLStatementAttributes;
import org.apache.shardingsphere.sql.parser.statement.core.statement.type.ddl.index.DropIndexStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
import org.apache.shardingsphere.test.infra.fixture.jdbc.MockedDataSource;
import org.junit.jupiter.api.Test;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
-import java.util.Optional;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -80,15 +81,14 @@ class ShardingTableBroadcastRouteEngineTest {
@Test
void assertRouteForDropIndexStatement() {
ShardingSphereTable table = mock(ShardingSphereTable.class);
+ IdentifierValue indexName = new IdentifierValue("t_order");
when(table.getName()).thenReturn("t_order");
- when(table.containsIndex("t_order")).thenReturn(true);
+ when(table.containsIndex(indexName)).thenReturn(true);
ShardingSphereSchema schema = mock(ShardingSphereSchema.class, RETURNS_DEEP_STUBS);
when(schema.getName()).thenReturn("foo_db");
when(schema.getAllTables()).thenReturn(Collections.singleton(table));
when(schema.getTable(anyString()).containsIndex(anyString())).thenReturn(true);
- IndexSegment segment = mock(IndexSegment.class, RETURNS_DEEP_STUBS);
- when(segment.getIndexName().getIdentifier().getValue()).thenReturn("t_order");
- when(segment.getOwner()).thenReturn(Optional.empty());
+ IndexSegment segment = new IndexSegment(0, 0, new IndexNameSegment(0, 0, indexName));
DropIndexStatement sqlStatement = DropIndexStatement.builder().databaseType(databaseType).indexes(Collections.singleton(segment)).build();
ShardingSphereDatabase database = new ShardingSphereDatabase("foo_db", databaseType, mock(ResourceMetaData.class), mock(RuleMetaData.class), Collections.singleton(schema));
ShardingTableBroadcastRouteEngine shardingTableBroadcastRouteEngine = new ShardingTableBroadcastRouteEngine(database, sqlStatement, Collections.emptyList());
diff --git a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/type/SimpleTableSegmentBinder.java b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/type/SimpleTableSegmentBinder.java
index 5a68bed0e67..0255277d170 100644
--- a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/type/SimpleTableSegmentBinder.java
+++ b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/type/SimpleTableSegmentBinder.java
@@ -227,15 +227,15 @@ public final class SimpleTableSegmentBinder {
}
if (binderContext.getSqlStatement() instanceof CreateIndexStatement) {
ShardingSpherePreconditions.checkState(schema.containsTable(tableName), () -> new TableNotFoundException(tableName.getValue()));
- String indexName = ((CreateIndexStatement) binderContext.getSqlStatement()).getIndex().getIndexName().getIdentifier().getValue();
- ShardingSpherePreconditions.checkState(!shardingSphereTable.containsIndex(indexName), () -> new DuplicateIndexException(indexName));
+ IdentifierValue indexName = ((CreateIndexStatement) binderContext.getSqlStatement()).getIndex().getIndexName().getIdentifier();
+ ShardingSpherePreconditions.checkState(!shardingSphereTable.containsIndex(indexName), () -> new DuplicateIndexException(indexName.getValue()));
return;
}
if (binderContext.getSqlStatement() instanceof DropIndexStatement) {
ShardingSpherePreconditions.checkState(schema.containsTable(tableName), () -> new TableNotFoundException(tableName.getValue()));
((DropIndexStatement) binderContext.getSqlStatement()).getIndexes().forEach(each -> {
- String indexName = each.getIndexName().getIdentifier().getValue();
- ShardingSpherePreconditions.checkState(shardingSphereTable.containsIndex(indexName), () -> new IndexNotFoundException(schemaName, indexName));
+ IdentifierValue indexName = each.getIndexName().getIdentifier();
+ ShardingSpherePreconditions.checkState(shardingSphereTable.containsIndex(indexName), () -> new IndexNotFoundException(schemaName, indexName.getValue()));
});
}
}
diff --git a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereTable.java b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereTable.java
index f21a48d9553..fe9bbedb03e 100644
--- a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereTable.java
+++ b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereTable.java
@@ -264,7 +264,7 @@ public final class ShardingSphereTable {
* @param indexName index name
* @return contains index or not
*/
- private boolean containsIndex(final IdentifierValue indexName) {
+ public boolean containsIndex(final IdentifierValue indexName) {
return findIndex(indexName).isPresent();
}
diff --git a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/IndexMetaDataUtils.java b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/IndexMetaDataUtils.java
index 5da8ff0d154..ef9c401faf9 100644
--- a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/IndexMetaDataUtils.java
+++ b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/IndexMetaDataUtils.java
@@ -27,6 +27,7 @@ import org.apache.shardingsphere.infra.metadata.database.schema.QualifiedTable;
import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.IndexSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
import java.util.Collection;
import java.util.LinkedList;
@@ -76,13 +77,13 @@ public final class IndexMetaDataUtils {
String schemaName = new DatabaseTypeRegistry(protocolType).getDefaultSchemaName(database.getName());
for (IndexSegment each : indexes) {
String actualSchemaName = each.getOwner().map(optional -> optional.getIdentifier().getValue()).orElse(schemaName);
- findLogicTableNameFromMetaData(database.getSchema(actualSchemaName), each.getIndexName().getIdentifier().getValue())
+ findLogicTableNameFromMetaData(database.getSchema(actualSchemaName), each.getIndexName().getIdentifier())
.ifPresent(optional -> result.add(new QualifiedTable(actualSchemaName, optional)));
}
return result;
}
- private static Optional<String> findLogicTableNameFromMetaData(final ShardingSphereSchema schema, final String logicIndexName) {
+ private static Optional<String> findLogicTableNameFromMetaData(final ShardingSphereSchema schema, final IdentifierValue logicIndexName) {
return schema.getAllTables().stream().filter(table -> table.containsIndex(logicIndexName)).findFirst().map(ShardingSphereTable::getName);
}
}
diff --git a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/rule/SingleRuleTest.java b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/rule/SingleRuleTest.java
index ee404ee57a9..28e42e5caef 100644
--- a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/rule/SingleRuleTest.java
+++ b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/rule/SingleRuleTest.java
@@ -35,9 +35,11 @@ import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.single.config.SingleRuleConfiguration;
import org.apache.shardingsphere.single.constant.SingleOrder;
import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.IndexSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.IndexNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.OwnerSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.attribute.type.IndexSQLStatementAttribute;
+import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
import org.apache.shardingsphere.test.infra.fixture.jdbc.MockedDataSource;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -345,16 +347,15 @@ class SingleRuleTest {
}
private static IndexSQLStatementAttribute createIndexAttribute(final ShardingSphereDatabase database, final String schemaName) {
- IndexSegment indexSegment = mock(IndexSegment.class, RETURNS_DEEP_STUBS);
- when(indexSegment.getOwner()).thenReturn(Optional.empty());
- when(indexSegment.getIndexName().getIdentifier().getValue()).thenReturn("idx_employee");
+ IdentifierValue identifierValue = new IdentifierValue("idx_employee");
+ IndexSegment indexSegment = new IndexSegment(1, 3, new IndexNameSegment(1, 3, identifierValue));
IndexSQLStatementAttribute result = mock(IndexSQLStatementAttribute.class);
when(result.getIndexes()).thenReturn(Collections.singleton(indexSegment));
ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
ShardingSphereTable table = mock(ShardingSphereTable.class);
when(database.getSchema(schemaName)).thenReturn(schema);
when(schema.getAllTables()).thenReturn(Collections.singleton(table));
- when(table.containsIndex("idx_employee")).thenReturn(true);
+ when(table.containsIndex(identifierValue)).thenReturn(true);
when(table.getName()).thenReturn("employee");
return result;
}