diff --git a/jOOQ-kotlin/src/main/kotlin/org/jooq/kotlin/Extensions.kt b/jOOQ-kotlin/src/main/kotlin/org/jooq/kotlin/Extensions.kt index 8a8f85adf3..8ba390b1d8 100644 --- a/jOOQ-kotlin/src/main/kotlin/org/jooq/kotlin/Extensions.kt +++ b/jOOQ-kotlin/src/main/kotlin/org/jooq/kotlin/Extensions.kt @@ -1,5 +1,6 @@ package org.jooq.kotlin +import org.jetbrains.annotations.Blocking import org.jooq.* import org.jooq.impl.DSL.* import java.util.stream.Collector @@ -38,6 +39,39 @@ fun > Field>.intoSet(): Field> = collecting(R fun Field>.intoSet(mapper: (R) -> E): Field> = collecting(Records.intoSet(mapper)) +// ---------------------------------------------------------------------------- +// Extensions to collect ResultQuery into other types +// ---------------------------------------------------------------------------- + +@Blocking +inline fun ResultQuery>.fetchArray(): Array = collect(Records.intoArray(E::class.java)) + +@Blocking +fun > ResultQuery.fetchGroups(): Map> = collect(Records.intoGroups()) + +@Blocking +fun > ResultQuery.fetchList(): List = collect(Records.intoList()) + +@Blocking +fun ResultQuery>.fetchMap(): Map = collect(Records.intoMap()) + +@Blocking +fun > ResultQuery.fetchSet(): Set = collect(Records.intoSet()) + +// ---------------------------------------------------------------------------- +// Extensions to collect Result into other types +// ---------------------------------------------------------------------------- + +inline fun Result>.intoArray(): Array = collect(Records.intoArray(E::class.java)) + +fun > Result.intoGroups(): Map> = collect(Records.intoGroups()) + +fun > Result.intoList(): List = collect(Records.intoList()) + +fun Result>.intoMap(): Map = collect(Records.intoMap()) + +fun > Result.intoSet(): Set = collect(Records.intoSet()) + // ----------------------------------------------------------------------------