diff --git a/buildSrc/src/main/kotlin/ktorm.publish.gradle.kts b/buildSrc/src/main/kotlin/ktorm.publish.gradle.kts index bb46335d..67bc8875 100644 --- a/buildSrc/src/main/kotlin/ktorm.publish.gradle.kts +++ b/buildSrc/src/main/kotlin/ktorm.publish.gradle.kts @@ -155,6 +155,11 @@ publishing { id.set("brohacz") name.set("Michal Brosig") } + developer { + id.set("csrawat") + name.set("Chandra Shekhar Rawat") + email.set("cs215100@gmail.com") + } } } } diff --git a/ktorm-core/src/main/kotlin/org/ktorm/schema/SqlTypes.kt b/ktorm-core/src/main/kotlin/org/ktorm/schema/SqlTypes.kt index e033bf49..58159482 100644 --- a/ktorm-core/src/main/kotlin/org/ktorm/schema/SqlTypes.kt +++ b/ktorm-core/src/main/kotlin/org/ktorm/schema/SqlTypes.kt @@ -18,6 +18,7 @@ package org.ktorm.schema import java.math.BigDecimal import java.sql.* +import java.sql.Array import java.sql.Date import java.time.* import java.time.format.DateTimeFormatterBuilder @@ -557,3 +558,24 @@ public object UuidSqlType : SqlType(Types.OTHER, "uuid") { return rs.getObject(index) as UUID? } } + +/** + * Define a column typed of [ArraySqlType]. + */ +public fun BaseTable<*>.array(name: String): Column { + return registerColumn(name, ArraySqlType) +} + +/** + * [SqlType] implementation represents `array` SQL type. + */ +public object ArraySqlType : SqlType(Types.OTHER, "array") { + + override fun doSetParameter(ps: PreparedStatement, index: Int, parameter: Array) { + ps.setObject(index, parameter) + } + + override fun doGetResult(rs: ResultSet, index: Int): Array? { + return rs.getObject(index) as Array? + } +}