in exposed-r2dbc/src/main/kotlin/org/jetbrains/exposed/v1/r2dbc/mappers/BinaryTypeMapper.kt [27:70]
override fun setValue(
statement: Statement,
dialect: DatabaseDialect,
typeMapping: R2dbcTypeMapping,
columnType: IColumnType<*>,
value: Any?,
index: Int
): Boolean {
if (columnType !is BasicBinaryColumnType && columnType !is BlobColumnType) {
return false
}
if (value == null) {
statement.bindNull(index - 1, ByteArray::class.java)
return true
}
if (value is InputStream) {
val type = if (columnType is BlobColumnType) {
Parameters.`in`(R2dbcType.BLOB, value.readBytes())
} else {
Parameters.`in`(R2dbcType.VARBINARY, value.readBytes())
}
statement.bind(index - 1, type)
return true
}
if (value is ExposedBlob) {
if (columnType is BlobColumnType) {
statement.bind(index - 1, Parameters.`in`(R2dbcType.BLOB, value.bytes))
} else {
statement.bind(index - 1, Parameters.`in`(R2dbcType.VARBINARY, value.bytes))
}
return true
}
if (value is ByteArray) {
statement.bind(index - 1, value)
return true
}
return false
}