KQLite Columns

KQLite not only supports standard SQLite data types but also provides a rich set of column types designed to seamlessly work with native Kotlin data types.

SQLite standard columns

object StandardSQLiteTypesTable : KQLiteTable("standard_types_table") {
    val integerColumn: KQLiteColumn<Long?> = integerColumn("integer_column") // INTEGER

    val realColumn: KQLiteColumn<Double?> = realColumn("real_column") // REAL

    val textColumn: KQLiteColumn<String?> = textColumn("text_column") // TEXT

    val blobColumn: KQLiteColumn<ByteArray?> = blobColumn("blob_column") // BLOB

    val booleanColumn: KQLiteColumn<Boolean?> = booleanColumn("boolean_column") // BOOLEAN

    val notNullColumn: KQLiteColumn<String> = textColumn("not_null_column").notNull() // TEXT NOT NULL
}
Column Definition
KQLiteColumn Type
SQLite Type
integerColumn
KQLiteColumn<Long?>
INTEGER
realColumn
KQLiteColumn<Double?>
REAL
textColumn
KQLiteColumn<String?>
TEXT
blobColumn
KQLiteColumn<ByteArray?>
BLOB
booleanColumn
KQLiteColumn<Boolean?>
BOOLEAN

JVM primitive columns

Column Definition
KQLiteColumn Type
SQLite Type
longColumn
KQLiteColumn<Long?>
INTEGER
intColumn
KQLiteColumn<Int?>
INTEGER if autoIncrement() else INT
shortColumn
KQLiteColumn<Short?>
SMALLINT
byteColumn
KQLiteColumn<Byte?>
TINYINT
doubleColumn
KQLiteColumn<Double?>
REAL
floatColumn
KQLiteColumn<Float?>
FLOAT
stringColumn
KQLiteColumn<String?>
TEXT
charColumn
KQLiteColumn<Char?>
CHAR(1)
byteArrayColumn
KQLiteColumn<ByteArray?>
BLOB

Unsigned columns

Column Definition
KQLiteColumn Type
SQLite Type
uLongColumn
KQLiteColumn<ULong?>
INTEGER if autoIncrement() else BIGINT UNSIGNED
uIntColumn
KQLiteColumn<UInt?>
INTEGER if autoIncrement() else INT UNSIGNED
uShortColumn
KQLiteColumn<UShort?>
SMALLINT UNSIGNED
uByteColumn
KQLiteColumn<UByte?>
TINYINT UNSIGNED

Date and Time columns

Column Definition
KQLiteColumn Type
SQLite Type
dateColumn
KQLiteColumn<KQLiteDate?>
DATE
timeColumn
KQLiteColumn<KQLiteTime?>
TIME
datetimeColumn
KQLiteColumn<KQLiteDatetime?>
DATETIME
julianDayColumn
KQLiteColumn<KQLiteJulianDay?>
DOUBLE
unixEpochColumn
KQLiteColumn<KQLiteUnixEpoch?>
BIGINT

JSON columns

Column Definition
KQLiteColumn Type
SQLite Type
jsonColumn
KQLiteColumn<KQLiteJson?>
JSON
jsonObjectColumn
KQLiteColumn<KQLiteJsonObject?>
JSON OBJECT
jsonArrayColumn
KQLiteColumn<KQLiteJsonArray?>
JSON ARRAY

Enum column

Column Definition
KQLiteColumn Type
SQLite Type
enumColumn
KQLiteColumn<Enum<E>?>
ENUM
⬅ Tables Drivers ⮕