diff --git a/jOOQ/src/main/java/org/jooq/Clause.java b/jOOQ/src/main/java/org/jooq/Clause.java
index 5ca81c5956..e9cfa66381 100644
--- a/jOOQ/src/main/java/org/jooq/Clause.java
+++ b/jOOQ/src/main/java/org/jooq/Clause.java
@@ -48,6 +48,13 @@ public enum Clause {
@Deprecated
DUMMY,
+ // -------------------------------------------------------------------------
+ // Clauses used in a any type of statement to model package references
+ // -------------------------------------------------------------------------
+
+ PACKAGE,
+ PACKAGE_REFERENCE,
+
// -------------------------------------------------------------------------
// Clauses used in a any type of statement to model catalog references
// -------------------------------------------------------------------------
@@ -67,9 +74,9 @@ public enum Clause {
// -------------------------------------------------------------------------
/**
- * A complete table reference.
+ * A table expression.
*
- * This clause surrounds a complete table reference as it can be encountered
+ * This clause surrounds an actual table expression as it can be encountered
* in
*
* {@link #SELECT_FROM}
@@ -84,10 +91,6 @@ public enum Clause {
TABLE_ALIAS,
TABLE_REFERENCE,
-
- /**
- *
- */
TABLE_JOIN,
TABLE_JOIN_INNER,
TABLE_JOIN_CROSS,
@@ -320,6 +323,8 @@ public enum Clause {
INSERT,
INSERT_INSERT_INTO,
+ INSERT_ON_DUPLICATE_KEY_UPDATE,
+ INSERT_ON_DUPLICATE_KEY_UPDATE_ASSIGNMENT,
INSERT_RETURNING,
@@ -398,6 +403,8 @@ public enum Clause {
MERGE,
MERGE_MERGE_INTO,
+ MERGE_WHEN_MATCHED_THEN_UPDATE_SET,
+ MERGE_WHEN_MATCHED_THEN_UPDATE_SET_ASSIGNMENT,
diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractStoreQuery.java b/jOOQ/src/main/java/org/jooq/impl/AbstractStoreQuery.java
index a0225bc166..332001c72c 100644
--- a/jOOQ/src/main/java/org/jooq/impl/AbstractStoreQuery.java
+++ b/jOOQ/src/main/java/org/jooq/impl/AbstractStoreQuery.java
@@ -35,7 +35,6 @@
*/
package org.jooq.impl;
-import static org.jooq.Clause.DUMMY;
import static org.jooq.impl.Utils.fieldArray;
import static org.jooq.util.sqlite.SQLiteDSL.rowid;
@@ -84,7 +83,7 @@ abstract class AbstractStoreQuery extends AbstractQuery implem
super(configuration);
this.into = into;
- this.returning = new QueryPartList>(DUMMY);
+ this.returning = new QueryPartList>();
}
protected abstract Map, Field>> getValues();
diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java
index 5a1946fb02..eb55965e89 100644
--- a/jOOQ/src/main/java/org/jooq/impl/DSL.java
+++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java
@@ -35,7 +35,6 @@
*/
package org.jooq.impl;
-import static org.jooq.Clause.DUMMY;
import static org.jooq.SQLDialect.ASE;
import static org.jooq.SQLDialect.CUBRID;
import static org.jooq.SQLDialect.DB2;
@@ -7767,7 +7766,7 @@ public class DSL {
WrappedList[] array = new WrappedList[fieldSets.length];
for (int i = 0; i < fieldSets.length; i++) {
- array[i] = new WrappedList(new QueryPartList>(DUMMY, fieldSets[i]));
+ array[i] = new WrappedList(new QueryPartList>(fieldSets[i]));
}
return new Function("grouping sets", SQLDataType.OTHER, array);
diff --git a/jOOQ/src/main/java/org/jooq/impl/DivideBy.java b/jOOQ/src/main/java/org/jooq/impl/DivideBy.java
index 5d99773eb7..ffb4ecf423 100644
--- a/jOOQ/src/main/java/org/jooq/impl/DivideBy.java
+++ b/jOOQ/src/main/java/org/jooq/impl/DivideBy.java
@@ -35,7 +35,6 @@
*/
package org.jooq.impl;
-import static org.jooq.Clause.DUMMY;
import static org.jooq.impl.DSL.condition;
import static org.jooq.impl.DSL.exists;
import static org.jooq.impl.DSL.notExists;
@@ -75,7 +74,7 @@ implements
this.divisor = divisor;
this.condition = new ConditionProviderImpl();
- this.returning = new QueryPartList>(DUMMY);
+ this.returning = new QueryPartList>();
}
// ------------------------------------------------------------------------
diff --git a/jOOQ/src/main/java/org/jooq/impl/Expression.java b/jOOQ/src/main/java/org/jooq/impl/Expression.java
index 08c888ddf0..24337b6472 100644
--- a/jOOQ/src/main/java/org/jooq/impl/Expression.java
+++ b/jOOQ/src/main/java/org/jooq/impl/Expression.java
@@ -36,7 +36,6 @@
package org.jooq.impl;
import static java.util.Arrays.asList;
-import static org.jooq.Clause.DUMMY;
import static org.jooq.SQLDialect.ASE;
import static org.jooq.SQLDialect.CUBRID;
import static org.jooq.SQLDialect.DB2;
@@ -100,7 +99,7 @@ class Expression extends AbstractFunction {
this.operator = operator;
this.lhs = lhs;
- this.rhs = new QueryPartList>(DUMMY, rhs);
+ this.rhs = new QueryPartList>(rhs);
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/FieldMapForUpdate.java b/jOOQ/src/main/java/org/jooq/impl/FieldMapForUpdate.java
index 63167b4c78..2fde0c7152 100644
--- a/jOOQ/src/main/java/org/jooq/impl/FieldMapForUpdate.java
+++ b/jOOQ/src/main/java/org/jooq/impl/FieldMapForUpdate.java
@@ -36,8 +36,6 @@
package org.jooq.impl;
import static java.util.Arrays.asList;
-import static org.jooq.Clause.DUMMY;
-import static org.jooq.Clause.UPDATE_SET_ASSIGNMENT;
import static org.jooq.SQLDialect.POSTGRES;
import static org.jooq.SQLDialect.SQLITE;
@@ -59,7 +57,10 @@ class FieldMapForUpdate extends AbstractQueryPartMap, Field>> {
*/
private static final long serialVersionUID = -6139709404698673799L;
- FieldMapForUpdate() {
+ private final Clause assignmentClause;
+
+ FieldMapForUpdate(Clause assignmentClause) {
+ this.assignmentClause = assignmentClause;
}
@Override
@@ -83,13 +84,13 @@ class FieldMapForUpdate extends AbstractQueryPartMap, Field>> {
context.formatNewLine();
}
- context.start(UPDATE_SET_ASSIGNMENT)
+ context.start(assignmentClause)
.qualify(supportsQualify)
.visit(entry.getKey())
.qualify(restoreQualify)
.sql(" = ")
.visit(entry.getValue())
- .end(UPDATE_SET_ASSIGNMENT);
+ .end(assignmentClause);
separator = ", ";
}
@@ -109,7 +110,7 @@ class FieldMapForUpdate extends AbstractQueryPartMap, Field>> {
@Override
public final Clause[] clauses(Context> ctx) {
- return new Clause[] { DUMMY };
+ return null;
}
final void set(Map extends Field>, ?> map) {
diff --git a/jOOQ/src/main/java/org/jooq/impl/Fields.java b/jOOQ/src/main/java/org/jooq/impl/Fields.java
index caaffc2478..4e41b25968 100644
--- a/jOOQ/src/main/java/org/jooq/impl/Fields.java
+++ b/jOOQ/src/main/java/org/jooq/impl/Fields.java
@@ -36,8 +36,6 @@
package org.jooq.impl;
-import static org.jooq.Clause.DUMMY;
-
import java.util.Collection;
import org.jooq.BindContext;
@@ -250,17 +248,17 @@ class Fields extends AbstractQueryPart implements RecordType>(DUMMY, fields).toSQL(context);
+ new QueryPartList>(fields).toSQL(context);
}
@Override
public final void bind(BindContext context) {
- new QueryPartList>(DUMMY, fields).bind(context);
+ new QueryPartList>(fields).bind(context);
}
@Override
public final Clause[] clauses(Context> ctx) {
- return new Clause[] { DUMMY };
+ return null;
}
// -------------------------------------------------------------------------
diff --git a/jOOQ/src/main/java/org/jooq/impl/Function.java b/jOOQ/src/main/java/org/jooq/impl/Function.java
index 13fe1824c8..bf3684b9de 100644
--- a/jOOQ/src/main/java/org/jooq/impl/Function.java
+++ b/jOOQ/src/main/java/org/jooq/impl/Function.java
@@ -37,7 +37,6 @@
package org.jooq.impl;
import static java.util.Arrays.asList;
-import static org.jooq.Clause.DUMMY;
import static org.jooq.SQLDialect.CUBRID;
import static org.jooq.SQLDialect.DB2;
import static org.jooq.SQLDialect.H2;
@@ -137,10 +136,10 @@ class Function extends AbstractField implements
this.term = null;
this.name = null;
this.distinct = distinct;
- this.arguments = new QueryPartList(DUMMY, arguments);
+ this.arguments = new QueryPartList(arguments);
this.keepDenseRankOrderBy = new SortFieldList();
this.withinGroupOrderBy = new SortFieldList();
- this.partitionBy = new QueryPartList>(DUMMY);
+ this.partitionBy = new QueryPartList>();
this.orderBy = new SortFieldList();
}
@@ -150,10 +149,10 @@ class Function extends AbstractField implements
this.term = term;
this.name = null;
this.distinct = distinct;
- this.arguments = new QueryPartList(DUMMY, arguments);
+ this.arguments = new QueryPartList(arguments);
this.keepDenseRankOrderBy = new SortFieldList();
this.withinGroupOrderBy = new SortFieldList();
- this.partitionBy = new QueryPartList>(DUMMY);
+ this.partitionBy = new QueryPartList>();
this.orderBy = new SortFieldList();
}
@@ -163,10 +162,10 @@ class Function extends AbstractField implements
this.term = null;
this.name = name;
this.distinct = distinct;
- this.arguments = new QueryPartList(DUMMY, arguments);
+ this.arguments = new QueryPartList(arguments);
this.keepDenseRankOrderBy = new SortFieldList();
this.withinGroupOrderBy = new SortFieldList();
- this.partitionBy = new QueryPartList>(DUMMY);
+ this.partitionBy = new QueryPartList>();
this.orderBy = new SortFieldList();
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java
index cd0bbe25ca..b6079f1bad 100644
--- a/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java
@@ -38,6 +38,7 @@ package org.jooq.impl;
import static java.util.Arrays.asList;
import static org.jooq.Clause.INSERT;
+import static org.jooq.Clause.INSERT_ON_DUPLICATE_KEY_UPDATE_ASSIGNMENT;
import static org.jooq.SQLDialect.MARIADB;
import static org.jooq.SQLDialect.MYSQL;
@@ -76,7 +77,7 @@ class InsertQueryImpl extends AbstractStoreQuery implements
InsertQueryImpl(Configuration configuration, Table into) {
super(configuration, into);
- updateMap = new FieldMapForUpdate();
+ updateMap = new FieldMapForUpdate(INSERT_ON_DUPLICATE_KEY_UPDATE_ASSIGNMENT);
insertMaps = new FieldMapsForInsert();
}
@@ -149,7 +150,8 @@ class InsertQueryImpl extends AbstractStoreQuery implements
case MYSQL: {
toSQLInsert(context);
context.formatSeparator()
- .keyword("on duplicate key update ")
+ .keyword("on duplicate key update")
+ .sql(" ")
.visit(updateMap);
break;
@@ -191,13 +193,14 @@ class InsertQueryImpl extends AbstractStoreQuery implements
// CUBRID can simulate this using ON DUPLICATE KEY UPDATE
case CUBRID: {
- FieldMapForUpdate update = new FieldMapForUpdate();
+ FieldMapForUpdate update = new FieldMapForUpdate(INSERT_ON_DUPLICATE_KEY_UPDATE_ASSIGNMENT);
Field> field = getInto().field(0);
update.put(field, field);
toSQLInsert(context);
context.formatSeparator()
- .keyword("on duplicate key update ")
+ .keyword("on duplicate key update")
+ .sql(" ")
.visit(update);
break;
diff --git a/jOOQ/src/main/java/org/jooq/impl/JoinTable.java b/jOOQ/src/main/java/org/jooq/impl/JoinTable.java
index e4396b0a78..550620590f 100644
--- a/jOOQ/src/main/java/org/jooq/impl/JoinTable.java
+++ b/jOOQ/src/main/java/org/jooq/impl/JoinTable.java
@@ -36,7 +36,6 @@
package org.jooq.impl;
import static java.util.Arrays.asList;
-import static org.jooq.Clause.DUMMY;
import static org.jooq.Clause.TABLE;
import static org.jooq.Clause.TABLE_JOIN;
import static org.jooq.Clause.TABLE_JOIN_CROSS;
@@ -118,11 +117,11 @@ class JoinTable extends AbstractTable implements TableOptionalOnStep, Ta
this.lhs = lhs.asTable();
this.rhs = rhs.asTable();
- this.rhsPartitionBy = new QueryPartList>(DUMMY);
+ this.rhsPartitionBy = new QueryPartList>();
this.type = type;
this.condition = new ConditionProviderImpl();
- this.using = new QueryPartList>(DUMMY);
+ this.using = new QueryPartList>();
}
// ------------------------------------------------------------------------
diff --git a/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java b/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java
index 8b672796f6..374b2e4594 100644
--- a/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java
@@ -35,8 +35,8 @@
*/
package org.jooq.impl;
-import static org.jooq.Clause.DUMMY;
import static org.jooq.Clause.MERGE;
+import static org.jooq.Clause.MERGE_WHEN_MATCHED_THEN_UPDATE_SET_ASSIGNMENT;
import static org.jooq.SQLDialect.H2;
import static org.jooq.impl.DSL.condition;
import static org.jooq.impl.DSL.exists;
@@ -235,7 +235,7 @@ implements
if (fields != null) {
h2Style = true;
- h2Fields = new QueryPartList>(DUMMY, fields);
+ h2Fields = new QueryPartList>(fields);
}
}
@@ -245,7 +245,7 @@ implements
QueryPartList> getH2Fields() {
if (h2Fields == null) {
- h2Fields = new QueryPartList>(DUMMY, table.fields());
+ h2Fields = new QueryPartList>(table.fields());
}
return h2Fields;
@@ -253,7 +253,7 @@ implements
QueryPartList> getH2Keys() {
if (h2Keys == null) {
- h2Keys = new QueryPartList>(DUMMY);
+ h2Keys = new QueryPartList>();
}
return h2Keys;
@@ -261,7 +261,7 @@ implements
QueryPartList> getH2Values() {
if (h2Values == null) {
- h2Values = new QueryPartList>(DUMMY);
+ h2Values = new QueryPartList>();
}
return h2Values;
@@ -678,7 +678,7 @@ implements
@Override
public final MergeImpl whenMatchedThenUpdate() {
matchedClause = true;
- matchedUpdate = new FieldMapForUpdate();
+ matchedUpdate = new FieldMapForUpdate(MERGE_WHEN_MATCHED_THEN_UPDATE_SET_ASSIGNMENT);
notMatchedClause = false;
return this;
diff --git a/jOOQ/src/main/java/org/jooq/impl/NameImpl.java b/jOOQ/src/main/java/org/jooq/impl/NameImpl.java
index 26add31366..70351d10e3 100644
--- a/jOOQ/src/main/java/org/jooq/impl/NameImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/NameImpl.java
@@ -35,8 +35,6 @@
*/
package org.jooq.impl;
-import static org.jooq.Clause.DUMMY;
-
import java.util.Arrays;
import org.jooq.BindContext;
@@ -78,7 +76,7 @@ class NameImpl extends AbstractQueryPart implements Name {
@Override
public final Clause[] clauses(Context> ctx) {
- return new Clause[] { DUMMY };
+ return null;
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/PackageImpl.java b/jOOQ/src/main/java/org/jooq/impl/PackageImpl.java
index 19c0261e6d..9b85dc6f63 100644
--- a/jOOQ/src/main/java/org/jooq/impl/PackageImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/PackageImpl.java
@@ -35,7 +35,8 @@
*/
package org.jooq.impl;
-import static org.jooq.Clause.DUMMY;
+import static org.jooq.Clause.PACKAGE;
+import static org.jooq.Clause.PACKAGE_REFERENCE;
import org.jooq.BindContext;
import org.jooq.Clause;
@@ -61,10 +62,11 @@ public class PackageImpl extends AbstractQueryPart implements Package {
/**
* Generated UID
*/
- private static final long serialVersionUID = 7466890004995197675L;
+ private static final long serialVersionUID = 7466890004995197675L;
+ private static final Clause[] CLAUSES = { PACKAGE, PACKAGE_REFERENCE };
- private final Schema schema;
- private final String name;
+ private final Schema schema;
+ private final String name;
public PackageImpl(String name, Schema schema) {
this.schema = schema;
@@ -91,7 +93,7 @@ public class PackageImpl extends AbstractQueryPart implements Package {
@Override
public final Clause[] clauses(Context> ctx) {
- return new Clause[] { DUMMY };
+ return CLAUSES;
}
// ------------------------------------------------------------------------
diff --git a/jOOQ/src/main/java/org/jooq/impl/ParameterImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParameterImpl.java
index 1585d85ac1..8335fff0c6 100644
--- a/jOOQ/src/main/java/org/jooq/impl/ParameterImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/ParameterImpl.java
@@ -36,8 +36,6 @@
package org.jooq.impl;
-import static org.jooq.Clause.DUMMY;
-
import org.jooq.BindContext;
import org.jooq.Clause;
import org.jooq.Configuration;
@@ -96,7 +94,7 @@ class ParameterImpl extends AbstractQueryPart implements Parameter {
@Override
public final Clause[] clauses(Context> ctx) {
- return new Clause[] { DUMMY };
+ return null;
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/QuantifiedSelectImpl.java b/jOOQ/src/main/java/org/jooq/impl/QuantifiedSelectImpl.java
index a3cc7aea3c..ff78097933 100644
--- a/jOOQ/src/main/java/org/jooq/impl/QuantifiedSelectImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/QuantifiedSelectImpl.java
@@ -35,7 +35,6 @@
*/
package org.jooq.impl;
-import static org.jooq.Clause.DUMMY;
import static org.jooq.impl.DSL.table;
import org.jooq.BindContext;
@@ -44,7 +43,7 @@ import org.jooq.Configuration;
import org.jooq.Context;
import org.jooq.Field;
import org.jooq.QuantifiedSelect;
-import org.jooq.QueryPart;
+import org.jooq.QueryPartInternal;
import org.jooq.Record;
import org.jooq.RenderContext;
import org.jooq.Select;
@@ -76,62 +75,62 @@ class QuantifiedSelectImpl extends AbstractQueryPart implement
}
@Override
- public final void toSQL(RenderContext context) {
+ public final void toSQL(RenderContext ctx) {
// If this is already a subquery, proceed
- if (context.subquery()) {
- context.keyword(quantifier.toSQL())
- .sql(" (")
- .formatIndentStart()
- .formatNewLine()
- .visit(part(context.configuration()))
- .formatIndentEnd()
- .formatNewLine()
- .sql(")");
+ if (ctx.subquery()) {
+ ctx.keyword(quantifier.toSQL())
+ .sql(" (")
+ .formatIndentStart()
+ .formatNewLine()
+ .visit(delegate(ctx.configuration()))
+ .formatIndentEnd()
+ .formatNewLine()
+ .sql(")");
}
else {
- context.keyword(quantifier.toSQL())
- .sql(" (")
- .subquery(true)
- .formatIndentStart()
- .formatNewLine()
- .visit(part(context.configuration()))
- .formatIndentEnd()
- .formatNewLine()
- .subquery(false)
- .sql(")");
+ ctx.keyword(quantifier.toSQL())
+ .sql(" (")
+ .subquery(true)
+ .formatIndentStart()
+ .formatNewLine()
+ .visit(delegate(ctx.configuration()))
+ .formatIndentEnd()
+ .formatNewLine()
+ .subquery(false)
+ .sql(")");
}
}
@Override
- public final void bind(BindContext context) {
+ public final void bind(BindContext ctx) {
// If this is already a subquery, proceed
- if (context.subquery()) {
- context.visit(part(context.configuration()));
+ if (ctx.subquery()) {
+ ctx.visit(delegate(ctx.configuration()));
}
else {
- context.subquery(true)
- .visit(part(context.configuration()))
- .subquery(false);
+ ctx.subquery(true)
+ .visit(delegate(ctx.configuration()))
+ .subquery(false);
}
}
@Override
public final Clause[] clauses(Context> ctx) {
- return new Clause[] { DUMMY };
+ return delegate(ctx.configuration()).clauses(ctx);
}
- private final QueryPart part(Configuration context) {
+ private final QueryPartInternal delegate(Configuration ctx) {
if (query != null) {
- return query;
+ return (QueryPartInternal) query;
}
else {
- switch (context.dialect()) {
+ switch (ctx.dialect()) {
// [#869] Postgres supports this syntax natively
case POSTGRES: {
- return array;
+ return (QueryPartInternal) array;
}
// [#869] H2 and HSQLDB can simulate this syntax by unnesting
@@ -142,7 +141,7 @@ class QuantifiedSelectImpl extends AbstractQueryPart implement
// [#1048] All other dialects simulate unnesting of arrays using
// UNION ALL-connected subselects
default: {
- return create(context).select().from(table(array));
+ return (QueryPartInternal) create(ctx).select().from(table(array));
}
}
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/QueryPartList.java b/jOOQ/src/main/java/org/jooq/impl/QueryPartList.java
index 0f6108adbf..3896cd4227 100644
--- a/jOOQ/src/main/java/org/jooq/impl/QueryPartList.java
+++ b/jOOQ/src/main/java/org/jooq/impl/QueryPartList.java
@@ -36,11 +36,10 @@
package org.jooq.impl;
-import static org.jooq.Clause.DUMMY;
+import static java.util.Arrays.asList;
import static org.jooq.impl.Utils.visitAll;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
@@ -59,16 +58,14 @@ class QueryPartList extends AbstractQueryPart implements Li
private static final long serialVersionUID = -2936922742534009564L;
private final List wrappedList;
- private final Clause clause;
- QueryPartList(Clause clause) {
- this(clause, (Collection) null);
+ QueryPartList() {
+ this((Collection) null);
}
- QueryPartList(Clause clause, Collection extends T> wrappedList) {
+ QueryPartList(Collection extends T> wrappedList) {
super();
- this.clause = clause;
this.wrappedList = new ArrayList();
if (wrappedList != null) {
@@ -76,8 +73,8 @@ class QueryPartList extends AbstractQueryPart implements Li
}
}
- QueryPartList(Clause clause, T... wrappedList) {
- this(clause, Arrays.asList(wrappedList));
+ QueryPartList(T... wrappedList) {
+ this(asList(wrappedList));
}
@Override
@@ -130,7 +127,7 @@ class QueryPartList extends AbstractQueryPart implements Li
@Override
public final Clause[] clauses(Context> ctx) {
- return new Clause[] { DUMMY };
+ return null;
}
/**
diff --git a/jOOQ/src/main/java/org/jooq/impl/Rollup.java b/jOOQ/src/main/java/org/jooq/impl/Rollup.java
index 12a6824fcf..c66d359972 100644
--- a/jOOQ/src/main/java/org/jooq/impl/Rollup.java
+++ b/jOOQ/src/main/java/org/jooq/impl/Rollup.java
@@ -35,7 +35,6 @@
*/
package org.jooq.impl;
-import static org.jooq.Clause.DUMMY;
import static org.jooq.impl.DSL.field;
import static org.jooq.impl.DSL.function;
@@ -62,7 +61,7 @@ class Rollup extends AbstractFunction {
case CUBRID:
case MARIADB:
case MYSQL:
- return field("{0} {with rollup}", new QueryPartList>(DUMMY, getArguments()));
+ return field("{0} {with rollup}", new QueryPartList>(getArguments()));
default:
return function("rollup", Object.class, getArguments());
diff --git a/jOOQ/src/main/java/org/jooq/impl/RowCondition.java b/jOOQ/src/main/java/org/jooq/impl/RowCondition.java
index c9fd7a69b0..4704f517de 100644
--- a/jOOQ/src/main/java/org/jooq/impl/RowCondition.java
+++ b/jOOQ/src/main/java/org/jooq/impl/RowCondition.java
@@ -38,7 +38,6 @@ package org.jooq.impl;
import static java.util.Arrays.asList;
import static org.jooq.Clause.CONDITION;
import static org.jooq.Clause.CONDITION_COMPARISON;
-import static org.jooq.Clause.DUMMY;
import static org.jooq.Comparator.EQUALS;
import static org.jooq.Comparator.GREATER;
import static org.jooq.Comparator.GREATER_OR_EQUAL;
@@ -95,18 +94,18 @@ class RowCondition extends AbstractCondition {
}
@Override
- public final void toSQL(RenderContext context) {
- delegate(context.configuration()).toSQL(context);
+ public final void toSQL(RenderContext ctx) {
+ delegate(ctx.configuration()).toSQL(ctx);
}
@Override
- public final void bind(BindContext context) {
- delegate(context.configuration()).bind(context);
+ public final void bind(BindContext ctx) {
+ delegate(ctx.configuration()).bind(ctx);
}
@Override
public final Clause[] clauses(Context> ctx) {
- return new Clause[] { DUMMY };
+ return delegate(ctx.configuration()).clauses(ctx);
}
private final QueryPartInternal delegate(Configuration configuration) {
@@ -193,10 +192,8 @@ class RowCondition extends AbstractCondition {
// Some dialects do not support != comparison with rows
if (comparator == NOT_EQUALS && asList(DB2).contains(context.configuration().dialect().family())) {
- context.keyword("not(")
- .visit(left)
- .sql(" = ")
- .visit(right)
+ context.keyword("not").sql("(")
+ .visit(left).sql(" = ").visit(right)
.sql(")");
}
else {
diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl.java
index d637966375..ec2bbf99b9 100644
--- a/jOOQ/src/main/java/org/jooq/impl/RowImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl.java
@@ -35,7 +35,6 @@
*/
package org.jooq.impl;
-import static org.jooq.Clause.DUMMY;
import static org.jooq.Clause.FIELD;
import static org.jooq.Clause.FIELD_ROW;
import static org.jooq.impl.DSL.row;
@@ -9921,13 +9920,13 @@ implements
@Override
public final Condition in(Collection rows) {
- QueryPartList list = new QueryPartList(DUMMY, rows);
+ QueryPartList list = new QueryPartList(rows);
return new RowInCondition(this, list, Comparator.IN);
}
@Override
public final Condition notIn(Collection rows) {
- QueryPartList list = new QueryPartList(DUMMY, rows);
+ QueryPartList list = new QueryPartList(rows);
return new RowInCondition(this, list, Comparator.NOT_IN);
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/RowIsNull.java b/jOOQ/src/main/java/org/jooq/impl/RowIsNull.java
index 8db2ce6e01..aa04291b59 100644
--- a/jOOQ/src/main/java/org/jooq/impl/RowIsNull.java
+++ b/jOOQ/src/main/java/org/jooq/impl/RowIsNull.java
@@ -37,9 +37,8 @@ package org.jooq.impl;
import static java.util.Arrays.asList;
import static org.jooq.Clause.CONDITION;
-import static org.jooq.Clause.CONDITION_IS_NULL;
import static org.jooq.Clause.CONDITION_IS_NOT_NULL;
-import static org.jooq.Clause.DUMMY;
+import static org.jooq.Clause.CONDITION_IS_NULL;
import static org.jooq.SQLDialect.CUBRID;
import static org.jooq.SQLDialect.DB2;
import static org.jooq.SQLDialect.DERBY;
@@ -77,7 +76,7 @@ class RowIsNull extends AbstractCondition {
*/
private static final long serialVersionUID = -1806139685201770706L;
private static final Clause[] CLAUSES_NULL = { CONDITION, CONDITION_IS_NULL };
- private static final Clause[] CLAUSES_NULL_NOT = { CONDITION, CONDITION_IS_NOT_NULL };
+ private static final Clause[] CLAUSES_NOT_NULL = { CONDITION, CONDITION_IS_NOT_NULL };
private final Row row;
private final boolean isNull;
@@ -88,18 +87,18 @@ class RowIsNull extends AbstractCondition {
}
@Override
- public final void toSQL(RenderContext context) {
- delegate(context.configuration()).toSQL(context);
+ public final void toSQL(RenderContext ctx) {
+ delegate(ctx.configuration()).toSQL(ctx);
}
@Override
- public final void bind(BindContext context) {
- delegate(context.configuration()).bind(context);
+ public final void bind(BindContext ctx) {
+ delegate(ctx.configuration()).bind(ctx);
}
@Override
public final Clause[] clauses(Context> ctx) {
- return new Clause[] { DUMMY };
+ return delegate(ctx.configuration()).clauses(ctx);
}
private final QueryPartInternal delegate(Configuration configuration) {
@@ -131,7 +130,8 @@ class RowIsNull extends AbstractCondition {
@Override
public final void toSQL(RenderContext context) {
context.visit(row)
- .keyword(isNull ? " is null" : " is not null");
+ .sql(" ")
+ .keyword(isNull ? "is null" : "is not null");
}
@Override
@@ -141,7 +141,7 @@ class RowIsNull extends AbstractCondition {
@Override
public final Clause[] clauses(Context> ctx) {
- return isNull ? CLAUSES_NULL : CLAUSES_NULL_NOT;
+ return isNull ? CLAUSES_NULL : CLAUSES_NOT_NULL;
}
}
}
\ No newline at end of file
diff --git a/jOOQ/src/main/java/org/jooq/impl/RowSubqueryCondition.java b/jOOQ/src/main/java/org/jooq/impl/RowSubqueryCondition.java
index 89ae41f305..5637559101 100644
--- a/jOOQ/src/main/java/org/jooq/impl/RowSubqueryCondition.java
+++ b/jOOQ/src/main/java/org/jooq/impl/RowSubqueryCondition.java
@@ -38,7 +38,6 @@ package org.jooq.impl;
import static java.util.Arrays.asList;
import static org.jooq.Clause.CONDITION;
import static org.jooq.Clause.CONDITION_COMPARISON;
-import static org.jooq.Clause.DUMMY;
import static org.jooq.Comparator.EQUALS;
import static org.jooq.Comparator.IN;
import static org.jooq.Comparator.NOT_EQUALS;
@@ -86,9 +85,9 @@ class RowSubqueryCondition extends AbstractCondition {
private static final long serialVersionUID = -1806139685201770706L;
private static final Clause[] CLAUSES = { CONDITION, CONDITION_COMPARISON };
- private final Row left;
- private final Select> right;
- private final Comparator comparator;
+ private final Row left;
+ private final Select> right;
+ private final Comparator comparator;
RowSubqueryCondition(Row left, Select> right, Comparator comparator) {
this.left = left;
@@ -97,21 +96,21 @@ class RowSubqueryCondition extends AbstractCondition {
}
@Override
- public final void toSQL(RenderContext context) {
- delegate(context.configuration(), context).toSQL(context);
+ public final void toSQL(RenderContext ctx) {
+ delegate(ctx.configuration(), ctx).toSQL(ctx);
}
@Override
- public final void bind(BindContext context) {
- delegate(context.configuration(), null).bind(context);
+ public final void bind(BindContext ctx) {
+ delegate(ctx.configuration(), null).bind(ctx);
}
@Override
public final Clause[] clauses(Context> ctx) {
- return new Clause[] { DUMMY };
+ return delegate(ctx.configuration(), null).clauses(ctx);
}
- private final QueryPartInternal delegate(Configuration configuration, RenderContext context) {
+ private final QueryPartInternal delegate(Configuration configuration, RenderContext ctx) {
SQLDialect family = configuration.dialect().family();
// [#2395] These dialects have full native support for comparison
@@ -138,7 +137,7 @@ class RowSubqueryCondition extends AbstractCondition {
// [#2395] All other configurations have to be simulated
else {
- String table = context == null ? "t" : context.nextAlias();
+ String table = ctx == null ? "t" : ctx.nextAlias();
List names = new ArrayList();
for (int i = 0; i < left.size(); i++) {
diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectFieldList.java b/jOOQ/src/main/java/org/jooq/impl/SelectFieldList.java
index 30959d1284..b2b551ab97 100644
--- a/jOOQ/src/main/java/org/jooq/impl/SelectFieldList.java
+++ b/jOOQ/src/main/java/org/jooq/impl/SelectFieldList.java
@@ -36,8 +36,6 @@
package org.jooq.impl;
-import static org.jooq.Clause.FIELD;
-
import java.util.Collection;
import org.jooq.Field;
@@ -51,15 +49,15 @@ class SelectFieldList extends QueryPartList> {
private static final long serialVersionUID = 8850104968428500798L;
SelectFieldList() {
- super(FIELD);
+ super();
}
SelectFieldList(Collection extends Field>> wrappedList) {
- super(FIELD, wrappedList);
+ super(wrappedList);
}
SelectFieldList(Field>... wrappedList) {
- super(FIELD, wrappedList);
+ super(wrappedList);
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java
index 61b4761c7f..3298bf07f7 100644
--- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java
@@ -36,7 +36,6 @@
package org.jooq.impl;
import static java.util.Arrays.asList;
-import static org.jooq.Clause.DUMMY;
import static org.jooq.Clause.SELECT;
import static org.jooq.Clause.SELECT_CONNECT_BY;
import static org.jooq.Clause.SELECT_FROM;
@@ -153,7 +152,7 @@ class SelectQueryImpl extends AbstractSelect implements Sel
this.condition = new ConditionProviderImpl();
this.connectBy = new ConditionProviderImpl();
this.connectByStartWith = new ConditionProviderImpl();
- this.groupBy = new QueryPartList(DUMMY);
+ this.groupBy = new QueryPartList();
this.having = new ConditionProviderImpl();
this.orderBy = new SortFieldList();
this.limit = new Limit();
@@ -162,7 +161,7 @@ class SelectQueryImpl extends AbstractSelect implements Sel
this.from.add(from.asTable());
}
- this.forUpdateOf = new QueryPartList>(DUMMY);
+ this.forUpdateOf = new QueryPartList>();
this.forUpdateOfTables = new TableList();
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/SortFieldList.java b/jOOQ/src/main/java/org/jooq/impl/SortFieldList.java
index 7b56fb6586..9f05642e9a 100644
--- a/jOOQ/src/main/java/org/jooq/impl/SortFieldList.java
+++ b/jOOQ/src/main/java/org/jooq/impl/SortFieldList.java
@@ -36,8 +36,6 @@
package org.jooq.impl;
-import static org.jooq.Clause.DUMMY;
-
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -57,7 +55,7 @@ class SortFieldList extends QueryPartList> {
}
SortFieldList(List> wrappedList) {
- super(DUMMY, wrappedList);
+ super(wrappedList);
}
void addAll(Field>... fields) {
diff --git a/jOOQ/src/main/java/org/jooq/impl/TableList.java b/jOOQ/src/main/java/org/jooq/impl/TableList.java
index 21789634c0..934339085f 100644
--- a/jOOQ/src/main/java/org/jooq/impl/TableList.java
+++ b/jOOQ/src/main/java/org/jooq/impl/TableList.java
@@ -36,8 +36,6 @@
package org.jooq.impl;
-import static org.jooq.Clause.TABLE;
-
import java.util.List;
import org.jooq.Field;
@@ -52,11 +50,11 @@ class TableList extends QueryPartList> {
private static final long serialVersionUID = -8545559185481762229L;
TableList() {
- super(TABLE);
+ super();
}
TableList(List extends Table>> wrappedList) {
- super(TABLE, wrappedList);
+ super(wrappedList);
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java
index daff051055..a0c01f67f7 100644
--- a/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java
@@ -128,7 +128,7 @@ class UpdateQueryImpl extends AbstractStoreQuery implements
super(configuration, table);
this.condition = new ConditionProviderImpl();
- this.updateMap = new FieldMapForUpdate();
+ this.updateMap = new FieldMapForUpdate(UPDATE_SET_ASSIGNMENT);
}
@Override