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 165be2d0b14 Preserve whitespace in DistSQL properties (#39274)
165be2d0b14 is described below
commit 165be2d0b1440fd0a20622efa89590b196f9bed5
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Jul 30 16:24:42 2026 +0800
Preserve whitespace in DistSQL properties (#39274)
Replace trim-based property unwrapping with QuoteCharacter.unwrapText
across DistSQL visitors.
Remove the obsolete unwrapAndTrimText method and cover quoted boundary
whitespace.
---
.../core/metadata/database/enums/QuoteCharacter.java | 12 ------------
.../core/metadata/database/enums/QuoteCharacterTest.java | 6 +-----
.../distsql/parser/core/EncryptDistSQLStatementVisitor.java | 2 +-
.../distsql/parser/core/MaskDistSQLStatementVisitor.java | 2 +-
.../core/ReadwriteSplittingDistSQLStatementVisitor.java | 2 +-
.../distsql/parser/core/ShadowDistSQLStatementVisitor.java | 2 +-
.../distsql/parser/core/ShardingDistSQLStatementVisitor.java | 2 +-
.../parser/core/ShardingDistSQLStatementVisitorTest.java | 3 ++-
.../cdc/distsql/parser/core/CDCDistSQLStatementVisitor.java | 2 +-
.../parser/core/MigrationDistSQLStatementVisitor.java | 2 +-
.../parser/core/GlobalClockDistSQLStatementVisitor.java | 2 +-
.../parser/core/SQLTranslatorDistSQLStatementVisitor.java | 2 +-
.../parser/core/TransactionDistSQLStatementVisitor.java | 2 +-
.../parser/core/kernel/KernelDistSQLStatementVisitor.java | 4 ++--
14 files changed, 15 insertions(+), 30 deletions(-)
diff --git
a/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/metadata/database/enums/QuoteCharacter.java
b/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/metadata/database/enums/QuoteCharacter.java
index a25962c7631..4aa86d2fd90 100644
---
a/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/metadata/database/enums/QuoteCharacter.java
+++
b/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/metadata/database/enums/QuoteCharacter.java
@@ -106,16 +106,4 @@ public enum QuoteCharacter {
public static String unwrapText(final String text) {
return getQuoteCharacter(text).unwrap(text);
}
-
- /**
- * Unwrap and trim text.
- *
- * @param text text to be unwrapped and trimmed
- * @return unwrapped and trimmed test
- */
- // TODO Should use unwrap instead of this method after new rules defined
in G4's property key and property key, which should include string but cannot
permit blank on first and last of the value
- // TODO @longtao
- public static String unwrapAndTrimText(final String text) {
- return unwrapText(text).trim();
- }
}
diff --git
a/database/connector/core/src/test/java/org/apache/shardingsphere/database/connector/core/metadata/database/enums/QuoteCharacterTest.java
b/database/connector/core/src/test/java/org/apache/shardingsphere/database/connector/core/metadata/database/enums/QuoteCharacterTest.java
index 3e8210450a0..23a0730a5f1 100644
---
a/database/connector/core/src/test/java/org/apache/shardingsphere/database/connector/core/metadata/database/enums/QuoteCharacterTest.java
+++
b/database/connector/core/src/test/java/org/apache/shardingsphere/database/connector/core/metadata/database/enums/QuoteCharacterTest.java
@@ -58,11 +58,6 @@ class QuoteCharacterTest {
assertThat(QuoteCharacter.unwrapText(text), is(expectedText));
}
- @Test
- void assertUnwrapAndTrimText() {
- assertThat(QuoteCharacter.unwrapAndTrimText("` test `"), is("test"));
- }
-
private static Stream<Arguments> getQuoteCharacterArguments() {
return Stream.of(
Arguments.of("null value", null, QuoteCharacter.NONE),
@@ -98,6 +93,7 @@ class QuoteCharacterTest {
Arguments.of("double quote text", "\"test\"", "test"),
Arguments.of("brackets text", "[test]", "test"),
Arguments.of("parentheses text", "(test)", "test"),
+ Arguments.of("single quote text with boundary whitespace", "'
test '", " test "),
Arguments.of("unrecognized wrapper text", "{test}", "{test}"),
Arguments.of("unmatched back quote text", "`test'", "`test'"));
}
diff --git
a/features/encrypt/distsql/parser/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/core/EncryptDistSQLStatementVisitor.java
b/features/encrypt/distsql/parser/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/core/EncryptDistSQLStatementVisitor.java
index 2618078182c..c85d5922a8f 100644
---
a/features/encrypt/distsql/parser/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/core/EncryptDistSQLStatementVisitor.java
+++
b/features/encrypt/distsql/parser/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/core/EncryptDistSQLStatementVisitor.java
@@ -119,7 +119,7 @@ public final class EncryptDistSQLStatementVisitor extends
EncryptDistSQLStatemen
return result;
}
for (PropertyContext each : ctx.properties().property()) {
-
result.setProperty(QuoteCharacter.unwrapAndTrimText(each.key.getText()),
QuoteCharacter.unwrapAndTrimText(each.value.getText()));
+ result.setProperty(QuoteCharacter.unwrapText(each.key.getText()),
QuoteCharacter.unwrapText(each.value.getText()));
}
return result;
}
diff --git
a/features/mask/distsql/parser/src/main/java/org/apache/shardingsphere/mask/distsql/parser/core/MaskDistSQLStatementVisitor.java
b/features/mask/distsql/parser/src/main/java/org/apache/shardingsphere/mask/distsql/parser/core/MaskDistSQLStatementVisitor.java
index bc3bd5babbe..bf6863f60c7 100644
---
a/features/mask/distsql/parser/src/main/java/org/apache/shardingsphere/mask/distsql/parser/core/MaskDistSQLStatementVisitor.java
+++
b/features/mask/distsql/parser/src/main/java/org/apache/shardingsphere/mask/distsql/parser/core/MaskDistSQLStatementVisitor.java
@@ -102,7 +102,7 @@ public final class MaskDistSQLStatementVisitor extends
MaskDistSQLStatementBaseV
return result;
}
for (PropertyContext each : ctx.properties().property()) {
-
result.setProperty(QuoteCharacter.unwrapAndTrimText(each.key.getText()),
QuoteCharacter.unwrapAndTrimText(each.value.getText()));
+ result.setProperty(QuoteCharacter.unwrapText(each.key.getText()),
QuoteCharacter.unwrapText(each.value.getText()));
}
return result;
}
diff --git
a/features/readwrite-splitting/distsql/parser/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/core/ReadwriteSplittingDistSQLStatementVisitor.java
b/features/readwrite-splitting/distsql/parser/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/core/ReadwriteSplittingDistSQLStatementVisitor.java
index f28a823c1ed..6018d9eb6ee 100644
---
a/features/readwrite-splitting/distsql/parser/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/core/ReadwriteSplittingDistSQLStatementVisitor.java
+++
b/features/readwrite-splitting/distsql/parser/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/core/ReadwriteSplittingDistSQLStatementVisitor.java
@@ -122,7 +122,7 @@ public final class
ReadwriteSplittingDistSQLStatementVisitor extends ReadwriteSp
return result;
}
for (PropertyContext each : ctx.properties().property()) {
-
result.setProperty(QuoteCharacter.unwrapAndTrimText(each.key.getText()),
QuoteCharacter.unwrapAndTrimText(each.value.getText()));
+ result.setProperty(QuoteCharacter.unwrapText(each.key.getText()),
QuoteCharacter.unwrapText(each.value.getText()));
}
return result;
}
diff --git
a/features/shadow/distsql/parser/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/core/ShadowDistSQLStatementVisitor.java
b/features/shadow/distsql/parser/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/core/ShadowDistSQLStatementVisitor.java
index b97720379cf..cca02b8a4a4 100644
---
a/features/shadow/distsql/parser/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/core/ShadowDistSQLStatementVisitor.java
+++
b/features/shadow/distsql/parser/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/core/ShadowDistSQLStatementVisitor.java
@@ -125,7 +125,7 @@ public final class ShadowDistSQLStatementVisitor extends
ShadowDistSQLStatementB
return result;
}
for (PropertyContext each : ctx.properties().property()) {
-
result.setProperty(QuoteCharacter.unwrapAndTrimText(each.key.getText()),
QuoteCharacter.unwrapAndTrimText(each.value.getText()));
+ result.setProperty(QuoteCharacter.unwrapText(each.key.getText()),
QuoteCharacter.unwrapText(each.value.getText()));
}
return result;
}
diff --git
a/features/sharding/distsql/parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java
b/features/sharding/distsql/parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java
index 161d167fa33..7e9e3c57662 100644
---
a/features/sharding/distsql/parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java
+++
b/features/sharding/distsql/parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java
@@ -391,7 +391,7 @@ public final class ShardingDistSQLStatementVisitor extends
ShardingDistSQLStatem
return result;
}
for (PropertyContext each : ctx.properties().property()) {
-
result.setProperty(QuoteCharacter.unwrapAndTrimText(each.key.getText()),
QuoteCharacter.unwrapAndTrimText(each.value.getText()));
+ result.setProperty(QuoteCharacter.unwrapText(each.key.getText()),
QuoteCharacter.unwrapText(each.value.getText()));
}
return result;
}
diff --git
a/features/sharding/distsql/parser/src/test/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitorTest.java
b/features/sharding/distsql/parser/src/test/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitorTest.java
index b5018f67306..1de53032f77 100644
---
a/features/sharding/distsql/parser/src/test/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitorTest.java
+++
b/features/sharding/distsql/parser/src/test/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitorTest.java
@@ -66,10 +66,11 @@ class ShardingDistSQLStatementVisitorTest {
@Test
void assertCreateKeyGenerator() {
CreateShardingKeyGeneratorStatement actual =
(CreateShardingKeyGeneratorStatement) parse(
- "CREATE SHARDING KEY GENERATOR snowflake_generator
(TYPE(NAME='SNOWFLAKE', PROPERTIES('worker-id'=1)))");
+ "CREATE SHARDING KEY GENERATOR snowflake_generator
(TYPE(NAME='SNOWFLAKE', PROPERTIES('worker-id'=1, ' foo_key '=' bar_value
')))");
assertThat(actual.getName(), is("snowflake_generator"));
assertThat(actual.getAlgorithmSegment().getName(), is("SNOWFLAKE"));
assertThat(actual.getAlgorithmSegment().getProps().getProperty("worker-id"),
is("1"));
+ assertThat(actual.getAlgorithmSegment().getProps().getProperty("
foo_key "), is(" bar_value "));
}
@Test
diff --git
a/kernel/data-pipeline/scenario/cdc/distsql/parser/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/distsql/parser/core/CDCDistSQLStatementVisitor.java
b/kernel/data-pipeline/scenario/cdc/distsql/parser/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/distsql/parser/core/CDCDistSQLStatementVisitor.java
index 82df8dfd991..03b10617b52 100644
---
a/kernel/data-pipeline/scenario/cdc/distsql/parser/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/distsql/parser/core/CDCDistSQLStatementVisitor.java
+++
b/kernel/data-pipeline/scenario/cdc/distsql/parser/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/distsql/parser/core/CDCDistSQLStatementVisitor.java
@@ -141,7 +141,7 @@ public final class CDCDistSQLStatementVisitor extends
CDCDistSQLStatementBaseVis
return result;
}
for (PropertyContext each : ctx.properties().property()) {
-
result.setProperty(QuoteCharacter.unwrapAndTrimText(each.key.getText()),
QuoteCharacter.unwrapAndTrimText(each.value.getText()));
+ result.setProperty(QuoteCharacter.unwrapText(each.key.getText()),
QuoteCharacter.unwrapText(each.value.getText()));
}
return result;
}
diff --git
a/kernel/data-pipeline/scenario/migration/distsql/parser/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/distsql/parser/core/MigrationDistSQLStatementVisitor.java
b/kernel/data-pipeline/scenario/migration/distsql/parser/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/distsql/parser/core/MigrationDistSQLStatementVisitor.java
index 047c6e8c39c..ae2f0e12b4b 100644
---
a/kernel/data-pipeline/scenario/migration/distsql/parser/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/distsql/parser/core/MigrationDistSQLStatementVisitor.java
+++
b/kernel/data-pipeline/scenario/migration/distsql/parser/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/distsql/parser/core/MigrationDistSQLStatementVisitor.java
@@ -253,7 +253,7 @@ public final class MigrationDistSQLStatementVisitor extends
MigrationDistSQLStat
return result;
}
for (PropertyContext each : ctx.properties().property()) {
-
result.setProperty(QuoteCharacter.unwrapAndTrimText(each.key.getText()),
QuoteCharacter.unwrapAndTrimText(each.value.getText()));
+ result.setProperty(QuoteCharacter.unwrapText(each.key.getText()),
QuoteCharacter.unwrapText(each.value.getText()));
}
return result;
}
diff --git
a/kernel/global-clock/distsql/parser/src/main/java/org/apache/shardingsphere/globalclock/distsql/parser/core/GlobalClockDistSQLStatementVisitor.java
b/kernel/global-clock/distsql/parser/src/main/java/org/apache/shardingsphere/globalclock/distsql/parser/core/GlobalClockDistSQLStatementVisitor.java
index ec47a9d4def..86a2f1db081 100644
---
a/kernel/global-clock/distsql/parser/src/main/java/org/apache/shardingsphere/globalclock/distsql/parser/core/GlobalClockDistSQLStatementVisitor.java
+++
b/kernel/global-clock/distsql/parser/src/main/java/org/apache/shardingsphere/globalclock/distsql/parser/core/GlobalClockDistSQLStatementVisitor.java
@@ -56,7 +56,7 @@ public final class GlobalClockDistSQLStatementVisitor extends
GlobalClockDistSQL
return result;
}
for (PropertyContext each : ctx.properties().property()) {
-
result.setProperty(QuoteCharacter.unwrapAndTrimText(each.key.getText()),
QuoteCharacter.unwrapAndTrimText(each.value.getText()));
+ result.setProperty(QuoteCharacter.unwrapText(each.key.getText()),
QuoteCharacter.unwrapText(each.value.getText()));
}
return result;
}
diff --git
a/kernel/sql-translator/distsql/parser/src/main/java/org/apache/shardingsphere/sqltranslator/distsql/parser/core/SQLTranslatorDistSQLStatementVisitor.java
b/kernel/sql-translator/distsql/parser/src/main/java/org/apache/shardingsphere/sqltranslator/distsql/parser/core/SQLTranslatorDistSQLStatementVisitor.java
index 2db3409ddc1..281ea49ecef 100644
---
a/kernel/sql-translator/distsql/parser/src/main/java/org/apache/shardingsphere/sqltranslator/distsql/parser/core/SQLTranslatorDistSQLStatementVisitor.java
+++
b/kernel/sql-translator/distsql/parser/src/main/java/org/apache/shardingsphere/sqltranslator/distsql/parser/core/SQLTranslatorDistSQLStatementVisitor.java
@@ -61,7 +61,7 @@ public final class SQLTranslatorDistSQLStatementVisitor
extends SQLTranslatorDis
return result;
}
for (PropertyContext each : ctx.properties().property()) {
-
result.setProperty(QuoteCharacter.unwrapAndTrimText(each.key.getText()),
QuoteCharacter.unwrapAndTrimText(each.value.getText()));
+ result.setProperty(QuoteCharacter.unwrapText(each.key.getText()),
QuoteCharacter.unwrapText(each.value.getText()));
}
return result;
}
diff --git
a/kernel/transaction/distsql/parser/src/main/java/org/apache/shardingsphere/transaction/distsql/parser/core/TransactionDistSQLStatementVisitor.java
b/kernel/transaction/distsql/parser/src/main/java/org/apache/shardingsphere/transaction/distsql/parser/core/TransactionDistSQLStatementVisitor.java
index 143bc168a71..da0490e822d 100644
---
a/kernel/transaction/distsql/parser/src/main/java/org/apache/shardingsphere/transaction/distsql/parser/core/TransactionDistSQLStatementVisitor.java
+++
b/kernel/transaction/distsql/parser/src/main/java/org/apache/shardingsphere/transaction/distsql/parser/core/TransactionDistSQLStatementVisitor.java
@@ -66,7 +66,7 @@ public final class TransactionDistSQLStatementVisitor extends
TransactionDistSQL
return result;
}
for (PropertyContext each : ctx.properties().property()) {
-
result.setProperty(QuoteCharacter.unwrapAndTrimText(each.key.getText()),
QuoteCharacter.unwrapAndTrimText(each.value.getText()));
+ result.setProperty(QuoteCharacter.unwrapText(each.key.getText()),
QuoteCharacter.unwrapText(each.value.getText()));
}
return result;
}
diff --git
a/parser/distsql/engine/src/main/java/org/apache/shardingsphere/distsql/parser/core/kernel/KernelDistSQLStatementVisitor.java
b/parser/distsql/engine/src/main/java/org/apache/shardingsphere/distsql/parser/core/kernel/KernelDistSQLStatementVisitor.java
index 0567c36c026..597e8f28a1b 100644
---
a/parser/distsql/engine/src/main/java/org/apache/shardingsphere/distsql/parser/core/kernel/KernelDistSQLStatementVisitor.java
+++
b/parser/distsql/engine/src/main/java/org/apache/shardingsphere/distsql/parser/core/kernel/KernelDistSQLStatementVisitor.java
@@ -189,7 +189,7 @@ public final class KernelDistSQLStatementVisitor extends
KernelDistSQLStatementB
return result;
}
for (PropertyContext each : ctx.properties().property()) {
-
result.setProperty(QuoteCharacter.unwrapAndTrimText(each.key.getText()),
QuoteCharacter.unwrapAndTrimText(each.value.getText()));
+ result.setProperty(QuoteCharacter.unwrapText(each.key.getText()),
QuoteCharacter.unwrapText(each.value.getText()));
}
return result;
}
@@ -306,7 +306,7 @@ public final class KernelDistSQLStatementVisitor extends
KernelDistSQLStatementB
return result;
}
for (PropertyContext each : ctx.properties().property()) {
-
result.setProperty(QuoteCharacter.unwrapAndTrimText(each.key.getText()),
QuoteCharacter.unwrapAndTrimText(each.value.getText()));
+ result.setProperty(QuoteCharacter.unwrapText(each.key.getText()),
QuoteCharacter.unwrapText(each.value.getText()));
}
return result;
}