You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2025/04/13 05:48:12 UTC
(shardingsphere) branch master updated: Revert "Refactor ColumnProjection.getColumnName() (#35176)" (#35178)
This is an automated email from the ASF dual-hosted git repository.
zhangliang 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 c1db97aee3b Revert "Refactor ColumnProjection.getColumnName() (#35176)" (#35178)
c1db97aee3b is described below
commit c1db97aee3bc4cad628d82dc0ce2b4c2446632cb
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sun Apr 13 13:48:06 2025 +0800
Revert "Refactor ColumnProjection.getColumnName() (#35176)" (#35178)
This reverts commit 630f86367aa5be1bd777f3f7d943370c2883b68e.
---
.../context/segment/select/projection/impl/ColumnProjection.java | 4 +++-
.../segment/select/projection/impl/ColumnProjectionTest.java | 8 +++++++-
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/impl/ColumnProjection.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/impl/ColumnProjection.java
index e194d33ebb2..1100bce1984 100644
--- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/impl/ColumnProjection.java
+++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/impl/ColumnProjection.java
@@ -26,6 +26,7 @@ import org.apache.shardingsphere.infra.binder.context.segment.select.projection.
import org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.ProjectionIdentifierExtractEngine;
import org.apache.shardingsphere.infra.database.core.metadata.database.enums.QuoteCharacter;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import org.apache.shardingsphere.infra.database.mysql.type.MySQLDatabaseType;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.ParenthesesSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.bound.ColumnSegmentBoundInfo;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
@@ -120,7 +121,8 @@ public final class ColumnProjection implements Projection {
@Override
public String getColumnName() {
- return new ProjectionIdentifierExtractEngine(databaseType).getIdentifierValue(name);
+ ProjectionIdentifierExtractEngine extractEngine = new ProjectionIdentifierExtractEngine(databaseType);
+ return databaseType instanceof MySQLDatabaseType ? extractEngine.getIdentifierValue(name) : getColumnLabel();
}
@Override
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/impl/ColumnProjectionTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/impl/ColumnProjectionTest.java
index 19539ae5295..4312e963854 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/impl/ColumnProjectionTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/impl/ColumnProjectionTest.java
@@ -89,10 +89,16 @@ class ColumnProjectionTest {
}
@Test
- void assertGetColumnNameWithAlias() {
+ void assertGetColumnNameWithMySQL() {
+ DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "MySQL");
assertThat(new ColumnProjection(null, "name", "alias", databaseType).getColumnName(), is("name"));
}
+ @Test
+ void assertGetColumnNameWithAlias() {
+ assertThat(new ColumnProjection(null, "name", "alias", databaseType).getColumnName(), is("alias"));
+ }
+
@Test
void assertGetColumnNameWithoutAlias() {
assertThat(new ColumnProjection(null, "name", null, databaseType).getColumnName(), is("name"));