diff --git a/jOOQ/src/main/java/org/jooq/Clause.java b/jOOQ/src/main/java/org/jooq/Clause.java
index 6dc1f382c6..2b0a6fda24 100644
--- a/jOOQ/src/main/java/org/jooq/Clause.java
+++ b/jOOQ/src/main/java/org/jooq/Clause.java
@@ -53,12 +53,14 @@ public enum Clause {
// -------------------------------------------------------------------------
CATALOG,
+ CATALOG_REFERENCE,
// -------------------------------------------------------------------------
// Clauses used in a any type of statement to model schema references
// -------------------------------------------------------------------------
SCHEMA,
+ SCHEMA_REFERENCE,
// -------------------------------------------------------------------------
// Clauses used in a any type of statement to model table references
@@ -80,6 +82,9 @@ public enum Clause {
*/
TABLE,
+ TABLE_ALIAS,
+ TABLE_REFERENCE,
+
/**
*
*/
@@ -104,6 +109,9 @@ public enum Clause {
// -------------------------------------------------------------------------
FIELD,
+ FIELD_ALIAS,
+ FIELD_REFERENCE,
+ FIELD_VALUE,
FIELD_CASE,
FIELD_ROW,
@@ -229,11 +237,70 @@ public enum Clause {
+ // -------------------------------------------------------------------------
+ // Clauses that are used in an UPDATE statement
+ // -------------------------------------------------------------------------
+
+ /**
+ * A complete UPDATE statement.
+ */
UPDATE,
+
+ /**
+ * An UPDATE clause within an {@link #UPDATE} statement.
+ *
+ * This clause surrounds
+ *
+ *
the UPDATE keyword
+ *
the table that is being updated
+ *
+ */
UPDATE_UPDATE,
+
+ /**
+ * A SET clause within an {@link #UPDATE} statement.
+ *
+ * This clause surrounds
+ *
+ *
the SET keyword
+ *
one or several assignments: {@link #UPDATE_SET_ASSIGNMENT}
+ *
+ */
UPDATE_SET,
+
+ /**
+ * An assigment within a {@link #UPDATE_SET} clause within an
+ * {@link #UPDATE} statement.
+ *
+ * This clause surrounds
+ *
+ *
a column
+ *
an assigment operator
+ *
a value being assigned
+ *
+ */
UPDATE_SET_ASSIGNMENT,
+
+ /**
+ * A WHERE clause within an {@link #UPDATE} statement.
+ *
+ * This clause surrounds
+ *
+ *
the WHERE keyword
+ *
a {@link #CONDITION}
+ *
+ */
UPDATE_WHERE,
+
+ /**
+ * A RETURNING clause within an {@link #UPDATE} statement.
+ *
+ * This clause surrounds
+ *
+ *
the RETURNING keyword
+ *
several {@link #FIELD} "clauses"
+ *
+ */
UPDATE_RETURNING,
diff --git a/jOOQ/src/main/java/org/jooq/QueryPartInternal.java b/jOOQ/src/main/java/org/jooq/QueryPartInternal.java
index f521c5c9db..2373e217d7 100644
--- a/jOOQ/src/main/java/org/jooq/QueryPartInternal.java
+++ b/jOOQ/src/main/java/org/jooq/QueryPartInternal.java
@@ -70,19 +70,20 @@ public interface QueryPartInternal extends QueryPart {
void bind(BindContext ctx) throws DataAccessException;
/**
- * The {@link Clause} that is represented by this query part.
+ * The {@link Clause}s that are represented by this query part.
*
- * {@link QueryPart}s can specify a Clause for which an event
- * will be emitted {@link Context#start(Clause) before} and
- * {@link Context#end(Clause) after} visiting the the query part through
- * {@link Context#visit(QueryPart)}
+ * {@link QueryPart}s can specify several Clauses for which an
+ * event will be emitted {@link Context#start(Clause) before} (in forward
+ * order) and {@link Context#end(Clause) after} (in reverse order) visiting
+ * the the query part through {@link Context#visit(QueryPart)}
*
* This method is for JOOQ INTERNAL USE only. Do not reference directly
*
- * @return The Clause represented by this query part or
- * null if this query part does not represent a clause.
+ * @return The Clauses represented by this query part or
+ * null or an empty array if this query part does not
+ * represent a clause.
*/
- Clause clause();
+ Clause[] clauses();
/**
* Check whether this {@link QueryPart} is able to declare fields in a
diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractCondition.java b/jOOQ/src/main/java/org/jooq/impl/AbstractCondition.java
index 14ac1eb34f..4bf2c5d67d 100644
--- a/jOOQ/src/main/java/org/jooq/impl/AbstractCondition.java
+++ b/jOOQ/src/main/java/org/jooq/impl/AbstractCondition.java
@@ -35,12 +35,14 @@
*/
package org.jooq.impl;
+import static org.jooq.Clause.CONDITION;
import static org.jooq.impl.DSL.condition;
import static org.jooq.impl.DSL.exists;
import static org.jooq.impl.DSL.notExists;
import java.util.Arrays;
+import org.jooq.Clause;
import org.jooq.Condition;
import org.jooq.Field;
import org.jooq.Operator;
@@ -55,10 +57,16 @@ abstract class AbstractCondition extends AbstractQueryPart implements Condition
/**
* Generated UID
*/
- private static final long serialVersionUID = -6683692251799468624L;
+ private static final long serialVersionUID = -6683692251799468624L;
+ private static final Clause[] CLAUSES = { CONDITION };
AbstractCondition() {}
+ @Override
+ public Clause[] clauses() {
+ return CLAUSES;
+ }
+
@Override
public final Condition and(Condition other) {
return new CombinedCondition(Operator.AND, Arrays.asList(this, other));
diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractContext.java b/jOOQ/src/main/java/org/jooq/impl/AbstractContext.java
index 21dd145e09..4e5053d322 100644
--- a/jOOQ/src/main/java/org/jooq/impl/AbstractContext.java
+++ b/jOOQ/src/main/java/org/jooq/impl/AbstractContext.java
@@ -36,6 +36,7 @@
package org.jooq.impl;
import static org.jooq.Clause.DUMMY;
+import static org.jooq.impl.Utils.DATA_OMIT_CLAUSE_EVENT_EMISSION;
import java.util.ArrayDeque;
import java.util.Deque;
@@ -216,10 +217,11 @@ abstract class AbstractContext> implements Context {
@Override
public final C visit(QueryPart part) {
if (part != null) {
- Clause clause = visitListeners.length > 0 ? clause(part) : null;
+ Clause[] clauses = visitListeners.length > 0 ? clause(part) : null;
- if (clause != null)
- start(clause);
+ if (clauses != null)
+ for (int i = 0; i < clauses.length; i++)
+ start(clauses[i]);
start(part);
QueryPartInternal internal = (QueryPartInternal) part;
@@ -247,8 +249,9 @@ abstract class AbstractContext> implements Context {
}
end(part);
- if (clause != null)
- end(clause);
+ if (clauses != null)
+ for (int i = clauses.length - 1; i >= 0; i--)
+ end(clauses[i]);
}
return (C) this;
@@ -270,9 +273,9 @@ abstract class AbstractContext> implements Context {
* {@link Context#visit(QueryPart)} event has to be issued here in
* AbstractContext.
*/
- private final Clause clause(QueryPart part) {
- if (part instanceof QueryPartInternal) {
- return ((QueryPartInternal) part).clause();
+ private final Clause[] clause(QueryPart part) {
+ if (part instanceof QueryPartInternal && data(DATA_OMIT_CLAUSE_EVENT_EMISSION) == null) {
+ return ((QueryPartInternal) part).clauses();
}
return null;
diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractDelegatingQuery.java b/jOOQ/src/main/java/org/jooq/impl/AbstractDelegatingQuery.java
index 7fef0a418f..d23bd0ce85 100644
--- a/jOOQ/src/main/java/org/jooq/impl/AbstractDelegatingQuery.java
+++ b/jOOQ/src/main/java/org/jooq/impl/AbstractDelegatingQuery.java
@@ -98,9 +98,9 @@ abstract class AbstractDelegatingQuery extends AbstractQueryPar
}
@Override
- public final Clause clause() {
+ public final Clause[] clauses() {
if (delegate instanceof QueryPartInternal) {
- return ((QueryPartInternal) delegate).clause();
+ return ((QueryPartInternal) delegate).clauses();
}
return null;
diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java
index 04c5106614..c4a277fc0c 100644
--- a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java
+++ b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java
@@ -35,7 +35,7 @@
*/
package org.jooq.impl;
-import static org.jooq.Clause.DUMMY;
+import static org.jooq.Clause.FIELD;
import static org.jooq.Comparator.EQUALS;
import static org.jooq.Comparator.GREATER;
import static org.jooq.Comparator.GREATER_OR_EQUAL;
@@ -99,7 +99,8 @@ abstract class AbstractField extends AbstractQueryPart implements Field {
/**
* Generated UID
*/
- private static final long serialVersionUID = 2884811923648354905L;
+ private static final long serialVersionUID = 2884811923648354905L;
+ private static final Clause[] CLAUSES = { FIELD };
private final String name;
private final DataType dataType;
@@ -122,8 +123,8 @@ abstract class AbstractField extends AbstractQueryPart implements Field {
public abstract void bind(BindContext context);
@Override
- public /* non-final for now */ Clause clause() {
- return DUMMY;
+ public Clause[] clauses() {
+ return CLAUSES;
}
// ------------------------------------------------------------------------
diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractFunction.java b/jOOQ/src/main/java/org/jooq/impl/AbstractFunction.java
index 9addece115..aaaef55fd6 100644
--- a/jOOQ/src/main/java/org/jooq/impl/AbstractFunction.java
+++ b/jOOQ/src/main/java/org/jooq/impl/AbstractFunction.java
@@ -35,10 +35,7 @@
*/
package org.jooq.impl;
-import static org.jooq.Clause.DUMMY;
-
import org.jooq.BindContext;
-import org.jooq.Clause;
import org.jooq.Configuration;
import org.jooq.DataType;
import org.jooq.Field;
@@ -75,11 +72,6 @@ abstract class AbstractFunction extends AbstractField {
ctx.visit(getFunction0(ctx.configuration()));
}
- @Override
- public final Clause clause() {
- return DUMMY;
- }
-
final Field>[] getArguments() {
return arguments;
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractParam.java b/jOOQ/src/main/java/org/jooq/impl/AbstractParam.java
index fd22867219..77e7b135ef 100644
--- a/jOOQ/src/main/java/org/jooq/impl/AbstractParam.java
+++ b/jOOQ/src/main/java/org/jooq/impl/AbstractParam.java
@@ -35,8 +35,11 @@
*/
package org.jooq.impl;
+import static org.jooq.Clause.FIELD;
+import static org.jooq.Clause.FIELD_VALUE;
import static org.jooq.conf.ParamType.INLINED;
+import org.jooq.Clause;
import org.jooq.DataType;
import org.jooq.Param;
import org.jooq.RenderContext;
@@ -51,7 +54,8 @@ abstract class AbstractParam extends AbstractField implements Param {
/**
* Generated UID
*/
- private static final long serialVersionUID = 1311856649676227970L;
+ private static final long serialVersionUID = 1311856649676227970L;
+ private static final Clause[] CLAUSES = { FIELD, FIELD_VALUE };
private final String paramName;
T value;
@@ -80,6 +84,15 @@ abstract class AbstractParam extends AbstractField implements Param {
return paramName == null ? String.valueOf(value) : paramName;
}
+ // ------------------------------------------------------------------------
+ // XXX: QueryPart API
+ // ------------------------------------------------------------------------
+
+ @Override
+ public final Clause[] clauses() {
+ return CLAUSES;
+ }
+
// ------------------------------------------------------------------------
// XXX: Param API
// ------------------------------------------------------------------------
diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java
index 1a136a2d1d..d24c31eba6 100644
--- a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java
+++ b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java
@@ -293,8 +293,8 @@ public abstract class AbstractRoutine extends AbstractQueryPart implements Ro
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractStoreQuery.java b/jOOQ/src/main/java/org/jooq/impl/AbstractStoreQuery.java
index 1d14d0d913..a0225bc166 100644
--- a/jOOQ/src/main/java/org/jooq/impl/AbstractStoreQuery.java
+++ b/jOOQ/src/main/java/org/jooq/impl/AbstractStoreQuery.java
@@ -50,7 +50,6 @@ import java.util.List;
import java.util.Map;
import org.jooq.BindContext;
-import org.jooq.Clause;
import org.jooq.Configuration;
import org.jooq.DSLContext;
import org.jooq.ExecuteContext;
@@ -149,17 +148,15 @@ abstract class AbstractStoreQuery extends AbstractQuery implem
return returned;
}
- final void toSQLReturning(RenderContext context, Clause clause) {
+ final void toSQLReturning(RenderContext context) {
if (!returning.isEmpty()) {
switch (context.configuration().dialect()) {
case FIREBIRD:
case POSTGRES:
context.formatSeparator()
- .start(clause)
.keyword("returning")
.sql(" ")
- .visit(returning)
- .end(clause);
+ .visit(returning);
break;
default:
diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractTable.java b/jOOQ/src/main/java/org/jooq/impl/AbstractTable.java
index 341b5046e8..9635e6553e 100644
--- a/jOOQ/src/main/java/org/jooq/impl/AbstractTable.java
+++ b/jOOQ/src/main/java/org/jooq/impl/AbstractTable.java
@@ -35,6 +35,7 @@
*/
package org.jooq.impl;
+import static org.jooq.Clause.TABLE;
import static org.jooq.impl.DSL.table;
import static org.jooq.impl.DSL.val;
@@ -44,6 +45,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.List;
+import org.jooq.Clause;
import org.jooq.DataType;
import org.jooq.DivideByOnStep;
import org.jooq.Field;
@@ -75,7 +77,8 @@ abstract class AbstractTable extends AbstractQueryPart impleme
/**
* Generated UID
*/
- private static final long serialVersionUID = 3155496238969274871L;
+ private static final long serialVersionUID = 3155496238969274871L;
+ private static final Clause[] CLAUSES = { TABLE };
private final Schema schema;
private final String name;
@@ -91,6 +94,15 @@ abstract class AbstractTable extends AbstractQueryPart impleme
this.name = name;
}
+ // ------------------------------------------------------------------------
+ // XXX: QueryPart API
+ // ------------------------------------------------------------------------
+
+ @Override
+ public Clause[] clauses() {
+ return CLAUSES;
+ }
+
// ------------------------------------------------------------------------
// XXX: TableLike API
// ------------------------------------------------------------------------
diff --git a/jOOQ/src/main/java/org/jooq/impl/Alias.java b/jOOQ/src/main/java/org/jooq/impl/Alias.java
index d283795a3e..7a1d4a034c 100644
--- a/jOOQ/src/main/java/org/jooq/impl/Alias.java
+++ b/jOOQ/src/main/java/org/jooq/impl/Alias.java
@@ -224,8 +224,8 @@ class Alias extends AbstractQueryPart {
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/ArrayTable.java b/jOOQ/src/main/java/org/jooq/impl/ArrayTable.java
index e936369861..9187c3d19e 100644
--- a/jOOQ/src/main/java/org/jooq/impl/ArrayTable.java
+++ b/jOOQ/src/main/java/org/jooq/impl/ArrayTable.java
@@ -176,8 +176,8 @@ class ArrayTable extends AbstractTable {
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
private final Table table(Configuration configuration) {
@@ -304,8 +304,8 @@ class ArrayTable extends AbstractTable {
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/ArrayTableSimulation.java b/jOOQ/src/main/java/org/jooq/impl/ArrayTableSimulation.java
index e7f3502851..7cec968f04 100644
--- a/jOOQ/src/main/java/org/jooq/impl/ArrayTableSimulation.java
+++ b/jOOQ/src/main/java/org/jooq/impl/ArrayTableSimulation.java
@@ -129,8 +129,8 @@ class ArrayTableSimulation extends AbstractTable {
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/BetweenCondition.java b/jOOQ/src/main/java/org/jooq/impl/BetweenCondition.java
index 1256cd8143..790c2ca1d4 100644
--- a/jOOQ/src/main/java/org/jooq/impl/BetweenCondition.java
+++ b/jOOQ/src/main/java/org/jooq/impl/BetweenCondition.java
@@ -37,6 +37,7 @@
package org.jooq.impl;
import static java.util.Arrays.asList;
+import static org.jooq.Clause.CONDITION;
import static org.jooq.Clause.CONDITION_BETWEEN;
import static org.jooq.SQLDialect.ASE;
import static org.jooq.SQLDialect.CUBRID;
@@ -66,13 +67,14 @@ import org.jooq.RenderContext;
*/
class BetweenCondition extends AbstractCondition implements BetweenAndStep {
- private static final long serialVersionUID = -4666251100802237878L;
+ private static final long serialVersionUID = -4666251100802237878L;
+ private static final Clause[] CLAUSES = { CONDITION, CONDITION_BETWEEN };
- private final boolean symmetric;
- private final boolean not;
- private final Field field;
- private final Field minValue;
- private Field maxValue;
+ private final boolean symmetric;
+ private final boolean not;
+ private final Field field;
+ private final Field minValue;
+ private Field maxValue;
BetweenCondition(Field field, Field minValue, boolean not, boolean symmetric) {
this.field = field;
@@ -109,8 +111,8 @@ class BetweenCondition extends AbstractCondition implements BetweenAndStep
}
@Override
- public final Clause clause() {
- return CONDITION_BETWEEN;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
private final QueryPartInternal delegate(Configuration configuration) {
@@ -151,8 +153,8 @@ class BetweenCondition extends AbstractCondition implements BetweenAndStep
}
@Override
- public final Clause clause() {
- return CONDITION_BETWEEN;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
}
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/CaseConditionStepImpl.java b/jOOQ/src/main/java/org/jooq/impl/CaseConditionStepImpl.java
index b0d5193836..d1d233a463 100644
--- a/jOOQ/src/main/java/org/jooq/impl/CaseConditionStepImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/CaseConditionStepImpl.java
@@ -35,14 +35,11 @@
*/
package org.jooq.impl;
-import static org.jooq.Clause.DUMMY;
-
import java.util.ArrayList;
import java.util.List;
import org.jooq.BindContext;
import org.jooq.CaseConditionStep;
-import org.jooq.Clause;
import org.jooq.Condition;
import org.jooq.Field;
import org.jooq.RenderContext;
@@ -140,9 +137,4 @@ class CaseConditionStepImpl extends AbstractField implements CaseCondition
context.keyword("end")
.formatIndentLockEnd();
}
-
- @Override
- public final Clause clause() {
- return DUMMY;
- }
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/CatalogImpl.java b/jOOQ/src/main/java/org/jooq/impl/CatalogImpl.java
index 3bee3beba7..f5f8e4aefb 100644
--- a/jOOQ/src/main/java/org/jooq/impl/CatalogImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/CatalogImpl.java
@@ -36,6 +36,7 @@
package org.jooq.impl;
import static org.jooq.Clause.CATALOG;
+import static org.jooq.Clause.CATALOG_REFERENCE;
import java.util.Collections;
import java.util.List;
@@ -59,8 +60,9 @@ public class CatalogImpl extends AbstractQueryPart implements Catalog {
/**
* Generated UID
*/
- private static final long serialVersionUID = -3650318934053960244L;
- private final String catalogName;
+ private static final long serialVersionUID = -3650318934053960244L;
+ private static final Clause[] CLAUSES = { CATALOG, CATALOG_REFERENCE };
+ private final String catalogName;
public CatalogImpl(String name) {
super();
@@ -82,8 +84,8 @@ public class CatalogImpl extends AbstractQueryPart implements Catalog {
}
@Override
- public final Clause clause() {
- return CATALOG;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/CombinedCondition.java b/jOOQ/src/main/java/org/jooq/impl/CombinedCondition.java
index dcc25a34c8..fdf18d2d06 100644
--- a/jOOQ/src/main/java/org/jooq/impl/CombinedCondition.java
+++ b/jOOQ/src/main/java/org/jooq/impl/CombinedCondition.java
@@ -36,6 +36,7 @@
package org.jooq.impl;
+import static org.jooq.Clause.CONDITION;
import static org.jooq.Clause.CONDITION_AND;
import static org.jooq.Clause.CONDITION_OR;
import static org.jooq.Operator.AND;
@@ -58,6 +59,8 @@ import org.jooq.RenderContext;
class CombinedCondition extends AbstractCondition {
private static final long serialVersionUID = -7373293246207052549L;
+ private static final Clause[] CLAUSES_AND = { CONDITION, CONDITION_AND };
+ private static final Clause[] CLAUSES_OR = { CONDITION, CONDITION_OR };
private final Operator operator;
private final List conditions;
@@ -99,8 +102,8 @@ class CombinedCondition extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return operator == AND ? CONDITION_AND : CONDITION_OR;
+ public final Clause[] clauses() {
+ return operator == AND ? CLAUSES_AND : CLAUSES_OR;
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/CompareCondition.java b/jOOQ/src/main/java/org/jooq/impl/CompareCondition.java
index ed67513c4f..eed9a71578 100644
--- a/jOOQ/src/main/java/org/jooq/impl/CompareCondition.java
+++ b/jOOQ/src/main/java/org/jooq/impl/CompareCondition.java
@@ -37,6 +37,7 @@
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.Comparator.LIKE;
import static org.jooq.Comparator.LIKE_IGNORE_CASE;
@@ -59,12 +60,13 @@ import org.jooq.SQLDialect;
*/
class CompareCondition extends AbstractCondition {
- private static final long serialVersionUID = -747240442279619486L;
+ private static final long serialVersionUID = -747240442279619486L;
+ private static final Clause[] CLAUSES = { CONDITION, CONDITION_COMPARISON };
- private final Field> field1;
- private final Field> field2;
- private final Comparator comparator;
- private final Character escape;
+ private final Field> field1;
+ private final Field> field2;
+ private final Comparator comparator;
+ private final Character escape;
CompareCondition(Field> field1, Field> field2, Comparator comparator) {
this(field1, field2, comparator, null);
@@ -131,7 +133,7 @@ class CompareCondition extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return CONDITION_COMPARISON;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/ConditionProviderImpl.java b/jOOQ/src/main/java/org/jooq/impl/ConditionProviderImpl.java
index ba4a916d18..9e43c3ca32 100644
--- a/jOOQ/src/main/java/org/jooq/impl/ConditionProviderImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/ConditionProviderImpl.java
@@ -123,7 +123,7 @@ class ConditionProviderImpl extends AbstractQueryPart implements ConditionProvid
}
@Override
- public final Clause clause() {
+ public final Clause[] clauses() {
return null;
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/Contains.java b/jOOQ/src/main/java/org/jooq/impl/Contains.java
index 5021c3b296..a2bb54a1fa 100644
--- a/jOOQ/src/main/java/org/jooq/impl/Contains.java
+++ b/jOOQ/src/main/java/org/jooq/impl/Contains.java
@@ -35,6 +35,7 @@
*/
package org.jooq.impl;
+import static org.jooq.Clause.CONDITION;
import static org.jooq.Clause.CONDITION_COMPARISON;
import static org.jooq.impl.DSL.inline;
import static org.jooq.impl.DSL.val;
@@ -56,11 +57,12 @@ class Contains extends AbstractCondition {
/**
* Generated UID
*/
- private static final long serialVersionUID = 6146303086487338550L;
+ private static final long serialVersionUID = 6146303086487338550L;
+ private static final Clause[] CLAUSES = { CONDITION, CONDITION_COMPARISON };
- private final Field lhs;
- private final Field rhs;
- private final T value;
+ private final Field lhs;
+ private final Field rhs;
+ private final T value;
Contains(Field field, T value) {
this.lhs = field;
@@ -85,8 +87,8 @@ class Contains extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return CONDITION_COMPARISON;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
private final Condition condition() {
@@ -132,8 +134,8 @@ class Contains extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return CONDITION_COMPARISON;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
private final Field rhs() {
diff --git a/jOOQ/src/main/java/org/jooq/impl/CustomCondition.java b/jOOQ/src/main/java/org/jooq/impl/CustomCondition.java
index c2c988eaa7..88b1c866a1 100644
--- a/jOOQ/src/main/java/org/jooq/impl/CustomCondition.java
+++ b/jOOQ/src/main/java/org/jooq/impl/CustomCondition.java
@@ -97,7 +97,7 @@ public abstract class CustomCondition extends AbstractCondition {
* {@inheritDoc}
*/
@Override
- public Clause clause() {
+ public Clause[] clauses() {
return null;
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/CustomField.java b/jOOQ/src/main/java/org/jooq/impl/CustomField.java
index 3a75518dfc..045965217d 100644
--- a/jOOQ/src/main/java/org/jooq/impl/CustomField.java
+++ b/jOOQ/src/main/java/org/jooq/impl/CustomField.java
@@ -98,8 +98,8 @@ public abstract class CustomField extends AbstractField {
* {@inheritDoc}
*/
@Override
- public Clause clause() {
- return null;
+ public Clause[] clauses() {
+ return super.clauses();
}
// -------------------------------------------------------------------------
diff --git a/jOOQ/src/main/java/org/jooq/impl/CustomQueryPart.java b/jOOQ/src/main/java/org/jooq/impl/CustomQueryPart.java
index 2de5c6f521..1057eb0654 100644
--- a/jOOQ/src/main/java/org/jooq/impl/CustomQueryPart.java
+++ b/jOOQ/src/main/java/org/jooq/impl/CustomQueryPart.java
@@ -108,7 +108,7 @@ public abstract class CustomQueryPart extends AbstractQueryPart {
* {@inheritDoc}
*/
@Override
- public Clause clause() {
+ public Clause[] clauses() {
return null;
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/DeleteQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/DeleteQueryImpl.java
index b7ca33137b..7f6258350f 100644
--- a/jOOQ/src/main/java/org/jooq/impl/DeleteQueryImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/DeleteQueryImpl.java
@@ -59,6 +59,7 @@ import org.jooq.Table;
class DeleteQueryImpl extends AbstractQuery implements DeleteQuery {
private static final long serialVersionUID = -1943687511774150929L;
+ private static final Clause[] CLAUSES = { DELETE };
private final Table table;
private final ConditionProviderImpl condition;
@@ -135,7 +136,7 @@ class DeleteQueryImpl extends AbstractQuery implements DeleteQ
}
@Override
- public final Clause clause() {
- return DELETE;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/Dual.java b/jOOQ/src/main/java/org/jooq/impl/Dual.java
index 5dbe4b9355..1ebe11f3eb 100644
--- a/jOOQ/src/main/java/org/jooq/impl/Dual.java
+++ b/jOOQ/src/main/java/org/jooq/impl/Dual.java
@@ -36,10 +36,7 @@
package org.jooq.impl;
-import static org.jooq.Clause.TABLE;
-
import org.jooq.BindContext;
-import org.jooq.Clause;
import org.jooq.Record;
import org.jooq.RenderContext;
import org.jooq.Schema;
@@ -127,11 +124,6 @@ class Dual extends AbstractTable {
@Override
public final void bind(BindContext context) {}
- @Override
- public final Clause clause() {
- return TABLE;
- }
-
@Override
final Fields fields0() {
return new Fields();
diff --git a/jOOQ/src/main/java/org/jooq/impl/FalseCondition.java b/jOOQ/src/main/java/org/jooq/impl/FalseCondition.java
index 4bf2eac11a..523fe4ebca 100644
--- a/jOOQ/src/main/java/org/jooq/impl/FalseCondition.java
+++ b/jOOQ/src/main/java/org/jooq/impl/FalseCondition.java
@@ -36,6 +36,7 @@
package org.jooq.impl;
+import static org.jooq.Clause.CONDITION;
import static org.jooq.Clause.CONDITION_COMPARISON;
import org.jooq.BindContext;
@@ -47,7 +48,8 @@ import org.jooq.RenderContext;
*/
class FalseCondition extends AbstractCondition {
- private static final long serialVersionUID = -3972466479081463547L;
+ private static final long serialVersionUID = -3972466479081463547L;
+ private static final Clause[] CLAUSES = { CONDITION, CONDITION_COMPARISON };
@Override
public void bind(BindContext context) {}
@@ -58,8 +60,8 @@ class FalseCondition extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return CONDITION_COMPARISON;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
FalseCondition() {}
diff --git a/jOOQ/src/main/java/org/jooq/impl/FieldCondition.java b/jOOQ/src/main/java/org/jooq/impl/FieldCondition.java
index f3034e4e2e..538fc031f9 100644
--- a/jOOQ/src/main/java/org/jooq/impl/FieldCondition.java
+++ b/jOOQ/src/main/java/org/jooq/impl/FieldCondition.java
@@ -72,8 +72,8 @@ class FieldCondition extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
private final QueryPartInternal delegate(Configuration configuration) {
diff --git a/jOOQ/src/main/java/org/jooq/impl/FieldMapForInsert.java b/jOOQ/src/main/java/org/jooq/impl/FieldMapForInsert.java
index 8881179cff..d720feb13b 100644
--- a/jOOQ/src/main/java/org/jooq/impl/FieldMapForInsert.java
+++ b/jOOQ/src/main/java/org/jooq/impl/FieldMapForInsert.java
@@ -139,8 +139,8 @@ class FieldMapForInsert extends AbstractQueryPartMap, Field>> {
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
final void putFields(Collection extends Field>> fields) {
diff --git a/jOOQ/src/main/java/org/jooq/impl/FieldMapForUpdate.java b/jOOQ/src/main/java/org/jooq/impl/FieldMapForUpdate.java
index d959a06869..34617536c8 100644
--- a/jOOQ/src/main/java/org/jooq/impl/FieldMapForUpdate.java
+++ b/jOOQ/src/main/java/org/jooq/impl/FieldMapForUpdate.java
@@ -107,8 +107,8 @@ class FieldMapForUpdate extends AbstractQueryPartMap, Field>> {
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
final void set(Map extends Field>, ?> map) {
diff --git a/jOOQ/src/main/java/org/jooq/impl/FieldMapsForInsert.java b/jOOQ/src/main/java/org/jooq/impl/FieldMapsForInsert.java
index 12fa47f343..70edadb323 100644
--- a/jOOQ/src/main/java/org/jooq/impl/FieldMapsForInsert.java
+++ b/jOOQ/src/main/java/org/jooq/impl/FieldMapsForInsert.java
@@ -140,8 +140,8 @@ class FieldMapsForInsert extends AbstractQueryPart {
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
// -------------------------------------------------------------------------
diff --git a/jOOQ/src/main/java/org/jooq/impl/Fields.java b/jOOQ/src/main/java/org/jooq/impl/Fields.java
index f7be7f3bff..6938cb019a 100644
--- a/jOOQ/src/main/java/org/jooq/impl/Fields.java
+++ b/jOOQ/src/main/java/org/jooq/impl/Fields.java
@@ -258,8 +258,8 @@ class Fields extends AbstractQueryPart implements RecordType {
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/Function.java b/jOOQ/src/main/java/org/jooq/impl/Function.java
index 72dcb59f50..13fe1824c8 100644
--- a/jOOQ/src/main/java/org/jooq/impl/Function.java
+++ b/jOOQ/src/main/java/org/jooq/impl/Function.java
@@ -55,7 +55,6 @@ import java.util.Collection;
import org.jooq.AggregateFunction;
import org.jooq.BindContext;
-import org.jooq.Clause;
import org.jooq.DataType;
import org.jooq.Field;
import org.jooq.Name;
@@ -183,11 +182,6 @@ class Function extends AbstractField implements
// XXX QueryPart API
// -------------------------------------------------------------------------
- @Override
- public final Clause clause() {
- return DUMMY;
- }
-
@Override
public final void bind(BindContext context) {
if (term == LIST_AGG && asList(CUBRID, H2, HSQLDB, MARIADB, MYSQL).contains(context.configuration().dialect())) {
diff --git a/jOOQ/src/main/java/org/jooq/impl/FunctionTable.java b/jOOQ/src/main/java/org/jooq/impl/FunctionTable.java
index a7adc63f50..2976149430 100644
--- a/jOOQ/src/main/java/org/jooq/impl/FunctionTable.java
+++ b/jOOQ/src/main/java/org/jooq/impl/FunctionTable.java
@@ -105,8 +105,8 @@ class FunctionTable extends AbstractTable {
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/InCondition.java b/jOOQ/src/main/java/org/jooq/impl/InCondition.java
index 24cce4e561..c845f9ace0 100644
--- a/jOOQ/src/main/java/org/jooq/impl/InCondition.java
+++ b/jOOQ/src/main/java/org/jooq/impl/InCondition.java
@@ -36,6 +36,7 @@
package org.jooq.impl;
+import static org.jooq.Clause.CONDITION;
import static org.jooq.Clause.CONDITION_IN;
import static org.jooq.Clause.CONDITION_IN_NOT;
import static org.jooq.Comparator.IN;
@@ -55,12 +56,14 @@ import org.jooq.RenderContext;
*/
class InCondition extends AbstractCondition {
- private static final long serialVersionUID = -1653924248576930761L;
- private static final int IN_LIMIT = 1000;
+ private static final long serialVersionUID = -1653924248576930761L;
+ private static final int IN_LIMIT = 1000;
+ private static final Clause[] CLAUSES_IN = { CONDITION, CONDITION_IN };
+ private static final Clause[] CLAUSES_IN_NOT = { CONDITION, CONDITION_IN_NOT };
- private final Field field;
- private final Field>[] values;
- private final Comparator comparator;
+ private final Field field;
+ private final Field>[] values;
+ private final Comparator comparator;
InCondition(Field field, Field>[] values, Comparator comparator) {
this.field = field;
@@ -69,8 +72,8 @@ class InCondition extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return comparator == IN ? CONDITION_IN : CONDITION_IN_NOT;
+ public final Clause[] clauses() {
+ return comparator == IN ? CLAUSES_IN : CLAUSES_IN_NOT;
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java
index e559e45187..76692c3291 100644
--- a/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java
@@ -38,7 +38,6 @@ package org.jooq.impl;
import static java.util.Arrays.asList;
import static org.jooq.Clause.INSERT;
-import static org.jooq.Clause.INSERT_RETURNING;
import static org.jooq.SQLDialect.MARIADB;
import static org.jooq.SQLDialect.MYSQL;
@@ -65,12 +64,13 @@ import org.jooq.exception.SQLDialectNotSupportedException;
*/
class InsertQueryImpl extends AbstractStoreQuery implements InsertQuery {
- private static final long serialVersionUID = 4466005417945353842L;
+ private static final long serialVersionUID = 4466005417945353842L;
+ private static final Clause[] CLAUSES = { INSERT };
- private final FieldMapForUpdate updateMap;
- private final FieldMapsForInsert insertMaps;
- private boolean onDuplicateKeyUpdate;
- private boolean onDuplicateKeyIgnore;
+ private final FieldMapForUpdate updateMap;
+ private final FieldMapsForInsert insertMaps;
+ private boolean onDuplicateKeyUpdate;
+ private boolean onDuplicateKeyIgnore;
InsertQueryImpl(Configuration configuration, Table into) {
super(configuration, into);
@@ -317,8 +317,8 @@ class InsertQueryImpl extends AbstractStoreQuery implements
}
@Override
- public final Clause clause() {
- return INSERT;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
private final void toSQLInsert(RenderContext context) {
@@ -332,7 +332,7 @@ class InsertQueryImpl extends AbstractStoreQuery implements
.sql(" ")
.visit(insertMaps);
- toSQLReturning(context, INSERT_RETURNING);
+ toSQLReturning(context);
}
private final void bindInsert(BindContext context) {
diff --git a/jOOQ/src/main/java/org/jooq/impl/InsertSelectQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/InsertSelectQueryImpl.java
index c6a5f12abe..4fe58e3093 100644
--- a/jOOQ/src/main/java/org/jooq/impl/InsertSelectQueryImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/InsertSelectQueryImpl.java
@@ -56,11 +56,12 @@ class InsertSelectQueryImpl extends AbstractQuery implements I
/**
* Generated UID
*/
- private static final long serialVersionUID = -1540775270159018516L;
+ private static final long serialVersionUID = -1540775270159018516L;
+ private static final Clause[] CLAUSES = { INSERT };
- private final Table> into;
- private final Field>[] fields;
- private final Select> select;
+ private final Table> into;
+ private final Field>[] fields;
+ private final Select> select;
InsertSelectQueryImpl(Configuration configuration, Table> into, Field>[] fields, Select> select) {
super(configuration);
@@ -98,7 +99,7 @@ class InsertSelectQueryImpl extends AbstractQuery implements I
}
@Override
- public final Clause clause() {
- return INSERT;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/IsDistinctFrom.java b/jOOQ/src/main/java/org/jooq/impl/IsDistinctFrom.java
index 2e973fd9ea..ce50a9ca28 100644
--- a/jOOQ/src/main/java/org/jooq/impl/IsDistinctFrom.java
+++ b/jOOQ/src/main/java/org/jooq/impl/IsDistinctFrom.java
@@ -97,8 +97,8 @@ class IsDistinctFrom extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
/**
diff --git a/jOOQ/src/main/java/org/jooq/impl/IsNull.java b/jOOQ/src/main/java/org/jooq/impl/IsNull.java
index 7507ebbee6..7831f93153 100644
--- a/jOOQ/src/main/java/org/jooq/impl/IsNull.java
+++ b/jOOQ/src/main/java/org/jooq/impl/IsNull.java
@@ -36,6 +36,7 @@
package org.jooq.impl;
+import static org.jooq.Clause.CONDITION;
import static org.jooq.Clause.CONDITION_NULL;
import static org.jooq.Clause.CONDITION_NULL_NOT;
@@ -49,10 +50,12 @@ import org.jooq.RenderContext;
*/
class IsNull extends AbstractCondition {
- private static final long serialVersionUID = -747240442279619486L;
+ private static final long serialVersionUID = -747240442279619486L;
+ private static final Clause[] CLAUSES_NULL = { CONDITION, CONDITION_NULL };
+ private static final Clause[] CLAUSES_NULL_NOT = { CONDITION, CONDITION_NULL_NOT };
- private final Field> field;
- private final boolean isNull;
+ private final Field> field;
+ private final boolean isNull;
IsNull(Field> field, boolean isNull) {
this.field = field;
@@ -70,7 +73,7 @@ class IsNull extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return isNull ? CONDITION_NULL : CONDITION_NULL_NOT;
+ public final Clause[] clauses() {
+ return isNull ? CLAUSES_NULL : CLAUSES_NULL_NOT;
}
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/JoinTable.java b/jOOQ/src/main/java/org/jooq/impl/JoinTable.java
index a1e921894a..aec8d64be2 100644
--- a/jOOQ/src/main/java/org/jooq/impl/JoinTable.java
+++ b/jOOQ/src/main/java/org/jooq/impl/JoinTable.java
@@ -37,6 +37,7 @@ 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;
import static org.jooq.Clause.TABLE_JOIN_INNER;
@@ -101,6 +102,7 @@ class JoinTable extends AbstractTable implements TableOptionalOnStep, Ta
* Generated UID
*/
private static final long serialVersionUID = 8377996833996498178L;
+ private static final Clause[] CLAUSES = { TABLE, TABLE_JOIN };
private final Table> lhs;
private final Table> rhs;
@@ -341,8 +343,8 @@ class JoinTable extends AbstractTable implements TableOptionalOnStep, Ta
}
@Override
- public final Clause clause() {
- return TABLE_JOIN;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/KeywordImpl.java b/jOOQ/src/main/java/org/jooq/impl/KeywordImpl.java
index a8beaf03c0..a9341ab910 100644
--- a/jOOQ/src/main/java/org/jooq/impl/KeywordImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/KeywordImpl.java
@@ -67,7 +67,7 @@ public class KeywordImpl extends AbstractQueryPart implements Keyword {
public final void bind(BindContext ctx) {}
@Override
- public final Clause clause() {
+ public final Clause[] clauses() {
return null;
}
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/Limit.java b/jOOQ/src/main/java/org/jooq/impl/Limit.java
index afeabb4cfa..91c6d0cadf 100644
--- a/jOOQ/src/main/java/org/jooq/impl/Limit.java
+++ b/jOOQ/src/main/java/org/jooq/impl/Limit.java
@@ -323,8 +323,8 @@ class Limit extends AbstractQueryPart {
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
/**
diff --git a/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java b/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java
index 2c86e64636..529f06e9e3 100644
--- a/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java
@@ -198,6 +198,7 @@ implements
* Generated UID
*/
private static final long serialVersionUID = -8835479296876774391L;
+ private static final Clause[] CLAUSES = { MERGE };
private final Table table;
private final ConditionProviderImpl on;
@@ -1199,7 +1200,7 @@ implements
}
@Override
- public final Clause clause() {
- return MERGE;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/NameImpl.java b/jOOQ/src/main/java/org/jooq/impl/NameImpl.java
index b3b10cdf04..0214a1696e 100644
--- a/jOOQ/src/main/java/org/jooq/impl/NameImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/NameImpl.java
@@ -76,8 +76,8 @@ class NameImpl extends AbstractQueryPart implements Name {
public final void bind(BindContext context) {}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/NotCondition.java b/jOOQ/src/main/java/org/jooq/impl/NotCondition.java
index 063f7e419d..d624646e86 100644
--- a/jOOQ/src/main/java/org/jooq/impl/NotCondition.java
+++ b/jOOQ/src/main/java/org/jooq/impl/NotCondition.java
@@ -35,6 +35,7 @@
*/
package org.jooq.impl;
+import static org.jooq.Clause.CONDITION;
import static org.jooq.Clause.CONDITION_NOT;
import org.jooq.BindContext;
@@ -44,7 +45,8 @@ import org.jooq.RenderContext;
class NotCondition extends AbstractCondition {
- private static final long serialVersionUID = 2921001862882237932L;
+ private static final long serialVersionUID = 2921001862882237932L;
+ private static final Clause[] CLAUSES = { CONDITION, CONDITION_NOT };
private final Condition condition;
@@ -63,7 +65,7 @@ class NotCondition extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return CONDITION_NOT;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/PackageImpl.java b/jOOQ/src/main/java/org/jooq/impl/PackageImpl.java
index 56ab174c80..5ee2d243c4 100644
--- a/jOOQ/src/main/java/org/jooq/impl/PackageImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/PackageImpl.java
@@ -89,8 +89,8 @@ public class PackageImpl extends AbstractQueryPart implements Package {
public final void bind(BindContext context) {}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
// ------------------------------------------------------------------------
diff --git a/jOOQ/src/main/java/org/jooq/impl/ParameterImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParameterImpl.java
index 177f2882dd..2b41e34e75 100644
--- a/jOOQ/src/main/java/org/jooq/impl/ParameterImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/ParameterImpl.java
@@ -94,8 +94,8 @@ class ParameterImpl extends AbstractQueryPart implements Parameter {
public final void bind(BindContext context) {}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/Pivot.java b/jOOQ/src/main/java/org/jooq/impl/Pivot.java
index a13ca8947a..6cbf32dc16 100644
--- a/jOOQ/src/main/java/org/jooq/impl/Pivot.java
+++ b/jOOQ/src/main/java/org/jooq/impl/Pivot.java
@@ -148,8 +148,8 @@ implements
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
private Table select(Configuration configuration) {
@@ -270,8 +270,8 @@ implements
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
}
@@ -330,8 +330,8 @@ implements
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/QualifiedTable.java b/jOOQ/src/main/java/org/jooq/impl/QualifiedTable.java
index 491fa18bea..83b28b43fc 100644
--- a/jOOQ/src/main/java/org/jooq/impl/QualifiedTable.java
+++ b/jOOQ/src/main/java/org/jooq/impl/QualifiedTable.java
@@ -36,6 +36,7 @@
package org.jooq.impl;
import static org.jooq.Clause.TABLE;
+import static org.jooq.Clause.TABLE_REFERENCE;
import org.jooq.BindContext;
import org.jooq.Clause;
@@ -54,7 +55,8 @@ class QualifiedTable extends AbstractTable {
/**
* Generated UID
*/
- private static final long serialVersionUID = 6937002867156868761L;
+ private static final long serialVersionUID = 6937002867156868761L;
+ private static final Clause[] CLAUSES = { TABLE, TABLE_REFERENCE };
private final String[] sql;
@@ -83,8 +85,8 @@ class QualifiedTable extends AbstractTable {
public final void bind(BindContext context) {}
@Override
- public final Clause clause() {
- return TABLE;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/QuantifiedComparisonCondition.java b/jOOQ/src/main/java/org/jooq/impl/QuantifiedComparisonCondition.java
index 84fb63fb40..ec3a36e1cf 100644
--- a/jOOQ/src/main/java/org/jooq/impl/QuantifiedComparisonCondition.java
+++ b/jOOQ/src/main/java/org/jooq/impl/QuantifiedComparisonCondition.java
@@ -37,7 +37,8 @@
package org.jooq.impl;
-import static org.jooq.Clause.CONDITION_COMPARISON;
+import static org.jooq.Clause.CONDITION;
+import static org.jooq.Clause.CONDITION_BETWEEN;
import org.jooq.BindContext;
import org.jooq.Clause;
@@ -52,6 +53,7 @@ import org.jooq.RenderContext;
class QuantifiedComparisonCondition extends AbstractCondition {
private static final long serialVersionUID = -402776705884329740L;
+ private static final Clause[] CLAUSES = { CONDITION, CONDITION_BETWEEN };
private final QuantifiedSelect> query;
private final Field> field;
@@ -78,7 +80,7 @@ class QuantifiedComparisonCondition extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return CONDITION_COMPARISON;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/QuantifiedSelectImpl.java b/jOOQ/src/main/java/org/jooq/impl/QuantifiedSelectImpl.java
index d832c416eb..ea9aa15837 100644
--- a/jOOQ/src/main/java/org/jooq/impl/QuantifiedSelectImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/QuantifiedSelectImpl.java
@@ -117,8 +117,8 @@ class QuantifiedSelectImpl extends AbstractQueryPart implement
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
private final QueryPart part(Configuration context) {
diff --git a/jOOQ/src/main/java/org/jooq/impl/QueryPartList.java b/jOOQ/src/main/java/org/jooq/impl/QueryPartList.java
index e34740f2f7..cc80922a7f 100644
--- a/jOOQ/src/main/java/org/jooq/impl/QueryPartList.java
+++ b/jOOQ/src/main/java/org/jooq/impl/QueryPartList.java
@@ -128,8 +128,8 @@ class QueryPartList extends AbstractQueryPart implements Li
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
/**
diff --git a/jOOQ/src/main/java/org/jooq/impl/RegexpLike.java b/jOOQ/src/main/java/org/jooq/impl/RegexpLike.java
index 2c6a08b246..15d57aed5b 100644
--- a/jOOQ/src/main/java/org/jooq/impl/RegexpLike.java
+++ b/jOOQ/src/main/java/org/jooq/impl/RegexpLike.java
@@ -130,7 +130,7 @@ class RegexpLike extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/RowBetweenCondition.java b/jOOQ/src/main/java/org/jooq/impl/RowBetweenCondition.java
index c246ff632c..0c7730d009 100644
--- a/jOOQ/src/main/java/org/jooq/impl/RowBetweenCondition.java
+++ b/jOOQ/src/main/java/org/jooq/impl/RowBetweenCondition.java
@@ -36,6 +36,7 @@
package org.jooq.impl;
import static java.util.Arrays.asList;
+import static org.jooq.Clause.CONDITION;
import static org.jooq.Clause.CONDITION_BETWEEN;
import static org.jooq.Clause.DUMMY;
import static org.jooq.SQLDialect.ASE;
@@ -166,13 +167,14 @@ implements
BetweenAndStep22,
BetweenAndStepN {
- private static final long serialVersionUID = -4666251100802237878L;
+ private static final long serialVersionUID = -4666251100802237878L;
+ private static final Clause[] CLAUSES = { CONDITION, CONDITION_BETWEEN };
- private final boolean symmetric;
- private final boolean not;
- private final Row row;
- private final Row minValue;
- private Row maxValue;
+ private final boolean symmetric;
+ private final boolean not;
+ private final Row row;
+ private final Row minValue;
+ private Row maxValue;
RowBetweenCondition(Row row, Row minValue, boolean not, boolean symmetric) {
this.row = row;
@@ -689,8 +691,8 @@ implements
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
private final QueryPartInternal delegate(Configuration configuration) {
@@ -755,8 +757,8 @@ implements
}
@Override
- public final Clause clause() {
- return CONDITION_BETWEEN;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
}
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/RowCondition.java b/jOOQ/src/main/java/org/jooq/impl/RowCondition.java
index 3406029182..9a869887cb 100644
--- a/jOOQ/src/main/java/org/jooq/impl/RowCondition.java
+++ b/jOOQ/src/main/java/org/jooq/impl/RowCondition.java
@@ -36,6 +36,7 @@
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;
@@ -79,11 +80,12 @@ class RowCondition extends AbstractCondition {
/**
* Generated UID
*/
- private static final long serialVersionUID = -1806139685201770706L;
+ private static final long serialVersionUID = -1806139685201770706L;
+ private static final Clause[] CLAUSES = { CONDITION, CONDITION_COMPARISON };
- private final Row left;
- private final Row right;
- private final Comparator comparator;
+ private final Row left;
+ private final Row right;
+ private final Comparator comparator;
RowCondition(Row left, Row right, Comparator comparator) {
this.left = left;
@@ -102,8 +104,8 @@ class RowCondition extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
private final QueryPartInternal delegate(Configuration configuration) {
@@ -216,8 +218,8 @@ class RowCondition extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return CONDITION_COMPARISON;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
}
}
\ No newline at end of file
diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl.java
index ff6b82fd3d..cebcfa1893 100644
--- a/jOOQ/src/main/java/org/jooq/impl/RowImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl.java
@@ -36,6 +36,8 @@
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;
import java.util.Arrays;
@@ -160,9 +162,10 @@ implements
/**
* Generated UID
*/
- private static final long serialVersionUID = -929427349071556318L;
+ private static final long serialVersionUID = -929427349071556318L;
+ private static final Clause[] CLAUSES = { FIELD, FIELD_ROW };
- final Fields fields;
+ final Fields fields;
RowImpl(Field>... fields) {
this(new Fields(fields));
@@ -203,8 +206,8 @@ implements
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
// ------------------------------------------------------------------------
diff --git a/jOOQ/src/main/java/org/jooq/impl/RowInCondition.java b/jOOQ/src/main/java/org/jooq/impl/RowInCondition.java
index 78b1cf5ff4..f7628eaccd 100644
--- a/jOOQ/src/main/java/org/jooq/impl/RowInCondition.java
+++ b/jOOQ/src/main/java/org/jooq/impl/RowInCondition.java
@@ -36,6 +36,7 @@
package org.jooq.impl;
import static java.util.Arrays.asList;
+import static org.jooq.Clause.CONDITION;
import static org.jooq.Clause.CONDITION_IN;
import static org.jooq.Clause.CONDITION_IN_NOT;
import static org.jooq.Clause.DUMMY;
@@ -73,6 +74,8 @@ class RowInCondition extends AbstractCondition {
* Generated UID
*/
private static final long serialVersionUID = -1806139685201770706L;
+ private static final Clause[] CLAUSES_IN = { CONDITION, CONDITION_IN };
+ private static final Clause[] CLAUSES_IN_NOT = { CONDITION, CONDITION_IN_NOT };
private final Row left;
private final QueryPartList extends Row> right;
@@ -95,8 +98,8 @@ class RowInCondition extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
private final QueryPartInternal delegate(Configuration configuration) {
@@ -143,8 +146,8 @@ class RowInCondition extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return comparator == IN ? CONDITION_IN : CONDITION_IN_NOT;
+ public final Clause[] clauses() {
+ return comparator == IN ? CLAUSES_IN : CLAUSES_IN_NOT;
}
}
}
\ No newline at end of file
diff --git a/jOOQ/src/main/java/org/jooq/impl/RowIsNull.java b/jOOQ/src/main/java/org/jooq/impl/RowIsNull.java
index 88a6e8ef24..4bab36e1e2 100644
--- a/jOOQ/src/main/java/org/jooq/impl/RowIsNull.java
+++ b/jOOQ/src/main/java/org/jooq/impl/RowIsNull.java
@@ -36,6 +36,7 @@
package org.jooq.impl;
import static java.util.Arrays.asList;
+import static org.jooq.Clause.CONDITION;
import static org.jooq.Clause.CONDITION_NULL;
import static org.jooq.Clause.CONDITION_NULL_NOT;
import static org.jooq.Clause.DUMMY;
@@ -73,10 +74,12 @@ class RowIsNull extends AbstractCondition {
/**
* Generated UID
*/
- private static final long serialVersionUID = -1806139685201770706L;
+ private static final long serialVersionUID = -1806139685201770706L;
+ private static final Clause[] CLAUSES_NULL = { CONDITION, CONDITION_NULL };
+ private static final Clause[] CLAUSES_NULL_NOT = { CONDITION, CONDITION_NULL_NOT };
- private final Row row;
- private final boolean isNull;
+ private final Row row;
+ private final boolean isNull;
RowIsNull(Row row, boolean isNull) {
this.row = row;
@@ -94,8 +97,8 @@ class RowIsNull extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
private final QueryPartInternal delegate(Configuration configuration) {
@@ -136,8 +139,8 @@ class RowIsNull extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return isNull ? CONDITION_NULL : CONDITION_NULL_NOT;
+ public final Clause[] clauses() {
+ return isNull ? CLAUSES_NULL : CLAUSES_NULL_NOT;
}
}
}
\ No newline at end of file
diff --git a/jOOQ/src/main/java/org/jooq/impl/RowOverlapsCondition.java b/jOOQ/src/main/java/org/jooq/impl/RowOverlapsCondition.java
index d4e80249ab..d500fb696b 100644
--- a/jOOQ/src/main/java/org/jooq/impl/RowOverlapsCondition.java
+++ b/jOOQ/src/main/java/org/jooq/impl/RowOverlapsCondition.java
@@ -36,6 +36,7 @@
package org.jooq.impl;
import static java.util.Arrays.asList;
+import static org.jooq.Clause.CONDITION;
import static org.jooq.Clause.CONDITION_OVERLAPS;
import static org.jooq.Clause.DUMMY;
import static org.jooq.SQLDialect.ASE;
@@ -69,10 +70,11 @@ class RowOverlapsCondition extends AbstractCondition {
/**
* Generated UID
*/
- private static final long serialVersionUID = 85887551884667824L;
+ private static final long serialVersionUID = 85887551884667824L;
+ private static final Clause[] CLAUSES = { CONDITION, CONDITION_OVERLAPS };
- private final Row2 left;
- private final Row2 right;
+ private final Row2 left;
+ private final Row2 right;
RowOverlapsCondition(Row2 left, Row2 right) {
this.left = left;
@@ -90,8 +92,8 @@ class RowOverlapsCondition extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
private final QueryPartInternal delegate(Configuration configuration) {
@@ -162,8 +164,8 @@ class RowOverlapsCondition extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return CONDITION_OVERLAPS;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
}
}
\ 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 aa6c61e46d..dd7275f22c 100644
--- a/jOOQ/src/main/java/org/jooq/impl/RowSubqueryCondition.java
+++ b/jOOQ/src/main/java/org/jooq/impl/RowSubqueryCondition.java
@@ -36,6 +36,7 @@
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;
@@ -81,7 +82,8 @@ class RowSubqueryCondition extends AbstractCondition {
/**
* Generated UID
*/
- private static final long serialVersionUID = -1806139685201770706L;
+ private static final long serialVersionUID = -1806139685201770706L;
+ private static final Clause[] CLAUSES = { CONDITION, CONDITION_COMPARISON };
private final Row left;
private final Select> right;
@@ -104,8 +106,8 @@ class RowSubqueryCondition extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
private final QueryPartInternal delegate(Configuration configuration, RenderContext context) {
@@ -224,8 +226,8 @@ class RowSubqueryCondition extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return CONDITION_COMPARISON;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
}
}
\ No newline at end of file
diff --git a/jOOQ/src/main/java/org/jooq/impl/SQLCondition.java b/jOOQ/src/main/java/org/jooq/impl/SQLCondition.java
index 2f2e0fd0cf..363ca8d267 100644
--- a/jOOQ/src/main/java/org/jooq/impl/SQLCondition.java
+++ b/jOOQ/src/main/java/org/jooq/impl/SQLCondition.java
@@ -35,12 +35,8 @@
*/
package org.jooq.impl;
-import static org.jooq.Clause.CONDITION;
-
import org.jooq.BindContext;
-import org.jooq.Clause;
import org.jooq.QueryPart;
-import org.jooq.QueryPartInternal;
import org.jooq.RenderContext;
class SQLCondition extends AbstractCondition {
@@ -74,13 +70,4 @@ class SQLCondition extends AbstractCondition {
public final void bind(BindContext context) {
context.visit(delegate);
}
-
- @Override
- public final Clause clause() {
- if (delegate instanceof QueryPartInternal) {
- return ((QueryPartInternal) delegate).clause();
- }
-
- return CONDITION;
- }
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/SQLField.java b/jOOQ/src/main/java/org/jooq/impl/SQLField.java
index 89fcf8a315..7c6e923201 100644
--- a/jOOQ/src/main/java/org/jooq/impl/SQLField.java
+++ b/jOOQ/src/main/java/org/jooq/impl/SQLField.java
@@ -35,13 +35,9 @@
*/
package org.jooq.impl;
-import static org.jooq.Clause.FIELD;
-
import org.jooq.BindContext;
-import org.jooq.Clause;
import org.jooq.DataType;
import org.jooq.QueryPart;
-import org.jooq.QueryPartInternal;
import org.jooq.RenderContext;
class SQLField extends AbstractField {
@@ -72,13 +68,4 @@ class SQLField extends AbstractField {
public final void bind(BindContext context) {
context.visit(delegate);
}
-
- @Override
- public final Clause clause() {
- if (delegate instanceof QueryPartInternal) {
- return ((QueryPartInternal) delegate).clause();
- }
-
- return FIELD;
- }
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/SQLQuery.java b/jOOQ/src/main/java/org/jooq/impl/SQLQuery.java
index a0fc23bb5d..1696269b13 100644
--- a/jOOQ/src/main/java/org/jooq/impl/SQLQuery.java
+++ b/jOOQ/src/main/java/org/jooq/impl/SQLQuery.java
@@ -75,9 +75,9 @@ class SQLQuery extends AbstractQuery {
}
@Override
- public final Clause clause() {
+ public final Clause[] clauses() {
if (delegate instanceof QueryPartInternal) {
- return ((QueryPartInternal) delegate).clause();
+ return ((QueryPartInternal) delegate).clauses();
}
return null;
diff --git a/jOOQ/src/main/java/org/jooq/impl/SQLResultQuery.java b/jOOQ/src/main/java/org/jooq/impl/SQLResultQuery.java
index c13ef074b9..0bb13ec7f6 100644
--- a/jOOQ/src/main/java/org/jooq/impl/SQLResultQuery.java
+++ b/jOOQ/src/main/java/org/jooq/impl/SQLResultQuery.java
@@ -81,9 +81,9 @@ class SQLResultQuery extends AbstractResultQuery {
}
@Override
- public final Clause clause() {
+ public final Clause[] clauses() {
if (delegate instanceof QueryPartInternal) {
- return ((QueryPartInternal) delegate).clause();
+ return ((QueryPartInternal) delegate).clauses();
}
return null;
diff --git a/jOOQ/src/main/java/org/jooq/impl/SQLTable.java b/jOOQ/src/main/java/org/jooq/impl/SQLTable.java
index 88e116a14f..9470d05499 100644
--- a/jOOQ/src/main/java/org/jooq/impl/SQLTable.java
+++ b/jOOQ/src/main/java/org/jooq/impl/SQLTable.java
@@ -35,12 +35,8 @@
*/
package org.jooq.impl;
-import static org.jooq.Clause.TABLE;
-
import org.jooq.BindContext;
-import org.jooq.Clause;
import org.jooq.QueryPart;
-import org.jooq.QueryPartInternal;
import org.jooq.Record;
import org.jooq.RenderContext;
import org.jooq.Table;
@@ -89,15 +85,6 @@ class SQLTable extends AbstractTable {
context.visit(delegate);
}
- @Override
- public final Clause clause() {
- if (delegate instanceof QueryPartInternal) {
- return ((QueryPartInternal) delegate).clause();
- }
-
- return TABLE;
- }
-
@Override
final Fields fields0() {
return new Fields();
diff --git a/jOOQ/src/main/java/org/jooq/impl/SQLTemplate.java b/jOOQ/src/main/java/org/jooq/impl/SQLTemplate.java
index b6e2286bc5..3f71d0b97d 100644
--- a/jOOQ/src/main/java/org/jooq/impl/SQLTemplate.java
+++ b/jOOQ/src/main/java/org/jooq/impl/SQLTemplate.java
@@ -82,7 +82,7 @@ class SQLTemplate implements Template {
}
@Override
- public final Clause clause() {
+ public final Clause[] clauses() {
return null;
}
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/SchemaImpl.java b/jOOQ/src/main/java/org/jooq/impl/SchemaImpl.java
index b4569cef59..c82b68c08e 100644
--- a/jOOQ/src/main/java/org/jooq/impl/SchemaImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/SchemaImpl.java
@@ -37,6 +37,7 @@
package org.jooq.impl;
import static org.jooq.Clause.SCHEMA;
+import static org.jooq.Clause.SCHEMA_REFERENCE;
import java.util.Collections;
import java.util.List;
@@ -59,8 +60,10 @@ import org.jooq.tools.StringUtils;
*/
public class SchemaImpl extends AbstractQueryPart implements Schema {
- private static final long serialVersionUID = -8101463810207566546L;
- private final String schemaName;
+ private static final long serialVersionUID = -8101463810207566546L;
+ private static final Clause[] CLAUSES = { SCHEMA, SCHEMA_REFERENCE };
+
+ private final String schemaName;
public SchemaImpl(String name) {
super();
@@ -82,8 +85,8 @@ public class SchemaImpl extends AbstractQueryPart implements Schema {
public final void bind(BindContext context) {}
@Override
- public final Clause clause() {
- return SCHEMA;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryAsExistsCondition.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryAsExistsCondition.java
index 72e7a00d56..44ec8e8a86 100644
--- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryAsExistsCondition.java
+++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryAsExistsCondition.java
@@ -36,6 +36,7 @@
package org.jooq.impl;
+import static org.jooq.Clause.CONDITION;
import static org.jooq.Clause.CONDITION_EXISTS;
import static org.jooq.Clause.CONDITION_EXISTS_NOT;
import static org.jooq.impl.ExistsOperator.EXISTS;
@@ -50,10 +51,12 @@ import org.jooq.Select;
*/
class SelectQueryAsExistsCondition extends AbstractCondition {
- private static final long serialVersionUID = 5678338161136603292L;
+ private static final long serialVersionUID = 5678338161136603292L;
+ private static final Clause[] CLAUSES_EXISTS = { CONDITION, CONDITION_EXISTS };
+ private static final Clause[] CLAUSES_EXISTS_NOT = { CONDITION, CONDITION_EXISTS_NOT };
- private final Select> query;
- private final ExistsOperator operator;
+ private final Select> query;
+ private final ExistsOperator operator;
SelectQueryAsExistsCondition(Select> query, ExistsOperator operator) {
this.query = query;
@@ -103,7 +106,7 @@ class SelectQueryAsExistsCondition extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return operator == EXISTS ? CONDITION_EXISTS : CONDITION_EXISTS_NOT;
+ public final Clause[] clauses() {
+ return operator == EXISTS ? CLAUSES_EXISTS : CLAUSES_EXISTS_NOT;
}
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryAsField.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryAsField.java
index 3bf32885d1..c9a3b8064a 100644
--- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryAsField.java
+++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryAsField.java
@@ -37,7 +37,6 @@
package org.jooq.impl;
import org.jooq.BindContext;
-import org.jooq.Clause;
import org.jooq.DataType;
import org.jooq.Field;
import org.jooq.RenderContext;
@@ -102,9 +101,4 @@ class SelectQueryAsField extends AbstractField {
.sql(")");
}
}
-
- @Override
- public final Clause clause() {
- return null;
- }
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryAsSubQueryCondition.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryAsSubQueryCondition.java
index 0f13cf1010..59768034bc 100644
--- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryAsSubQueryCondition.java
+++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryAsSubQueryCondition.java
@@ -36,6 +36,7 @@
package org.jooq.impl;
+import static org.jooq.Clause.CONDITION;
import static org.jooq.Clause.CONDITION_COMPARISON;
import org.jooq.BindContext;
@@ -50,11 +51,12 @@ import org.jooq.Select;
*/
class SelectQueryAsSubQueryCondition extends AbstractCondition {
- private static final long serialVersionUID = -402776705884329740L;
+ private static final long serialVersionUID = -402776705884329740L;
+ private static final Clause[] CLAUSES = { CONDITION, CONDITION_COMPARISON };
- private final Select> query;
- private final Field> field;
- private final Comparator comparator;
+ private final Select> query;
+ private final Field> field;
+ private final Comparator comparator;
SelectQueryAsSubQueryCondition(Select> query, Field> field, Comparator comparator) {
this.query = query;
@@ -110,7 +112,7 @@ class SelectQueryAsSubQueryCondition extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return CONDITION_COMPARISON;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryAsTable.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryAsTable.java
index 2b7b78c2f0..a322d6f7cf 100644
--- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryAsTable.java
+++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryAsTable.java
@@ -115,7 +115,7 @@ class SelectQueryAsTable extends AbstractTable {
}
@Override
- public final Clause clause() {
+ public final Clause[] clauses() {
return null;
}
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java
index 92ca04b8c4..ceae51b15c 100644
--- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java
@@ -107,6 +107,7 @@ class SelectQueryImpl extends AbstractSelect implements Sel
* Generated UID
*/
private static final long serialVersionUID = 1646393178384872967L;
+ private static final Clause[] CLAUSES = { SELECT };
private final SelectFieldList select;
private String hint;
@@ -165,8 +166,8 @@ class SelectQueryImpl extends AbstractSelect implements Sel
}
@Override
- public final Clause clause() {
- return SELECT;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/SortFieldImpl.java b/jOOQ/src/main/java/org/jooq/impl/SortFieldImpl.java
index a32593d94c..f93d68b2cc 100644
--- a/jOOQ/src/main/java/org/jooq/impl/SortFieldImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/SortFieldImpl.java
@@ -166,7 +166,7 @@ class SortFieldImpl extends AbstractQueryPart implements SortField {
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/TableAlias.java b/jOOQ/src/main/java/org/jooq/impl/TableAlias.java
index 6480395833..5fc83152c8 100644
--- a/jOOQ/src/main/java/org/jooq/impl/TableAlias.java
+++ b/jOOQ/src/main/java/org/jooq/impl/TableAlias.java
@@ -129,8 +129,8 @@ class TableAlias extends AbstractTable {
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/TableFieldImpl.java b/jOOQ/src/main/java/org/jooq/impl/TableFieldImpl.java
index d3ae226db5..ef930c4675 100644
--- a/jOOQ/src/main/java/org/jooq/impl/TableFieldImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/TableFieldImpl.java
@@ -37,6 +37,8 @@
package org.jooq.impl;
import static org.jooq.Clause.FIELD;
+import static org.jooq.Clause.FIELD_REFERENCE;
+import static org.jooq.impl.Utils.DATA_OMIT_CLAUSE_EVENT_EMISSION;
import org.jooq.BindContext;
import org.jooq.Clause;
@@ -54,7 +56,8 @@ import org.jooq.tools.StringUtils;
*/
class TableFieldImpl extends AbstractField implements TableField {
- private static final long serialVersionUID = -2211214195583539735L;
+ private static final long serialVersionUID = -2211214195583539735L;
+ private static final Clause[] CLAUSES = { FIELD, FIELD_REFERENCE };
private final Table table;
@@ -69,24 +72,31 @@ class TableFieldImpl extends AbstractField implements Ta
return table;
}
+ // ------------------------------------------------------------------------
+ // XXX: QueryPart API
+ // ------------------------------------------------------------------------
+
+ @Override
+ public final Clause[] clauses() {
+ return CLAUSES;
+ }
+
@Override
public final void toSQL(RenderContext context) {
+ context.data(DATA_OMIT_CLAUSE_EVENT_EMISSION, true);
+
if (context.qualify()) {
context.visit(table);
context.sql(".");
}
context.literal(getName());
+ context.data(DATA_OMIT_CLAUSE_EVENT_EMISSION, null);
}
@Override
public final void bind(BindContext context) {}
- @Override
- public final Clause clause() {
- return FIELD;
- }
-
// ------------------------------------------------------------------------
// XXX: Object API
// ------------------------------------------------------------------------
diff --git a/jOOQ/src/main/java/org/jooq/impl/TableImpl.java b/jOOQ/src/main/java/org/jooq/impl/TableImpl.java
index f118e013e1..f000871f01 100644
--- a/jOOQ/src/main/java/org/jooq/impl/TableImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/TableImpl.java
@@ -37,6 +37,7 @@
package org.jooq.impl;
import static org.jooq.Clause.TABLE;
+import static org.jooq.Clause.TABLE_REFERENCE;
import org.jooq.BindContext;
import org.jooq.Clause;
@@ -56,6 +57,7 @@ import org.jooq.tools.StringUtils;
public class TableImpl extends AbstractTable {
private static final long serialVersionUID = 261033315221985068L;
+ private static final Clause[] CLAUSES = { TABLE, TABLE_REFERENCE };
private final Fields fields;
private final Alias
> alias;
@@ -98,8 +100,8 @@ public class TableImpl extends AbstractTable {
}
@Override
- public final Clause clause() {
- return TABLE;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/TrueCondition.java b/jOOQ/src/main/java/org/jooq/impl/TrueCondition.java
index 1eb4a0758b..f13fec9294 100644
--- a/jOOQ/src/main/java/org/jooq/impl/TrueCondition.java
+++ b/jOOQ/src/main/java/org/jooq/impl/TrueCondition.java
@@ -36,6 +36,7 @@
package org.jooq.impl;
+import static org.jooq.Clause.CONDITION;
import static org.jooq.Clause.CONDITION_COMPARISON;
import org.jooq.BindContext;
@@ -47,7 +48,8 @@ import org.jooq.RenderContext;
*/
class TrueCondition extends AbstractCondition {
- private static final long serialVersionUID = 775364624704563687L;
+ private static final long serialVersionUID = 775364624704563687L;
+ private static final Clause[] CLAUSES = { CONDITION, CONDITION_COMPARISON };
@Override
public final void bind(BindContext context) {}
@@ -58,8 +60,8 @@ class TrueCondition extends AbstractCondition {
}
@Override
- public final Clause clause() {
- return CONDITION_COMPARISON;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
TrueCondition() {}
diff --git a/jOOQ/src/main/java/org/jooq/impl/TruncateImpl.java b/jOOQ/src/main/java/org/jooq/impl/TruncateImpl.java
index 19730eb1fb..bbc249c274 100644
--- a/jOOQ/src/main/java/org/jooq/impl/TruncateImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/TruncateImpl.java
@@ -59,7 +59,8 @@ class TruncateImpl extends AbstractQuery implements
/**
* Generated UID
*/
- private static final long serialVersionUID = 8904572826501186329L;
+ private static final long serialVersionUID = 8904572826501186329L;
+ private static final Clause[] CLAUSES = { TRUNCATE };
private final Table table;
private Boolean cascade;
@@ -137,7 +138,7 @@ class TruncateImpl extends AbstractQuery implements
}
@Override
- public final Clause clause() {
- return TRUNCATE;
+ public final Clause[] clauses() {
+ return CLAUSES;
}
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/UDTImpl.java b/jOOQ/src/main/java/org/jooq/impl/UDTImpl.java
index cb85b2c1fd..73c4fdfe6e 100644
--- a/jOOQ/src/main/java/org/jooq/impl/UDTImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/UDTImpl.java
@@ -140,8 +140,8 @@ public class UDTImpl> extends AbstractQueryPart implement
}
@Override
- public final Clause clause() {
- return DUMMY;
+ public final Clause[] clauses() {
+ return new Clause[] { DUMMY };
}
/**
diff --git a/jOOQ/src/main/java/org/jooq/impl/Union.java b/jOOQ/src/main/java/org/jooq/impl/Union.java
index 0227bf4812..58a88c7067 100644
--- a/jOOQ/src/main/java/org/jooq/impl/Union.java
+++ b/jOOQ/src/main/java/org/jooq/impl/Union.java
@@ -64,6 +64,7 @@ class Union extends AbstractSelect {
private final List