diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index 8f7ec08283..9551efa038 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -67,6 +67,7 @@ import java.sql.Date; import java.sql.ResultSetMetaData; import java.sql.Time; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -11803,6 +11804,23 @@ public class DSL { return new RowImpl(values); } + /** + * Create a row value expression of degree N > 22. + *

+ * Note: Not all databases support row value expressions, but many row value + * expression operations can be simulated on all databases. See relevant row + * value expression method Javadocs for details. + */ + @Support + public static RowN row(Collection values) { + Collection> fields = new ArrayList>(); + + for (Object o : values) + fields.add(o instanceof Field ? (Field) o : val(o)); + + return new RowImpl(fields); + } + // ------------------------------------------------------------------------- // [#915] TODO: These are experimental VALUES() table constructors // -------------------------------------------------------------------------