Removing types that can be represented as bytearray

This commit is contained in:
Andrew Golovashevich 2025-01-21 03:52:20 +03:00
parent 28ccd490c1
commit d8c9440126
3 changed files with 25 additions and 662 deletions

View File

@ -15,118 +15,33 @@ import ru.landgrafhomyak.serdha.api.v0.table.RowId
*/
@Suppress("ClassName", "RemoveRedundantQualifierName")
public interface DatabaseType<@Suppress("unused") RuntimeType> {
/**
* Name of database type for debugging and errors.
*/
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("name")
public val name: String
// todo
public abstract class _VirtualType<R : Any>(@Suppress("MemberVisibilityCanBePrivate") @JvmField public val wraps: DatabaseType<R>)
public abstract class _VirtualType<SRT, WRT : Any>(
@Suppress("MemberVisibilityCanBePrivate") @JvmField
public val wraps: DatabaseType<WRT>
) : DatabaseType<SRT> {
@Suppress("FunctionName")
public abstract fun _unwrap(w: WRT): SRT
/**
* Descriptor of a nullable database type for static type-checking.
* @see DatabaseTypesProvider.nullableOf
*/
public interface Nullable<RT : Any, @Suppress("unused") DT : DatabaseType<RT>> : DatabaseType<RT?>
@Suppress("FunctionName")
public abstract fun _wrap(w: SRT): WRT
/**
* Descriptor of an internal row id type for static type-checking.
* @param TargetTableUserWrapper User's extension type for target table. For static type checking.
* @see DatabaseTypesProvider.ROW_ID
*/
public interface ROW_ID<TargetTableUserWrapper : Any> : DatabaseType<RowId<TargetTableUserWrapper>>
@Suppress("FunctionName")
public abstract fun _equals(l: SRT, r: SRT): Boolean
@Suppress("FunctionName")
public abstract fun _compare(l: SRT, r: SRT): Int
}
public interface _ROW_ID<T : RowId<TargetTableUserWrapper>?, TargetTableUserWrapper : Any> : DatabaseType<T>
public interface ROW_ID<TargetTableUserWrapper : Any> : _ROW_ID<RowId<TargetTableUserWrapper>, TargetTableUserWrapper>
public interface NULLABLE_ROW_ID<TargetTableUserWrapper : Any> : _ROW_ID<RowId<TargetTableUserWrapper>?, TargetTableUserWrapper>
/**
* Descriptor of a boolean type for static type-checking.
* @see DatabaseTypesProvider.BOOLEAN
*/
public interface BOOLEAN : DatabaseType<Boolean>
/**
* Descriptor of an integer type for static type-checking.
* @see DatabaseTypesProvider.INT_S8
*/
public interface INT_S8 : DatabaseType<Byte>
/**
* Descriptor of an integer type for static type-checking.
* @see DatabaseTypesProvider.INT_U8
*/
public interface INT_U8 : DatabaseType<UByte>
/**
* Descriptor of an integer type for static type-checking.
* @see DatabaseTypesProvider.INT_S16
*/
public interface INT_S16 : DatabaseType<Short>
/**
* Descriptor of an integer type for static type-checking.
* @see DatabaseTypesProvider.INT_U16
*/
public interface INT_U16 : DatabaseType<UShort>
/**
* Descriptor of an integer type for static type-checking.
* @see DatabaseTypesProvider.INT_S32
*/
public interface INT_S32 : DatabaseType<Int>
/**
* Descriptor of an integer type for static type-checking.
* @see DatabaseTypesProvider.INT_U32
*/
public interface INT_U32 : DatabaseType<UInt>
/**
* Descriptor of an integer type for static type-checking.
* @see DatabaseTypesProvider.INT_S64
*/
public interface INT_S64 : DatabaseType<Long>
/**
* Descriptor of an integer type for static type-checking.
* @see DatabaseTypesProvider.INT_U64
*/
public interface INT_U64 : DatabaseType<ULong>
/**
* Descriptor of a date type for static type-checking.
* @see DatabaseTypesProvider.LOCAL_DATE
*/
public interface LOCAL_DATE : DatabaseType<LocalDate>
/**
* Descriptor of a time type for static type-checking.
* @see DatabaseTypesProvider.LOCAL_TIME
*/
public interface LOCAL_TIME : DatabaseType<LocalTime>
/**
* Descriptor of a date-time type for static type-checking.
* @see DatabaseTypesProvider.LOCAL_DATETIME
*/
public interface LOCAL_DATETIME : DatabaseType<LocalDateTime>
/**
* Descriptor of a date-time type for static type-checking.
* @see DatabaseTypesProvider.INSTANT
*/
public interface INSTANT : DatabaseType<Instant>
/**
* Descriptor of a floating-point number type for static type-checking.
* @see DatabaseTypesProvider.FLOAT_32
*/
public interface FLOAT_32 : DatabaseType<Float>
/**
* Descriptor of a floating-point number type for static type-checking.
* @see DatabaseTypesProvider.FLOAT_64
*/
public interface FLOAT_64 : DatabaseType<Double>
public interface NULLABLE_BOOLEAN : DatabaseType<Boolean?>
/**
* Descriptor of a raw binary data type for static type-checking.

View File

@ -18,110 +18,17 @@ public interface DatabaseTypesProvider {
@JvmName("ROW_ID")
public fun <TableUserExtension : Any> ROW_ID(table: Table<TableUserExtension, *>): DatabaseType<RowId<TableUserExtension>>
/**
* Descriptor of a boolean type. Fields of this type can contain only 2 values: `true` and `false`.
*/
@Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("NULLABLE_ROW_ID")
public fun <TableUserExtension : Any> NULLABLE_ROW_ID(table: Table<TableUserExtension, *>): DatabaseType<RowId<TableUserExtension>>
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("BOOLEAN")
public val BOOLEAN: DatabaseType.BOOLEAN
/**
* Descriptor of a signed integer type with size at least 8 bits. Can contain values in range `-128..127`.
*/
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("INT_S8")
public val INT_S8: DatabaseType.INT_S8
/**
* Descriptor of an unsigned integer type with size at least 8 bits. Can contain values in range `0..255`.
*/
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("INT_U8")
public val INT_U8: DatabaseType.INT_U8
/**
* Descriptor of a signed integer type with size at least 16 bits. Can contain values in range `-32768..32767`.
*/
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("INT_S16")
public val INT_S16: DatabaseType.INT_S16
/**
* Descriptor of an unsigned integer type with size at least 16 bits. Can contain values in range `0..65535`.
*/
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("INT_U16")
public val INT_U16: DatabaseType.INT_U16
/**
* Descriptor of a signed integer type with size at least 32 bits. Can contain values in range `-2147483648..2147483647`.
*/
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("INT_S32")
public val INT_S32: DatabaseType.INT_S32
/**
* Descriptor of an unsigned integer type with size at least 32 bits. Can contain values in range `0..4294967295`.
*/
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("INT_U32")
public val INT_U32: DatabaseType.INT_U32
/**
* Descriptor of a signed integer type with size at least 64 bits. Can contain values in range `-9223372036854775808..9223372036854775807`.
*/
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("INT_S64")
public val INT_S64: DatabaseType.INT_S64
/**
* Descriptor of an unsigned integer type with size at least 64 bits. Can contain values in range `0..18446744073709551615`.
*/
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("INT_U64")
public val INT_U64: DatabaseType.INT_U64
/**
* Descriptor of a local date type in some format like `(year, month, day)`. Day component can contain values in `1..31`, month in `1..12` and year in `-32768..32767`.
*/
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("LOCAL_DATE")
public val LOCAL_DATE: DatabaseType.LOCAL_DATE
/**
* Descriptor of a local time type in some format like `(hour, minute, second)`. Hour component can contain values in `0..23`, minute in `0..59` and second in `0..59`.
*/
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("LOCAL_TIME")
public val LOCAL_TIME: DatabaseType.LOCAL_TIME
/**
* Descriptor of union of types [LOCAL_DATE][DatabaseType.Builder.LOCAL_DATE] and [LOCAL_TIME][DatabaseType.Builder.LOCAL_TIME].
*/
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("LOCAL_DATETIME")
public val LOCAL_DATETIME: DatabaseType.LOCAL_DATETIME
/**
* Descriptor of a timestamp type. Can contain values in `-9223372036854775808..9223372036854775807`
*/
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("INSTANT")
public val INSTANT: DatabaseType.INSTANT
/**
* Descriptor of a single-precision floating-point number with size at least 32 bits. See [IEEE 754](https://en.wikipedia.org/wiki/IEEE_754).
*/
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("FLOAT_32")
public val FLOAT_32: DatabaseType.FLOAT_32
/**
* Descriptor of a double-precision floating-point number with size at least 64 bits. See [IEEE 754](https://en.wikipedia.org/wiki/IEEE_754).
*/
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("FLOAT_64")
public val FLOAT_64: DatabaseType.FLOAT_64
@get:JvmName("NULLABLE_BOOLEAN")
public val NULLABLE_BOOLEAN: DatabaseType.NULLABLE_BOOLEAN
/**
* Descriptor of a raw binary data type without size restrictions (must be controlled by user).
@ -139,14 +46,4 @@ public interface DatabaseTypesProvider {
@Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("BINARY_DATA")
public fun BINARY_DATA(size: UInt, isFixedSize: Boolean): DatabaseType.BINARY_DATA
/**
* Returns descriptor of a new type, which can contain all values of [original type][notNullType] or `null` value.
*
* Descriptors of nullable types are returned itself without any modifications.
*/
@Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("nullableOf")
public fun <R : Any, D : DatabaseType<R>> nullableOf(notNullType: D): DatabaseType.Nullable<R, D>
}

View File

@ -1,456 +1,7 @@
package ru.landgrafhomyak.serdha.api.v0.misc
import kotlinx.datetime.Instant
import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime
import kotlinx.datetime.LocalTime
public interface Expression<RuntimeType, DT : DatabaseType<RuntimeType>, OwnerBuilderUserExtension : Any> {
public interface Builder<OwnerBuilderUserExtension : Any> {
public fun <DT : DatabaseType<*>> equals(
left: Expression<*, DT, OwnerBuilderUserExtension>,
right: Expression<*, DT, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun <DT : DatabaseType<*>> notEquals(
left: Expression<*, DT, OwnerBuilderUserExtension>,
right: Expression<*, DT, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension> =
this.logicalNot(this.equals(left, right))
public fun isNull(
e: Expression<*, DatabaseType.Nullable<*, *>, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun isNotNull(
e: Expression<*, DatabaseType.Nullable<*, *>, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension> =
this.logicalNot(this.isNull(e))
public fun logicalAnd(
left: Expression<*, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>,
right: Expression<*, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun logicalOr(
left: Expression<*, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>,
right: Expression<*, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun logicalXor(
left: Expression<*, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>,
right: Expression<*, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension> =
this.notEquals(left, right)
public fun logicalNot(
e: Expression<*, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersLess(
left: Expression<Byte, DatabaseType.INT_S8, OwnerBuilderUserExtension>,
right: Expression<Byte, DatabaseType.INT_S8, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersLess(
left: Expression<UByte, DatabaseType.INT_U8, OwnerBuilderUserExtension>,
right: Expression<UByte, DatabaseType.INT_U8, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersLess(
left: Expression<Short, DatabaseType.INT_S16, OwnerBuilderUserExtension>,
right: Expression<Short, DatabaseType.INT_S16, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersLess(
left: Expression<UShort, DatabaseType.INT_U16, OwnerBuilderUserExtension>,
right: Expression<UShort, DatabaseType.INT_U16, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersLess(
left: Expression<Int, DatabaseType.INT_S32, OwnerBuilderUserExtension>,
right: Expression<Int, DatabaseType.INT_S32, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersLess(
left: Expression<UInt, DatabaseType.INT_U32, OwnerBuilderUserExtension>,
right: Expression<UInt, DatabaseType.INT_U32, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersLess(
left: Expression<Long, DatabaseType.INT_S64, OwnerBuilderUserExtension>,
right: Expression<Long, DatabaseType.INT_S64, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersLess(
left: Expression<ULong, DatabaseType.INT_U64, OwnerBuilderUserExtension>,
right: Expression<ULong, DatabaseType.INT_U64, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersLessOrEquals(
left: Expression<Byte, DatabaseType.INT_S8, OwnerBuilderUserExtension>,
right: Expression<Byte, DatabaseType.INT_S8, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersLessOrEquals(
left: Expression<UByte, DatabaseType.INT_U8, OwnerBuilderUserExtension>,
right: Expression<UByte, DatabaseType.INT_U8, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersLessOrEquals(
left: Expression<Short, DatabaseType.INT_S16, OwnerBuilderUserExtension>,
right: Expression<Short, DatabaseType.INT_S16, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersLessOrEquals(
left: Expression<UShort, DatabaseType.INT_U16, OwnerBuilderUserExtension>,
right: Expression<UShort, DatabaseType.INT_U16, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersLessOrEquals(
left: Expression<Int, DatabaseType.INT_S32, OwnerBuilderUserExtension>,
right: Expression<Int, DatabaseType.INT_S32, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersLessOrEquals(
left: Expression<UInt, DatabaseType.INT_U32, OwnerBuilderUserExtension>,
right: Expression<UInt, DatabaseType.INT_U32, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersLessOrEquals(
left: Expression<Long, DatabaseType.INT_S64, OwnerBuilderUserExtension>,
right: Expression<Long, DatabaseType.INT_S64, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersLessOrEquals(
left: Expression<ULong, DatabaseType.INT_U64, OwnerBuilderUserExtension>,
right: Expression<ULong, DatabaseType.INT_U64, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersGreater(
left: Expression<Byte, DatabaseType.INT_S8, OwnerBuilderUserExtension>,
right: Expression<Byte, DatabaseType.INT_S8, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersGreater(
left: Expression<UByte, DatabaseType.INT_U8, OwnerBuilderUserExtension>,
right: Expression<UByte, DatabaseType.INT_U8, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersGreater(
left: Expression<Short, DatabaseType.INT_S16, OwnerBuilderUserExtension>,
right: Expression<Short, DatabaseType.INT_S16, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersGreater(
left: Expression<UShort, DatabaseType.INT_U16, OwnerBuilderUserExtension>,
right: Expression<UShort, DatabaseType.INT_U16, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersGreater(
left: Expression<Int, DatabaseType.INT_S32, OwnerBuilderUserExtension>,
right: Expression<Int, DatabaseType.INT_S32, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersGreater(
left: Expression<UInt, DatabaseType.INT_U32, OwnerBuilderUserExtension>,
right: Expression<UInt, DatabaseType.INT_U32, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersGreater(
left: Expression<Long, DatabaseType.INT_S64, OwnerBuilderUserExtension>,
right: Expression<Long, DatabaseType.INT_S64, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersGreater(
left: Expression<ULong, DatabaseType.INT_U64, OwnerBuilderUserExtension>,
right: Expression<ULong, DatabaseType.INT_U64, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersGreaterOrEquals(
left: Expression<Byte, DatabaseType.INT_S8, OwnerBuilderUserExtension>,
right: Expression<Byte, DatabaseType.INT_S8, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersGreaterOrEquals(
left: Expression<UByte, DatabaseType.INT_U8, OwnerBuilderUserExtension>,
right: Expression<UByte, DatabaseType.INT_U8, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersGreaterOrEquals(
left: Expression<Short, DatabaseType.INT_S16, OwnerBuilderUserExtension>,
right: Expression<Short, DatabaseType.INT_S16, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersGreaterOrEquals(
left: Expression<UShort, DatabaseType.INT_U16, OwnerBuilderUserExtension>,
right: Expression<UShort, DatabaseType.INT_U16, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersGreaterOrEquals(
left: Expression<Int, DatabaseType.INT_S32, OwnerBuilderUserExtension>,
right: Expression<Int, DatabaseType.INT_S32, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersGreaterOrEquals(
left: Expression<UInt, DatabaseType.INT_U32, OwnerBuilderUserExtension>,
right: Expression<UInt, DatabaseType.INT_U32, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersGreaterOrEquals(
left: Expression<Long, DatabaseType.INT_S64, OwnerBuilderUserExtension>,
right: Expression<Long, DatabaseType.INT_S64, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpIntegersGreaterOrEquals(
left: Expression<ULong, DatabaseType.INT_U64, OwnerBuilderUserExtension>,
right: Expression<ULong, DatabaseType.INT_U64, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun extendIntegerToS16(
e: Expression<Byte, DatabaseType.INT_S8, OwnerBuilderUserExtension>,
): Expression<Short, DatabaseType.INT_S16, OwnerBuilderUserExtension>
public fun extendIntegerToS16(
e: Expression<UByte, DatabaseType.INT_U8, OwnerBuilderUserExtension>,
): Expression<Short, DatabaseType.INT_S16, OwnerBuilderUserExtension>
public fun extendIntegerToU16(
e: Expression<UByte, DatabaseType.INT_U8, OwnerBuilderUserExtension>,
): Expression<UShort, DatabaseType.INT_U16, OwnerBuilderUserExtension>
public fun extendIntegerToS32(
e: Expression<Byte, DatabaseType.INT_S8, OwnerBuilderUserExtension>,
): Expression<Int, DatabaseType.INT_S32, OwnerBuilderUserExtension>
public fun extendIntegerToS32(
e: Expression<UByte, DatabaseType.INT_U8, OwnerBuilderUserExtension>,
): Expression<Int, DatabaseType.INT_S32, OwnerBuilderUserExtension>
public fun extendIntegerToS32(
e: Expression<Short, DatabaseType.INT_S16, OwnerBuilderUserExtension>,
): Expression<Int, DatabaseType.INT_S32, OwnerBuilderUserExtension>
public fun extendIntegerToS32(
e: Expression<UShort, DatabaseType.INT_U16, OwnerBuilderUserExtension>,
): Expression<Int, DatabaseType.INT_S32, OwnerBuilderUserExtension>
public fun extendIntegerToU32(
e: Expression<UByte, DatabaseType.INT_U8, OwnerBuilderUserExtension>,
): Expression<UInt, DatabaseType.INT_U32, OwnerBuilderUserExtension>
public fun extendIntegerToU32(
e: Expression<UShort, DatabaseType.INT_U16, OwnerBuilderUserExtension>,
): Expression<UInt, DatabaseType.INT_U32, OwnerBuilderUserExtension>
public fun extendIntegerToS64(
e: Expression<Byte, DatabaseType.INT_S8, OwnerBuilderUserExtension>,
): Expression<Long, DatabaseType.INT_S64, OwnerBuilderUserExtension>
public fun extendIntegerToS64(
e: Expression<UByte, DatabaseType.INT_U8, OwnerBuilderUserExtension>,
): Expression<Long, DatabaseType.INT_S64, OwnerBuilderUserExtension>
public fun extendIntegerToS64(
e: Expression<Short, DatabaseType.INT_S16, OwnerBuilderUserExtension>,
): Expression<Long, DatabaseType.INT_S64, OwnerBuilderUserExtension>
public fun extendIntegerToS64(
e: Expression<UShort, DatabaseType.INT_U16, OwnerBuilderUserExtension>,
): Expression<Long, DatabaseType.INT_S64, OwnerBuilderUserExtension>
public fun extendIntegerToS64(
e: Expression<Int, DatabaseType.INT_S32, OwnerBuilderUserExtension>,
): Expression<Long, DatabaseType.INT_S64, OwnerBuilderUserExtension>
public fun extendIntegerToS64(
e: Expression<UInt, DatabaseType.INT_U32, OwnerBuilderUserExtension>,
): Expression<Long, DatabaseType.INT_S64, OwnerBuilderUserExtension>
public fun extendIntegerToU64(
e: Expression<UByte, DatabaseType.INT_U8, OwnerBuilderUserExtension>,
): Expression<ULong, DatabaseType.INT_U64, OwnerBuilderUserExtension>
public fun extendIntegerToU64(
e: Expression<UShort, DatabaseType.INT_U16, OwnerBuilderUserExtension>,
): Expression<ULong, DatabaseType.INT_U64, OwnerBuilderUserExtension>
public fun extendIntegerToU64(
e: Expression<UInt, DatabaseType.INT_U32, OwnerBuilderUserExtension>,
): Expression<ULong, DatabaseType.INT_U64, OwnerBuilderUserExtension>
public fun extendFractionalToDouble(
e: Expression<Float, DatabaseType.FLOAT_32, OwnerBuilderUserExtension>
): Expression<Double, DatabaseType.FLOAT_64, OwnerBuilderUserExtension>
public fun cmpFractionalLess(
left: Expression<Float, DatabaseType.FLOAT_32, OwnerBuilderUserExtension>,
right: Expression<Float, DatabaseType.FLOAT_32, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpFractionalLess(
left: Expression<Double, DatabaseType.FLOAT_64, OwnerBuilderUserExtension>,
right: Expression<Double, DatabaseType.FLOAT_64, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpFractionalLessOrEquals(
left: Expression<Float, DatabaseType.FLOAT_32, OwnerBuilderUserExtension>,
right: Expression<Float, DatabaseType.FLOAT_32, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpFractionalLessOrEquals(
left: Expression<Double, DatabaseType.FLOAT_64, OwnerBuilderUserExtension>,
right: Expression<Double, DatabaseType.FLOAT_64, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpFractionalGreater(
left: Expression<Float, DatabaseType.FLOAT_32, OwnerBuilderUserExtension>,
right: Expression<Float, DatabaseType.FLOAT_32, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpFractionalGreater(
left: Expression<Double, DatabaseType.FLOAT_64, OwnerBuilderUserExtension>,
right: Expression<Double, DatabaseType.FLOAT_64, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpFractionalGreaterOrEquals(
left: Expression<Float, DatabaseType.FLOAT_32, OwnerBuilderUserExtension>,
right: Expression<Float, DatabaseType.FLOAT_32, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpFractionalGreaterOrEquals(
left: Expression<Double, DatabaseType.FLOAT_64, OwnerBuilderUserExtension>,
right: Expression<Double, DatabaseType.FLOAT_64, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpLocalDateEarlier(
left: Expression<LocalDate, DatabaseType.LOCAL_DATE, OwnerBuilderUserExtension>,
right: Expression<LocalDate, DatabaseType.LOCAL_DATE, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpLocalDateEarlierOrSimultaneous(
left: Expression<LocalDate, DatabaseType.LOCAL_DATE, OwnerBuilderUserExtension>,
right: Expression<LocalDate, DatabaseType.LOCAL_DATE, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpLocalDateLater(
left: Expression<LocalDate, DatabaseType.LOCAL_DATE, OwnerBuilderUserExtension>,
right: Expression<LocalDate, DatabaseType.LOCAL_DATE, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpLocalDateLaterOrSimultaneous(
left: Expression<LocalDate, DatabaseType.LOCAL_DATE, OwnerBuilderUserExtension>,
right: Expression<LocalDate, DatabaseType.LOCAL_DATE, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpLocalTimeEarlier(
left: Expression<LocalTime, DatabaseType.LOCAL_TIME, OwnerBuilderUserExtension>,
right: Expression<LocalTime, DatabaseType.LOCAL_TIME, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpLocalTimeEarlierOrSimultaneous(
left: Expression<LocalTime, DatabaseType.LOCAL_TIME, OwnerBuilderUserExtension>,
right: Expression<LocalTime, DatabaseType.LOCAL_TIME, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpLocalTimeLater(
left: Expression<LocalTime, DatabaseType.LOCAL_TIME, OwnerBuilderUserExtension>,
right: Expression<LocalTime, DatabaseType.LOCAL_TIME, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpLocalTimeLaterOrSimultaneous(
left: Expression<LocalTime, DatabaseType.LOCAL_TIME, OwnerBuilderUserExtension>,
right: Expression<LocalTime, DatabaseType.LOCAL_TIME, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpLocalDateTimeEarlier(
left: Expression<LocalDateTime, DatabaseType.LOCAL_DATETIME, OwnerBuilderUserExtension>,
right: Expression<LocalDateTime, DatabaseType.LOCAL_DATETIME, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpLocalDateTimeEarlierOrSimultaneous(
left: Expression<LocalDateTime, DatabaseType.LOCAL_DATETIME, OwnerBuilderUserExtension>,
right: Expression<LocalDateTime, DatabaseType.LOCAL_DATETIME, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpLocalDateTimeLater(
left: Expression<LocalDateTime, DatabaseType.LOCAL_DATETIME, OwnerBuilderUserExtension>,
right: Expression<LocalDateTime, DatabaseType.LOCAL_DATETIME, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpLocalDateTimeLaterOrSimultaneous(
left: Expression<LocalDateTime, DatabaseType.LOCAL_DATETIME, OwnerBuilderUserExtension>,
right: Expression<LocalDateTime, DatabaseType.LOCAL_DATETIME, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpInstantEarlier(
left: Expression<Instant, DatabaseType.INSTANT, OwnerBuilderUserExtension>,
right: Expression<Instant, DatabaseType.INSTANT, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpInstantEarlierOrSimultaneous(
left: Expression<Instant, DatabaseType.INSTANT, OwnerBuilderUserExtension>,
right: Expression<Instant, DatabaseType.INSTANT, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpInstantLater(
left: Expression<Instant, DatabaseType.INSTANT, OwnerBuilderUserExtension>,
right: Expression<Instant, DatabaseType.INSTANT, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun cmpInstantLaterOrSimultaneous(
left: Expression<Instant, DatabaseType.INSTANT, OwnerBuilderUserExtension>,
right: Expression<Instant, DatabaseType.INSTANT, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun dateComponentOf(
dt: Expression<LocalDateTime, DatabaseType.LOCAL_DATETIME, OwnerBuilderUserExtension>,
): Expression<LocalDate, DatabaseType.LOCAL_DATE, OwnerBuilderUserExtension>
public fun timeComponentOf(
dt: Expression<LocalDateTime, DatabaseType.LOCAL_DATETIME, OwnerBuilderUserExtension>,
): Expression<LocalTime, DatabaseType.LOCAL_TIME, OwnerBuilderUserExtension>
public fun joinDateTime(
date: Expression<LocalDate, DatabaseType.LOCAL_DATE, OwnerBuilderUserExtension>,
time: Expression<LocalTime, DatabaseType.LOCAL_TIME, OwnerBuilderUserExtension>,
): Expression<LocalDateTime, DatabaseType.LOCAL_DATETIME, OwnerBuilderUserExtension>
public fun constantOf(v: Boolean): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun constantOf(v: Byte): Expression<Byte, DatabaseType.INT_S8, OwnerBuilderUserExtension>
public fun constantOf(v: UByte): Expression<UByte, DatabaseType.INT_U8, OwnerBuilderUserExtension>
public fun constantOf(v: Short): Expression<Short, DatabaseType.INT_S16, OwnerBuilderUserExtension>
public fun constantOf(v: UShort): Expression<UShort, DatabaseType.INT_U16, OwnerBuilderUserExtension>
public fun constantOf(v: Int): Expression<Int, DatabaseType.INT_S32, OwnerBuilderUserExtension>
public fun constantOf(v: UInt): Expression<UInt, DatabaseType.INT_U32, OwnerBuilderUserExtension>
public fun constantOf(v: Long): Expression<Long, DatabaseType.INT_S64, OwnerBuilderUserExtension>
public fun constantOf(v: ULong): Expression<ULong, DatabaseType.INT_U64, OwnerBuilderUserExtension>
public fun constantOf(v: Float): Expression<Float, DatabaseType.FLOAT_32, OwnerBuilderUserExtension>
public fun constantOf(v: Double): Expression<Double, DatabaseType.FLOAT_64, OwnerBuilderUserExtension>
public fun constantOf(v: LocalDate): Expression<LocalDate, DatabaseType.LOCAL_DATE, OwnerBuilderUserExtension>
public fun constantOf(v: LocalTime): Expression<LocalTime, DatabaseType.LOCAL_TIME, OwnerBuilderUserExtension>
public fun constantOf(v: LocalDateTime): Expression<LocalDateTime, DatabaseType.LOCAL_DATETIME, OwnerBuilderUserExtension>
public fun constantOf(v: Instant): Expression<Instant, DatabaseType.INSTANT, OwnerBuilderUserExtension>
@OptIn(ExperimentalUnsignedTypes::class)
public fun constantOf(v: ByteArray): Expression<UByteArray, DatabaseType.BINARY_DATA, OwnerBuilderUserExtension>
public fun <ArgRT : Any, ArgDT : DatabaseType<ArgRT>, RetRuntimeType, RetDT : DatabaseType<RetRuntimeType>> ifNull(
nullable: Expression<ArgRT?, DatabaseType.Nullable<ArgRT, ArgDT>, OwnerBuilderUserExtension>,
onValue: (Expression<ArgRT, ArgDT, OwnerBuilderUserExtension>) -> Expression<RetRuntimeType, RetDT, OwnerBuilderUserExtension>,
onNull: () -> Expression<RetRuntimeType, RetDT, OwnerBuilderUserExtension>
): Expression<RetRuntimeType, RetDT, OwnerBuilderUserExtension>
public fun <ArgRT : Any, ArgDT : DatabaseType<ArgRT>> notNullAnd(
nullable: Expression<ArgRT?, DatabaseType.Nullable<ArgRT, ArgDT>, OwnerBuilderUserExtension>,
onValue: (Expression<ArgRT, ArgDT, OwnerBuilderUserExtension>) -> Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
public fun <ArgRT : Any, ArgDT : DatabaseType<ArgRT>> nullOr(
nullable: Expression<ArgRT?, DatabaseType.Nullable<ArgRT, ArgDT>, OwnerBuilderUserExtension>,
onValue: (Expression<ArgRT, ArgDT, OwnerBuilderUserExtension>) -> Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>,
): Expression<Boolean, DatabaseType.BOOLEAN, OwnerBuilderUserExtension>
}
}