This is an automated email from the ASF dual-hosted git repository.
terrymanu 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 2b71ad01fb0 Fix sharding constraint reviser removing every actual
table suffix (#39868)
2b71ad01fb0 is described below
commit 2b71ad01fb07f20d30835cb2432b58086a994d60
Author: Eunbin Son <[email protected]>
AuthorDate: Mon Sep 21 11:36:07 2026 +0900
Fix sharding constraint reviser removing every actual table suffix (#39868)
Co-authored-by: Liang Zhang <[email protected]>
---
RELEASE-NOTES.md | 1 +
.../metadata/reviser/constraint/ShardingConstraintReviser.java | 2 +-
.../reviser/constraint/ShardingConstraintReviserTest.java | 8 ++++++++
3 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
index eccaa38aa96..fd18eaf67c8 100644
--- a/RELEASE-NOTES.md
+++ b/RELEASE-NOTES.md
@@ -86,6 +86,7 @@
1. Sharding: Compute the Snowflake key generator epoch in UTC instead of the
JVM default timezone -
[#38932](https://github.com/apache/shardingsphere/pull/38932)
1. Sharding: Fix order-dependent data source intersection in Cartesian routing
- [#39407](https://github.com/apache/shardingsphere/pull/39407)
1. Sharding: Fix incorrect AVG(DISTINCT) merge result across shards -
[#39429](https://github.com/apache/shardingsphere/pull/39429)
+1. Sharding: Fix sharding constraint reviser removing every actual table
suffix - [#39868](https://github.com/apache/shardingsphere/pull/39868)
1. Sharding: Fix DISABLE_AUDIT_NAMES hint ignoring auditor name case -
[#39871](https://github.com/apache/shardingsphere/pull/39871)
1. Readwrite-splitting: Evaluate inline expressions in data source names of
rule configuration checker -
[#39374](https://github.com/apache/shardingsphere/pull/39374)
1. SQL Federation: Fix SQL Federation pagination binding for long LIMIT
parameters - [#39237](https://github.com/apache/shardingsphere/pull/39237)
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/constraint/ShardingConstraintReviser.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/constraint/ShardingConstraintReviser.java
index 820035aa191..8b3deb5c2bb 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/constraint/ShardingConstraintReviser.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/constraint/ShardingConstraintReviser.java
@@ -50,6 +50,6 @@ public final class ShardingConstraintReviser implements
ConstraintReviser<Shardi
private Optional<String> getLogicIndex(final String actualIndexName, final
String actualTableName) {
String indexNameSuffix = "_" + actualTableName;
- return actualIndexName.endsWith(indexNameSuffix) ?
Optional.of(actualIndexName.replace(indexNameSuffix, "")) : Optional.empty();
+ return actualIndexName.endsWith(indexNameSuffix) ?
Optional.of(actualIndexName.substring(0, actualIndexName.length() -
indexNameSuffix.length())) : Optional.empty();
}
}
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/reviser/constraint/ShardingConstraintReviserTest.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/reviser/constraint/ShardingConstraintReviserTest.java
index c16bab7d303..203b8b08ffc 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/reviser/constraint/ShardingConstraintReviserTest.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/reviser/constraint/ShardingConstraintReviserTest.java
@@ -68,6 +68,14 @@ class ShardingConstraintReviserTest {
assertThat(actual.get().getReferencedTableName(),
is("referenced_table_name"));
}
+ @Test
+ void assertReviseWhenConstraintNameContainsActualTableSuffix() {
+ ConstraintMetaData originalMetaData = new
ConstraintMetaData("foo_table_name_1_fk_table_name_1", "referenced_table_name");
+ Optional<ConstraintMetaData> actual = reviser.revise("table_name_1",
originalMetaData, shardingRule);
+ assertTrue(actual.isPresent());
+ assertThat(actual.get().getName(), is("foo_table_name_1_fk"));
+ }
+
@Test
void assertReviseWhenTableDoesNotMatch() {
assertFalse(reviser.revise("table_name_1", new
ConstraintMetaData("test_table_name_2", "referenced_table_name"),
shardingRule).isPresent());