diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java
index 6b5f92fb51..d4ff2071ff 100644
--- a/jOOQ/src/main/java/org/jooq/impl/DSL.java
+++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java
@@ -16972,6 +16972,24 @@ public class DSL {
return new Xmlcomment(comment);
}
+ /**
+ * The XMLFOREST function.
+ */
+ @NotNull
+ @Support({ POSTGRES })
+ public static Field xmlforest(Field>... fields) {
+ return new Xmlforest(Arrays.asList(fields));
+ }
+
+ /**
+ * The XMLFOREST function.
+ */
+ @NotNull
+ @Support({ POSTGRES })
+ public static Field xmlforest(Collection extends Field>> fields) {
+ return new Xmlforest(fields);
+ }
+
/**
@@ -20925,24 +20943,6 @@ public class DSL {
return new XMLPI(target, content);
}
- /**
- * The XML forest constructor.
- */
- @NotNull
- @Support({ POSTGRES })
- public static Field xmlforest(Field>... fields) {
- return xmlforest(asList(fields));
- }
-
- /**
- * The XML forest constructor.
- */
- @NotNull
- @Support({ POSTGRES })
- public static Field xmlforest(Collection extends Field>> fields) {
- return new XMLForest(fields);
- }
-
/**
* The XML aggregate function.
*/
diff --git a/jOOQ/src/main/java/org/jooq/impl/XMLForest.java b/jOOQ/src/main/java/org/jooq/impl/XMLForest.java
index 3fb91c83a2..8020b90534 100644
--- a/jOOQ/src/main/java/org/jooq/impl/XMLForest.java
+++ b/jOOQ/src/main/java/org/jooq/impl/XMLForest.java
@@ -37,42 +37,77 @@
*/
package org.jooq.impl;
-import static org.jooq.impl.Names.N_XMLFOREST;
-import static org.jooq.impl.Tools.BooleanDataKey.DATA_AS_REQUIRED;
+import static org.jooq.impl.DSL.*;
+import static org.jooq.impl.Internal.*;
+import static org.jooq.impl.Keywords.*;
+import static org.jooq.impl.Names.*;
+import static org.jooq.impl.SQLDataType.*;
+import static org.jooq.impl.Tools.*;
+import static org.jooq.impl.Tools.BooleanDataKey.*;
+import static org.jooq.SQLDialect.*;
-import java.util.Collection;
+import org.jooq.*;
+import org.jooq.impl.*;
+import org.jooq.tools.*;
+
+import java.util.*;
-import org.jooq.Context;
-import org.jooq.Field;
-import org.jooq.XML;
/**
- * @author Lukas Eder
+ * The XMLFOREST statement.
*/
-final class XMLForest extends AbstractField {
+@SuppressWarnings({ "rawtypes", "unused" })
+final class Xmlforest
+extends
+ AbstractField
+{
- /**
- * Generated UID
- */
- private static final long serialVersionUID = 4505809303211506197L;
- private final SelectFieldList> args;
+ private static final long serialVersionUID = 1L;
- XMLForest(Collection extends Field>> args) {
- super(N_XMLFOREST, SQLDataType.XML);
+ private final Collection extends Field>> fields;
- this.args = new SelectFieldList<>(args);
+ Xmlforest(
+ Collection extends Field>> fields
+ ) {
+ super(N_XMLFOREST, allNotNull(XML));
+
+ this.fields = fields;
}
+ // -------------------------------------------------------------------------
+ // XXX: QueryPart API
+ // -------------------------------------------------------------------------
+
+
+
@Override
public final void accept(Context> ctx) {
boolean declareFields = ctx.declareFields();
-
Object previous = ctx.data(DATA_AS_REQUIRED, true);
+
ctx.visit(N_XMLFOREST).sql('(')
.declareFields(true)
- .visit(args)
+ .visit(new SelectFieldList<>(fields))
.declareFields(declareFields)
.sql(')');
+
ctx.data(DATA_AS_REQUIRED, previous);
}
+
+
+
+ // -------------------------------------------------------------------------
+ // The Object API
+ // -------------------------------------------------------------------------
+
+ @Override
+ public boolean equals(Object that) {
+ if (that instanceof Xmlforest) {
+ return
+ StringUtils.equals(fields, ((Xmlforest) that).fields)
+ ;
+ }
+ else
+ return super.equals(that);
+ }
}