in exposed-core/src/main/kotlin/org/jetbrains/exposed/v1/core/ColumnType.kt [1428:1455]
fun <T : Any> resolveColumnType(
klass: KClass<T>,
defaultType: ColumnType<*>? = null
): ColumnType<T> {
val type = when (klass) {
Boolean::class -> BooleanColumnType()
Byte::class -> ByteColumnType()
UByte::class -> UByteColumnType()
Short::class -> ShortColumnType()
UShort::class -> UShortColumnType()
Int::class -> IntegerColumnType()
UInt::class -> UIntegerColumnType()
Long::class -> LongColumnType()
ULong::class -> ULongColumnType()
Float::class -> FloatColumnType()
Double::class -> DoubleColumnType()
String::class -> TextColumnType()
Char::class -> CharacterColumnType()
ByteArray::class -> BasicBinaryColumnType()
BigDecimal::class -> DecimalColumnType.INSTANCE
UUID::class -> UUIDColumnType()
else -> defaultType
} as? ColumnType<T>
return type ?: error(
"A column type could not be associated with ${klass.qualifiedName}. Provide an explicit column type argument."
)
}