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 7699b6ccd5..70d7776233 100644 --- a/jOOQ-kotlin/src/main/kotlin/org/jooq/kotlin/Extensions.kt +++ b/jOOQ-kotlin/src/main/kotlin/org/jooq/kotlin/Extensions.kt @@ -2,6 +2,7 @@ package org.jooq.kotlin import org.jetbrains.annotations.Blocking import org.jooq.* +import org.jooq.SQLDialect.* import org.jooq.impl.DSL.* import java.util.stream.Collector @@ -289,11 +290,47 @@ operator fun TableLike<*>.get(field: Field) = this.field(field) // Extensions to make Field aware of its being an array // ---------------------------------------------------------------------------- -@Support +@Support(AURORA_POSTGRES, COCKROACHDB, H2, HSQLDB, POSTGRES, YUGABYTEDB) operator fun Field>.get(index: Int) = arrayGet(this, index) -@Support -operator fun Field>.get(index: Field) = arrayGet(this, index) +@Support(AURORA_POSTGRES, COCKROACHDB, H2, HSQLDB, POSTGRES, YUGABYTEDB) +operator fun Field>.get(index: Field) = arrayGet(this, index) + +// ---------------------------------------------------------------------------- +// Extensions to make Field and Field aware of its being JSON +// ---------------------------------------------------------------------------- + +@Support(AURORA_POSTGRES, COCKROACHDB, DB2_11, MARIADB_10_2, MYSQL_5_7, ORACLE12C, POSTGRES, SNOWFLAKE, SQLITE_3_38, YUGABYTEDB) +@JvmName("jsonGetElement") +operator fun Field.get(index: Int) = jsonGetElement(this, index) + +@Support(AURORA_POSTGRES, COCKROACHDB, DB2_11, MARIADB_10_2, MYSQL_5_7, ORACLE12C, POSTGRES, SNOWFLAKE, SQLITE_3_38, YUGABYTEDB) +@JvmName("jsonGetElement") +operator fun Field.get(index: Field) = jsonGetElement(this, index) + +@Support(AURORA_POSTGRES, COCKROACHDB, DB2_11, MARIADB_10_2, MYSQL_5_7, ORACLE12C, POSTGRES, SNOWFLAKE, SQLITE_3_38, YUGABYTEDB) +@JvmName("jsonGetAttribute") +operator fun Field.get(name: String) = jsonGetAttribute(this, name) + +@Support(AURORA_POSTGRES, COCKROACHDB, DB2_11, MARIADB_10_2, MYSQL_5_7, ORACLE12C, POSTGRES, SNOWFLAKE, SQLITE_3_38, YUGABYTEDB) +@JvmName("jsonGetAttribute") +operator fun Field.get(name: Field) = jsonGetAttribute(this, name) + +@Support(AURORA_POSTGRES, COCKROACHDB, DB2_11, MARIADB_10_2, MYSQL_5_7, ORACLE12C, POSTGRES, SNOWFLAKE, SQLITE_3_38, YUGABYTEDB) +@JvmName("jsonbGetElement") +operator fun Field.get(index: Int) = jsonbGetElement(this, index) + +@Support(AURORA_POSTGRES, COCKROACHDB, DB2_11, MARIADB_10_2, MYSQL_5_7, ORACLE12C, POSTGRES, SNOWFLAKE, SQLITE_3_38, YUGABYTEDB) +@JvmName("jsonbGetElement") +operator fun Field.get(index: Field) = jsonbGetElement(this, index) + +@Support(AURORA_POSTGRES, COCKROACHDB, DB2_11, MARIADB_10_2, MYSQL_5_7, ORACLE12C, POSTGRES, SNOWFLAKE, SQLITE_3_38, YUGABYTEDB) +@JvmName("jsonbGetAttribute") +operator fun Field.get(name: String) = jsonbGetAttribute(this, name) + +@Support(AURORA_POSTGRES, COCKROACHDB, DB2_11, MARIADB_10_2, MYSQL_5_7, ORACLE12C, POSTGRES, SNOWFLAKE, SQLITE_3_38, YUGABYTEDB) +@JvmName("jsonbGetAttribute") +operator fun Field.get(name: Field) = jsonbGetAttribute(this, name) // ---------------------------------------------------------------------------- // Extensions to make Select> a scalar subquery of type Field