[jOOQ/jOOQ#9985] Improve formatting of MergeImpl::toSQLH2Merge
This commit is contained in:
parent
eb1e7dc6f3
commit
c6aae375d7
@ -97,7 +97,7 @@ import static org.jooq.impl.Keywords.K_ON;
|
||||
import static org.jooq.impl.Keywords.K_PARTITION_BY;
|
||||
import static org.jooq.impl.Keywords.K_USING;
|
||||
import static org.jooq.impl.Names.N_JOIN;
|
||||
import static org.jooq.impl.Tools.renderUnqualifiedNames;
|
||||
import static org.jooq.impl.QueryPartListView.wrap;
|
||||
import static org.jooq.impl.Tools.BooleanDataKey.DATA_COLLECT_SEMI_ANTI_JOIN;
|
||||
import static org.jooq.impl.Tools.DataKey.DATA_COLLECTED_SEMI_ANTI_JOIN;
|
||||
|
||||
@ -462,12 +462,16 @@ implements
|
||||
|
||||
// Native supporters of JOIN .. USING
|
||||
else {
|
||||
boolean qualify = context.qualify();
|
||||
|
||||
context.formatSeparator()
|
||||
.start(TABLE_JOIN_USING)
|
||||
.visit(K_USING)
|
||||
.sql(" (");
|
||||
renderUnqualifiedNames(context, using);
|
||||
context.sql(')')
|
||||
.sql(" (")
|
||||
.qualify(false)
|
||||
.visit(wrap(using).indentSize(0))
|
||||
.qualify(qualify)
|
||||
.sql(')')
|
||||
.end(TABLE_JOIN_USING);
|
||||
}
|
||||
}
|
||||
|
||||
@ -76,6 +76,7 @@ import static org.jooq.impl.Keywords.K_VALUES;
|
||||
import static org.jooq.impl.Keywords.K_WHEN;
|
||||
import static org.jooq.impl.Keywords.K_WHERE;
|
||||
import static org.jooq.impl.Keywords.K_WITH_PRIMARY_KEY;
|
||||
import static org.jooq.impl.QueryPartCollectionView.wrap;
|
||||
import static org.jooq.impl.Tools.EMPTY_FIELD;
|
||||
import static org.jooq.impl.Tools.renderUnqualifiedNames;
|
||||
import static org.jooq.impl.Tools.BooleanDataKey.DATA_WRAP_DERIVED_TABLES_IN_PARENTHESES;
|
||||
@ -1375,22 +1376,24 @@ implements
|
||||
.visit(table)
|
||||
.formatSeparator();
|
||||
|
||||
ctx.sql('(');
|
||||
renderUnqualifiedNames(ctx, getUpsertFields());
|
||||
ctx.sql(')');
|
||||
ctx.sql('(')
|
||||
.visit(wrap(getUpsertFields()).qualify(false))
|
||||
.sql(')');
|
||||
|
||||
if (!getUpsertKeys().isEmpty()) {
|
||||
ctx.sql(' ').visit(K_KEY).sql(" (");
|
||||
renderUnqualifiedNames(ctx, getUpsertKeys());
|
||||
ctx.sql(')');
|
||||
ctx.formatSeparator()
|
||||
.visit(K_KEY).sql(" (")
|
||||
.visit(wrap(getUpsertKeys()).qualify(false))
|
||||
.sql(')');
|
||||
}
|
||||
|
||||
if (upsertSelect != null) {
|
||||
ctx.sql(' ')
|
||||
ctx.formatSeparator()
|
||||
.visit(upsertSelect);
|
||||
}
|
||||
else {
|
||||
ctx.sql(' ').visit(K_VALUES).sql(" (")
|
||||
ctx.formatSeparator()
|
||||
.visit(K_VALUES).sql(" (")
|
||||
.visit(getUpsertValues())
|
||||
.sql(')');
|
||||
}
|
||||
|
||||
@ -61,6 +61,7 @@ class QueryPartCollectionView<T extends QueryPart> extends AbstractQueryPart imp
|
||||
private static final long serialVersionUID = -2936922742534009564L;
|
||||
final Collection<T> wrapped;
|
||||
int indentSize;
|
||||
Boolean qualify;
|
||||
|
||||
static <T extends QueryPart> QueryPartCollectionView<T> wrap(Collection<T> wrapped) {
|
||||
return new QueryPartCollectionView<>(wrapped);
|
||||
@ -79,6 +80,11 @@ class QueryPartCollectionView<T extends QueryPart> extends AbstractQueryPart imp
|
||||
return this;
|
||||
}
|
||||
|
||||
QueryPartCollectionView<T> qualify(boolean newQualify) {
|
||||
this.qualify = newQualify;
|
||||
return this;
|
||||
}
|
||||
|
||||
Collection<T> wrapped() {
|
||||
return wrapped;
|
||||
}
|
||||
@ -87,6 +93,10 @@ class QueryPartCollectionView<T extends QueryPart> extends AbstractQueryPart imp
|
||||
public /* non-final */ void accept(Context<?> ctx) {
|
||||
int size = size();
|
||||
boolean format = size >= indentSize;
|
||||
boolean previousQualify = ctx.qualify();
|
||||
|
||||
if (qualify != null)
|
||||
ctx.qualify(qualify);
|
||||
|
||||
if (ctx.separatorRequired())
|
||||
if (format)
|
||||
@ -127,6 +137,9 @@ class QueryPartCollectionView<T extends QueryPart> extends AbstractQueryPart imp
|
||||
if (indent)
|
||||
ctx.formatIndentEnd().formatNewLine();
|
||||
}
|
||||
|
||||
if (qualify != null)
|
||||
ctx.qualify(previousQualify);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -78,6 +78,11 @@ class QueryPartListView<T extends QueryPart> extends QueryPartCollectionView<T>
|
||||
return (QueryPartListView<T>) super.indentSize(newIndentSize);
|
||||
}
|
||||
|
||||
@Override
|
||||
QueryPartListView<T> qualify(boolean newQualify) {
|
||||
return (QueryPartListView<T>) super.qualify(newQualify);
|
||||
}
|
||||
|
||||
@Override
|
||||
List<T> wrapped() {
|
||||
return (List<T>) super.wrapped();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user