From c678df44023d009fac40ac941c07d5821771f60f Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 24 Mar 2020 12:18:44 +0100 Subject: [PATCH] [jOOQ/jOOQ#9985] Refactor Alias::toSQLDerivedColumnList --- jOOQ/src/main/java/org/jooq/impl/Alias.java | 26 ++++------- .../java/org/jooq/impl/QueryPartListView.java | 46 ------------------- 2 files changed, 9 insertions(+), 63 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/Alias.java b/jOOQ/src/main/java/org/jooq/impl/Alias.java index 1fea0700b8..4f4b40bf63 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Alias.java +++ b/jOOQ/src/main/java/org/jooq/impl/Alias.java @@ -74,6 +74,7 @@ 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.QueryPartListView.wrap; import static org.jooq.impl.Tools.renderUnqualifiedNames; import static org.jooq.impl.Tools.BooleanDataKey.DATA_AS_REQUIRED; import static org.jooq.impl.Tools.BooleanDataKey.DATA_UNALIAS_ALIASED_EXPRESSIONS; @@ -313,25 +314,16 @@ final class Alias extends AbstractQueryPart { } } - private void toSQLWrapped(Context context) { - context.sql(wrapInParentheses ? "(" : "") - .visit(wrapped) - .sql(wrapInParentheses ? ")" : ""); + private void toSQLWrapped(Context ctx) { + ctx.sql(wrapInParentheses ? "(" : "") + .visit(wrapped) + .sql(wrapInParentheses ? ")" : ""); } - private void toSQLDerivedColumnList(Context context) { - String separator = ""; - - context.sql('('); - - for (int i = 0; i < fieldAliases.length; i++) { - context.sql(separator); - context.visit(fieldAliases[i]); - - separator = ", "; - } - - context.sql(')'); + private void toSQLDerivedColumnList(Context ctx) { + ctx.sql('(') + .visit(wrap(fieldAliases).indentSize(0)) + .sql(')'); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/QueryPartListView.java b/jOOQ/src/main/java/org/jooq/impl/QueryPartListView.java index 6689c1051c..21f857fe36 100644 --- a/jOOQ/src/main/java/org/jooq/impl/QueryPartListView.java +++ b/jOOQ/src/main/java/org/jooq/impl/QueryPartListView.java @@ -38,9 +38,7 @@ package org.jooq.impl; -import static java.lang.Boolean.TRUE; import static java.util.Arrays.asList; -import static org.jooq.impl.Tools.BooleanDataKey.DATA_LIST_ALREADY_INDENTED; import java.util.Collection; import java.util.List; @@ -48,7 +46,6 @@ import java.util.ListIterator; import org.jooq.Context; import org.jooq.QueryPart; -import org.jooq.Statement; /** * A {@link List} view, delegating all calls to a wrapped list, but acting like @@ -86,49 +83,6 @@ class QueryPartListView extends QueryPartCollectionView return (List) super.wrapped(); } - @Override - public /* non-final */ void accept(Context ctx) { - int size = size(); - - if (ctx.separatorRequired()) - if (size >= indentSize) - ctx.formatSeparator(); - else - ctx.sql(' '); - - // Some lists render different SQL when empty - if (size == 0) { - toSQLEmptyList(ctx); - } - - else { - boolean indent = (size >= indentSize) && !TRUE.equals(ctx.data(DATA_LIST_ALREADY_INDENTED)); - - if (indent) - ctx.formatIndentStart(); - - for (int i = 0; i < size; i++) { - T part = get(i); - - if (i > 0) { - - // [#3607] Procedures and functions are not separated by comma - if (!(part instanceof Statement)) - ctx.sql(','); - - ctx.formatSeparator(); - } - else if (indent) - ctx.formatNewLine(); - - ctx.visit(part); - } - - if (indent) - ctx.formatIndentEnd().formatNewLine(); - } - } - /** * Subclasses may override this method */