DATAJDBC-394 - Don't use AS for table aliases.

The AS keyword for table aliases is optional for all databases that support it.
It is not supported by Oracle.
Thus not using it makes the generated SQL compatible to more databases.

Original pull request: #162.
This commit is contained in:
Jens Schauder
2019-07-16 07:51:29 +02:00
committed by Mark Paluch
parent 257dd7d5d4
commit 14d79025b5
3 changed files with 7 additions and 6 deletions

View File

@@ -49,7 +49,7 @@ class FromTableVisitor extends TypedSubtreeVisitor<Table> {
builder.append(context.getNamingStrategy().getName(segment));
if (segment instanceof Aliased) {
builder.append(" AS ").append(((Aliased) segment).getAlias());
builder.append(" ").append(((Aliased) segment).getAlias());
}
parent.onRendered(builder);

View File

@@ -60,6 +60,6 @@ public class DeleteRendererUnitTests {
.where(table.column("foo").isEqualTo(table.column("baz"))) //
.build();
assertThat(SqlRenderer.toString(delete)).isEqualTo("DELETE FROM bar AS my_bar WHERE my_bar.foo = my_bar.baz");
assertThat(SqlRenderer.toString(delete)).isEqualTo("DELETE FROM bar my_bar WHERE my_bar.foo = my_bar.baz");
}
}

View File

@@ -55,7 +55,7 @@ public class SelectRendererUnitTests {
Select select = Select.builder().select(table.column("foo").as("my_foo")).from(table).build();
assertThat(SqlRenderer.toString(select)).isEqualTo("SELECT my_bar.foo AS my_foo FROM bar AS my_bar");
assertThat(SqlRenderer.toString(select)).isEqualTo("SELECT my_bar.foo AS my_foo FROM bar my_bar");
}
@Test // DATAJDBC-309
@@ -163,8 +163,9 @@ public class SelectRendererUnitTests {
.join(tenant).on(tenant.column("tenant_id")).equals(department.column("tenant")) //
.build();
assertThat(SqlRenderer.toString(select)).isEqualTo("SELECT employee.id, department.name FROM employee "
+ "JOIN department ON employee.department_id = department.id " + "AND employee.tenant = department.tenant "
assertThat(SqlRenderer.toString(select)).isEqualTo("SELECT employee.id, department.name FROM employee " //
+ "JOIN department ON employee.department_id = department.id " //
+ "AND employee.tenant = department.tenant " //
+ "JOIN tenant AS tenant_base ON tenant_base.tenant_id = department.tenant");
}
@@ -177,7 +178,7 @@ public class SelectRendererUnitTests {
Select select = Select.builder().select(column).from(employee).orderBy(OrderByField.from(column).asc()).build();
assertThat(SqlRenderer.toString(select))
.isEqualTo("SELECT emp.name AS emp_name FROM employee AS emp ORDER BY emp_name ASC");
.isEqualTo("SELECT emp.name AS emp_name FROM employee emp ORDER BY emp_name ASC");
}
@Test // DATAJDBC-309