diff --git a/pom.xml b/pom.xml
index d9ee91c910..1927dff350 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.data
spring-data-relational-parent
- 3.2.0-SNAPSHOT
+ 3.2.0-1651-asterisk-aliased-table-SNAPSHOT
pom
Spring Data Relational Parent
diff --git a/spring-data-jdbc-distribution/pom.xml b/spring-data-jdbc-distribution/pom.xml
index 271486f02a..ba4b5e6a55 100644
--- a/spring-data-jdbc-distribution/pom.xml
+++ b/spring-data-jdbc-distribution/pom.xml
@@ -14,7 +14,7 @@
org.springframework.data
spring-data-relational-parent
- 3.2.0-SNAPSHOT
+ 3.2.0-1651-asterisk-aliased-table-SNAPSHOT
../pom.xml
diff --git a/spring-data-jdbc/pom.xml b/spring-data-jdbc/pom.xml
index 2ac75e7993..c96fc20313 100644
--- a/spring-data-jdbc/pom.xml
+++ b/spring-data-jdbc/pom.xml
@@ -6,7 +6,7 @@
4.0.0
spring-data-jdbc
- 3.2.0-SNAPSHOT
+ 3.2.0-1651-asterisk-aliased-table-SNAPSHOT
Spring Data JDBC
Spring Data module for JDBC repositories.
@@ -15,7 +15,7 @@
org.springframework.data
spring-data-relational-parent
- 3.2.0-SNAPSHOT
+ 3.2.0-1651-asterisk-aliased-table-SNAPSHOT
diff --git a/spring-data-r2dbc/pom.xml b/spring-data-r2dbc/pom.xml
index d65f06a082..b8e7ed3d85 100644
--- a/spring-data-r2dbc/pom.xml
+++ b/spring-data-r2dbc/pom.xml
@@ -6,7 +6,7 @@
4.0.0
spring-data-r2dbc
- 3.2.0-SNAPSHOT
+ 3.2.0-1651-asterisk-aliased-table-SNAPSHOT
Spring Data R2DBC
Spring Data module for R2DBC
@@ -15,7 +15,7 @@
org.springframework.data
spring-data-relational-parent
- 3.2.0-SNAPSHOT
+ 3.2.0-1651-asterisk-aliased-table-SNAPSHOT
diff --git a/spring-data-relational/pom.xml b/spring-data-relational/pom.xml
index 74f350faa8..91f34f1da7 100644
--- a/spring-data-relational/pom.xml
+++ b/spring-data-relational/pom.xml
@@ -6,7 +6,7 @@
4.0.0
spring-data-relational
- 3.2.0-SNAPSHOT
+ 3.2.0-1651-asterisk-aliased-table-SNAPSHOT
Spring Data Relational
Spring Data Relational support
@@ -14,7 +14,7 @@
org.springframework.data
spring-data-relational-parent
- 3.2.0-SNAPSHOT
+ 3.2.0-1651-asterisk-aliased-table-SNAPSHOT
diff --git a/spring-data-relational/src/main/java/org/springframework/data/relational/core/sql/render/ExpressionVisitor.java b/spring-data-relational/src/main/java/org/springframework/data/relational/core/sql/render/ExpressionVisitor.java
index c5b9f62c8f..b2a32c979f 100644
--- a/spring-data-relational/src/main/java/org/springframework/data/relational/core/sql/render/ExpressionVisitor.java
+++ b/spring-data-relational/src/main/java/org/springframework/data/relational/core/sql/render/ExpressionVisitor.java
@@ -98,8 +98,16 @@ Delegation enterMatched(Expression segment) {
} else {
value = segment.toString();
}
- } else if (segment instanceof AsteriskFromTable) {
- value = NameRenderer.render(context, ((AsteriskFromTable) segment).getTable()) + ".*";
+ } else if (segment instanceof AsteriskFromTable asteriskFromTable) {
+
+ TableLike table = asteriskFromTable.getTable();
+ CharSequence renderedTable;
+ if (table instanceof Aliased aliasedTable) {
+ renderedTable = NameRenderer.render(context, aliasedTable);
+ } else {
+ renderedTable = NameRenderer.render(context, table);
+ }
+ value = renderedTable + ".*";
} else if (segment instanceof Cast) {
CastVisitor visitor = new CastVisitor(context);
diff --git a/spring-data-relational/src/test/java/org/springframework/data/relational/core/sql/render/SelectRendererUnitTests.java b/spring-data-relational/src/test/java/org/springframework/data/relational/core/sql/render/SelectRendererUnitTests.java
index d3277b84e2..67db2df6d9 100644
--- a/spring-data-relational/src/test/java/org/springframework/data/relational/core/sql/render/SelectRendererUnitTests.java
+++ b/spring-data-relational/src/test/java/org/springframework/data/relational/core/sql/render/SelectRendererUnitTests.java
@@ -635,6 +635,17 @@ void rendersAliasedExpression() {
.isEqualTo("SELECT table.name AS alias FROM table");
}
+ @Test // GH-1651
+ void asteriskOfAliasedTableUsesAlias() {
+
+ Table employee = SQL.table("employee").as("e");
+ Select select = Select.builder().select(employee.asterisk()).select(employee.column("id")).from(employee).build();
+
+ String rendered = SqlRenderer.toString(select);
+
+ assertThat(rendered).isEqualTo("SELECT e.*, e.id FROM employee e");
+ }
+
/**
* Tests the rendering of analytic functions.
*/