diff --git a/jOOQ/src/main/java/org/jooq/Queries.java b/jOOQ/src/main/java/org/jooq/Queries.java index 8bfbfe49c3..160f1b12ce 100644 --- a/jOOQ/src/main/java/org/jooq/Queries.java +++ b/jOOQ/src/main/java/org/jooq/Queries.java @@ -56,6 +56,11 @@ public interface Queries extends QueryPart, Attachable, Iterable { // Access API // ------------------------------------------------------------------------ + /** + * Return a new instance combining both sets of queries. + */ + Queries concat(Queries other); + /** * The wrapped collection of queries. */ diff --git a/jOOQ/src/main/java/org/jooq/impl/QueriesImpl.java b/jOOQ/src/main/java/org/jooq/impl/QueriesImpl.java index 0375b59c6c..b69c54b656 100644 --- a/jOOQ/src/main/java/org/jooq/impl/QueriesImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/QueriesImpl.java @@ -39,8 +39,11 @@ package org.jooq.impl; import static org.jooq.impl.Tools.EMPTY_QUERY; +import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Iterator; +import java.util.List; import java.util.stream.Stream; import org.jooq.Block; @@ -75,6 +78,15 @@ final class QueriesImpl extends AbstractQueryPart implements Queries { // Access API // ------------------------------------------------------------------------ + @Override + public final Queries concat(Queries other) { + Query[] array = other.queries(); + List list = new ArrayList<>(queries.size() + array.length); + list.addAll(queries); + list.addAll(Arrays.asList(array)); + return new QueriesImpl(configuration, list); + } + @Override public final Query[] queries() { return queries.toArray(EMPTY_QUERY);