diff --git a/jOOQ/src/main/java/org/jooq/impl/Alias.java b/jOOQ/src/main/java/org/jooq/impl/Alias.java index 56c495e79c..f970aa893d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Alias.java +++ b/jOOQ/src/main/java/org/jooq/impl/Alias.java @@ -61,11 +61,11 @@ import static org.jooq.SQLDialect.POSTGRES; import static org.jooq.SQLDialect.SQLITE; // ... // ... +import static org.jooq.impl.DSL.asterisk; import static org.jooq.impl.DSL.falseCondition; import static org.jooq.impl.DSL.field; import static org.jooq.impl.DSL.select; import static org.jooq.impl.Keywords.K_AS; -import static org.jooq.impl.Tools.list; import static org.jooq.impl.Tools.DataKey.DATA_UNALIAS_ALIASES_IN_ORDER_BY; import java.util.EnumSet; @@ -145,7 +145,7 @@ final class Alias extends AbstractQueryPart { && (wrapped instanceof TableImpl || wrapped instanceof CommonTableExpressionImpl)) { Select select = - select(list(field("*"))).from(((Table) wrapped).as(alias)); + select(asterisk()).from(((Table) wrapped).as(alias)); context.sql('(').formatIndentStart().formatNewLine() .visit(select).formatIndentEnd().formatNewLine() @@ -187,7 +187,7 @@ final class Alias extends AbstractQueryPart { ? (Select) wrapped : wrapped instanceof DerivedTable ? ((DerivedTable) wrapped).query() - : select(field("*")).from(((Table) wrapped).as(alias)) + : select(asterisk()).from(((Table) wrapped).as(alias)) ); diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java b/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java index 1e24528c7b..0ea49cf9c1 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java @@ -224,19 +224,21 @@ class DefaultRenderContext extends AbstractContext implements Ren if (e1.positions == null || e1.joinNode == null) continue outer; - String replaced = "(" + DSL.using(configuration).renderContext().declareTables(true).render(e1.joinNode.joinTree()) + ")"; - sql.replace(e1.positions[0], e1.positions[1], replaced); + if (!e1.joinNode.children.isEmpty()) { + String replaced = "(" + DSL.using(configuration).renderContext().declareTables(true).render(e1.joinNode.joinTree()) + ")"; + sql.replace(e1.positions[0], e1.positions[1], replaced); - int shift = replaced.length() - (e1.positions[1] - e1.positions[0]); + int shift = replaced.length() - (e1.positions[1] - e1.positions[0]); - inner: - for (ScopeStackElement e2 : scopeStack) { - if (e2.positions == null) - continue inner; + inner: + for (ScopeStackElement e2 : scopeStack) { + if (e2.positions == null) + continue inner; - if (e2.positions[0] > e1.positions[0]) { - e2.positions[0] = e2.positions[0] + shift; - e2.positions[1] = e2.positions[1] + shift; + if (e2.positions[0] > e1.positions[0]) { + e2.positions[0] = e2.positions[0] + shift; + e2.positions[1] = e2.positions[1] + shift; + } } } }