Hi,
I'd like to revive this thread if I may.
I think it would be really handy to have DSL.unnest work as described by Julian even tho it is syntactic sugar for later join.
Here's why. Lets say you're building the queries dynamically in jooq by mapping a set of fields in your domain model to jooq Field<>.
When a field is of type array and you know you're going to unnest it universally then why make me muck about with my join and from clauses?
For example
class Foo {
..
Field<?> convertToJooqField() {
}
ArrayList<Foo> foos;
I want to be able to build my select list by mapping over foos and
d.select(foos.map( f - f->convertToJooqField))
if the convertToJooqField has some logic that wraps a tags field for example with an UNNEST the above would brake.