Fixes pack 1

This commit is contained in:
Andrew Golovashevich 2025-02-18 14:26:42 +03:00
parent 8961cea200
commit d7877e57bc
11 changed files with 26 additions and 22 deletions

View File

@ -59,7 +59,7 @@ public interface DatabaseType<@Suppress("unused") RT> {
public interface Provider { public interface Provider {
@Suppress("INAPPLICABLE_JVM_NAME", "FunctionName") @Suppress("INAPPLICABLE_JVM_NAME", "FunctionName")
@JvmName("ROW_ID") @JvmName("ROW_ID")
public fun <TableUserExtension : Any> ROW_ID(table: Table<TableUserExtension, *>): DatabaseType<RowId<TableUserExtension>> public fun <TableUserExtension : Any> ROW_ID(table: Table<TableUserExtension, *>): DatabaseType.ROW_ID<TableUserExtension>
@Suppress("INAPPLICABLE_JVM_NAME", "PropertyName") @Suppress("INAPPLICABLE_JVM_NAME", "PropertyName")
@get:JvmName("BOOLEAN") @get:JvmName("BOOLEAN")

View File

@ -13,8 +13,8 @@ public interface FiltersScope<oqUE : Any> {
GREATER_OR_EQUALS, GREATER_OR_EQUALS,
} }
public fun <RT : Any, DT : DatabaseType<RT>> compareWithParam(column: IntermediateColumn<RT, DT, oqUE>, operator: ComparisonType, param: QueryParam<RT, DT, oqUE>) public fun <RT, DT : DatabaseType<RT>> compareWithParam(column: IntermediateColumn<RT, DT, oqUE>, operator: ComparisonType, param: QueryParam<RT, DT, oqUE>)
public fun <RT : Any, DT : DatabaseType<RT>> compareWithConstant(column: IntermediateColumn<RT, DT, oqUE>, operator: ComparisonType, constant: RT) public fun <RT, DT : DatabaseType<RT>> compareWithConstant(column: IntermediateColumn<RT, DT, oqUE>, operator: ComparisonType, constant: RT)
public fun ifTrue(column: IntermediateColumn<Boolean, DatabaseType.BOOLEAN, oqUE>) public fun ifTrue(column: IntermediateColumn<Boolean, DatabaseType.BOOLEAN, oqUE>)
public fun ifFalse(column: IntermediateColumn<Boolean, DatabaseType.BOOLEAN, oqUE>) public fun ifFalse(column: IntermediateColumn<Boolean, DatabaseType.BOOLEAN, oqUE>)
} }

View File

@ -3,4 +3,5 @@ package ru.landgrafhomyak.db.serdha0.api.misc
public interface QueryParam<RT, DT : DatabaseType<RT>, OwnerQueryUserExtension : Any> { public interface QueryParam<RT, DT : DatabaseType<RT>, OwnerQueryUserExtension : Any> {
public val name: String public val name: String
public val userWrapper: OwnerQueryUserExtension public val userWrapper: OwnerQueryUserExtension
public val type: DT
} }

View File

@ -10,12 +10,12 @@ public interface Reducer<rUE : Any> {
public interface OutputColumn<RT, DT : DatabaseType<RT>, rUE : Any> : Column<RT, DT, rUE>, QueryParam<RT, DT, rUE> public interface OutputColumn<RT, DT : DatabaseType<RT>, rUE : Any> : Column<RT, DT, rUE>, QueryParam<RT, DT, rUE>
public fun interface Linker<rUE : Any, qUE : Any, oUE : Any> { public fun interface Linker<_rUE : Any, qUE : Any, oUE : Any> {
public fun link(linker: Scope<rUE, qUE>): oUE public fun link(rUE: _rUE, linker: Scope<_rUE, qUE>): oUE
public interface Scope<_rUE : Any, qUE : Any> { public interface Scope<_rUE : Any, qUE : Any> {
public val rUE: _rUE public val rUE: _rUE
public fun <RT, DT : DatabaseType<RT>> link(red: BidirectionalColumn<RT, DT, _rUE>, src: IntermediateColumn<RT, DT, _rUE>): IntermediateColumn<RT, DT, qUE> public fun <RT, DT : DatabaseType<RT>> link(red: BidirectionalColumn<RT, DT, _rUE>, src: IntermediateColumn<RT, DT, qUE>): IntermediateColumn<RT, DT, qUE>
public fun <RT, DT : DatabaseType<RT>> linkAndInitialize(red: BidirectionalColumn<RT, DT, _rUE>, src: IntermediateColumn<RT, DT, qUE>, initial: RT): IntermediateColumn<RT, DT, qUE> public fun <RT, DT : DatabaseType<RT>> linkAndInitialize(red: BidirectionalColumn<RT, DT, _rUE>, src: IntermediateColumn<RT, DT, qUE>, initial: RT): IntermediateColumn<RT, DT, qUE>
public fun <RT, DT : DatabaseType<RT>> linkAndInitialize(red: BidirectionalColumn<RT, DT, _rUE>, src: IntermediateColumn<RT, DT, qUE>, initial: QueryParam<RT, DT, qUE>): IntermediateColumn<RT, DT, qUE> public fun <RT, DT : DatabaseType<RT>> linkAndInitialize(red: BidirectionalColumn<RT, DT, _rUE>, src: IntermediateColumn<RT, DT, qUE>, initial: QueryParam<RT, DT, qUE>): IntermediateColumn<RT, DT, qUE>
public fun <RT, DT : DatabaseType<RT>> link(red: OutputColumn<RT, DT, _rUE>): IntermediateColumn<RT, DT, qUE> public fun <RT, DT : DatabaseType<RT>> link(red: OutputColumn<RT, DT, _rUE>): IntermediateColumn<RT, DT, qUE>

View File

@ -22,9 +22,9 @@ public interface DeleteQuery<out qUE : Any> : _Query<qUE> {
public val tt: Table<ttUE, *> public val tt: Table<ttUE, *>
public val types: DatabaseType.Provider public val types: DatabaseType.Provider
public fun <RT, DT : DatabaseType<RT>> param(name: String, type: DT): QueryParam<RT, DT, qUE> public fun <RT, DT : DatabaseType<RT>> queryParam(name: String, type: DT): QueryParam<RT, DT, qUE>
public var rowToRemove: QueryParam<*, DatabaseType.ROW_ID<ttUE>, qUE> public val rowToRemove: QueryParam<*, DatabaseType.ROW_ID<ttUE>, qUE>
public fun <RT, DT : DatabaseType<RT>> returnRemovedValue(name: String, column: Column<RT, DT, ttUE>): Column<RT, DT, qUE> public fun <RT, DT : DatabaseType<RT>> returnRemovedValue(name: String, column: Column<RT, DT, ttUE>): Column<RT, DT, qUE>
public fun <RT, DT : DatabaseType<RT>> returnParam(name: String, column: QueryParam<RT, DT, ttUE>): Column<RT, DT, qUE> public fun <RT, DT : DatabaseType<RT>> returnParam(name: String, column: QueryParam<RT, DT, ttUE>): Column<RT, DT, qUE>
@ -51,10 +51,10 @@ public interface DeleteQuery<out qUE : Any> : _Query<qUE> {
public val src: _Selectable<sUE> public val src: _Selectable<sUE>
public val types: DatabaseType.Provider public val types: DatabaseType.Provider
public fun <RT, DT : DatabaseType<RT>> param(name: String, type: DT): QueryParam<RT, DT, qUE> public fun <RT, DT : DatabaseType<RT>> queryParam(name: String, type: DT): QueryParam<RT, DT, qUE>
public val selectorParams: InputRow.WithRedirect<sUE, qUE> public val selectorParams: InputRow.WithRedirect<sUE, qUE>
public var selectorColumn: Column<*, DatabaseType.ROW_ID<ttUE>, sUE> public val selectorColumn: Column<*, DatabaseType.ROW_ID<ttUE>, sUE>
public fun <RT, DT : DatabaseType<RT>> returnFromSubquery(name: String, column: Column<RT, DT, sUE>): Column<RT, DT, qUE> public fun <RT, DT : DatabaseType<RT>> returnFromSubquery(name: String, column: Column<RT, DT, sUE>): Column<RT, DT, qUE>
public fun <RT, DT : DatabaseType<RT>> returnRemovedValue(name: String, column: Column<RT, DT, ttUE>): Column<RT, DT, qUE> public fun <RT, DT : DatabaseType<RT>> returnRemovedValue(name: String, column: Column<RT, DT, ttUE>): Column<RT, DT, qUE>

View File

@ -73,12 +73,12 @@ public interface InsertQuery<out qUE : Any> : _Query<qUE> {
public fun <RT, DT : DatabaseType<RT>> insertConstant(dst: Column<RT, DT, ttUE>, src: RT) public fun <RT, DT : DatabaseType<RT>> insertConstant(dst: Column<RT, DT, ttUE>, src: RT)
public fun <RT, DT : DatabaseType<RT>> insertParam(dst: Column<RT, DT, ttUE>, src: QueryParam<RT, DT, qUE>) public fun <RT, DT : DatabaseType<RT>> insertParam(dst: Column<RT, DT, ttUE>, src: QueryParam<RT, DT, qUE>)
public fun <RT, DT : DatabaseType<RT>> insertFromSubquery(dst: Column<RT, DT, ttUE>, src: Column<RT, DT, ttUE>) public fun <RT, DT : DatabaseType<RT>> insertFromSubquery(dst: Column<RT, DT, ttUE>, src: Column<RT, DT, sUE>)
public fun onConflictReturnOnly(u: UniqueIndex<ttUE>) public fun onConflictReturnOnly(u: UniqueIndex<ttUE>)
public fun <RT, DT : DatabaseType<RT>> returnFromSubquery(name: String, column: Column<RT, DT, sUE>): Column<RT, DT, qUE> public fun <RT, DT : DatabaseType<RT>> returnFromSubquery(name: String, column: Column<RT, DT, sUE>): Column<RT, DT, qUE>
public fun <RT, DT : DatabaseType<RT>> returnNewValue(name: String, column: Column<RT, DT, ttUE>): Column<RT, DT, qUE> public fun <RT, DT : DatabaseType<RT>> returnInsertedValue(name: String, column: Column<RT, DT, ttUE>): Column<RT, DT, qUE>
public fun <RT, DT : DatabaseType<RT>> returnParam(name: String, param: QueryParam<RT, DT, ttUE>): Column<RT, DT, qUE> public fun <RT, DT : DatabaseType<RT>> returnParam(name: String, param: QueryParam<RT, DT, ttUE>): Column<RT, DT, qUE>
} }
} }

View File

@ -20,11 +20,13 @@ public interface SelectQuery<out qUE : Any> : _Query<qUE> {
public val join: Join public val join: Join
) { ) {
public enum class LeftNull { public enum class LeftNull {
NULL_NOT_EXPECTED,
AS_ID, SKIP, JOIN_TO_NULL AS_ID, SKIP, JOIN_TO_NULL
} }
public enum class Join { public enum class Join {
LEFT_TO_FIRST_RIGHT, LEFT_FOR_EACH_RIGHT, LEFT_FOR_EACH_RIGHT_OR_NULL, LEFT_TO_FIRST_RIGHT, LEFT_FOR_EACH_RIGHT, LEFT_FOR_EACH_RIGHT_OR_TO_NULL,
EACH_LEFT_TO_EACH_RIGHT
} }
} }

View File

@ -6,6 +6,7 @@ import ru.landgrafhomyak.db.serdha0.api.misc.DatabaseType
import ru.landgrafhomyak.db.serdha0.api.misc.QueryParam import ru.landgrafhomyak.db.serdha0.api.misc.QueryParam
import ru.landgrafhomyak.db.serdha0.api.misc._Selectable import ru.landgrafhomyak.db.serdha0.api.misc._Selectable
import ru.landgrafhomyak.db.serdha0.api.runtime.InputRow import ru.landgrafhomyak.db.serdha0.api.runtime.InputRow
import ru.landgrafhomyak.db.serdha0.api.table.RowId
public interface UpdateQuery<out qUE : Any> : _Query<qUE> { public interface UpdateQuery<out qUE : Any> : _Query<qUE> {
public interface SingleRow<out qUE : Any> : UpdateQuery<qUE>, _Query.Params2Table<qUE> { public interface SingleRow<out qUE : Any> : UpdateQuery<qUE>, _Query.Params2Table<qUE> {
@ -20,9 +21,9 @@ public interface UpdateQuery<out qUE : Any> : _Query<qUE> {
public val tt: Table<ttUE, *> public val tt: Table<ttUE, *>
public val types: DatabaseType.Provider public val types: DatabaseType.Provider
public fun <RT, DT : DatabaseType<RT>> param(name: String, type: DT): QueryParam<RT, DT, qUE> public fun <RT, DT : DatabaseType<RT>> queryParam(name: String, type: DT): QueryParam<RT, DT, qUE>
public var rowToUpdate: QueryParam<*, DatabaseType.ROW_ID<ttUE>, qUE> public val rowToUpdate: QueryParam<*, DatabaseType.ROW_ID<ttUE>, qUE>
public fun <RT, DT : DatabaseType<RT>> updateColumnWithOldValue(dst: Column<RT, DT, ttUE>, src: Column<RT, DT, ttUE>) public fun <RT, DT : DatabaseType<RT>> updateColumnWithOldValue(dst: Column<RT, DT, ttUE>, src: Column<RT, DT, ttUE>)
public fun <RT, DT : DatabaseType<RT>> updateColumnWithParam(dst: Column<RT, DT, ttUE>, src: QueryParam<RT, DT, qUE>) public fun <RT, DT : DatabaseType<RT>> updateColumnWithParam(dst: Column<RT, DT, ttUE>, src: QueryParam<RT, DT, qUE>)
@ -53,10 +54,10 @@ public interface UpdateQuery<out qUE : Any> : _Query<qUE> {
public val src: _Selectable<sUE> public val src: _Selectable<sUE>
public val types: DatabaseType.Provider public val types: DatabaseType.Provider
public fun <RT, DT : DatabaseType<RT>> param(name: String, type: DT): QueryParam<RT, DT, qUE> public fun <RT, DT : DatabaseType<RT>> queryParam(name: String, type: DT): QueryParam<RT, DT, qUE>
public val selectorParams: InputRow.WithRedirect<sUE, qUE> public val selectorParams: InputRow.WithRedirect<sUE, qUE>
public var selectorColumn: Column<*, DatabaseType.ROW_ID<ttUE>, sUE> public val selectorColumn: Column<RowId<ttUE>, DatabaseType.ROW_ID<ttUE>, sUE>
public fun <RT, DT : DatabaseType<RT>> updateColumnWithSubquery(dst: Column<RT, DT, ttUE>, src: Column<RT, DT, sUE>) public fun <RT, DT : DatabaseType<RT>> updateColumnWithSubquery(dst: Column<RT, DT, ttUE>, src: Column<RT, DT, sUE>)
public fun <RT, DT : DatabaseType<RT>> updateColumnWithOldValue(dst: Column<RT, DT, ttUE>, src: Column<RT, DT, ttUE>) public fun <RT, DT : DatabaseType<RT>> updateColumnWithOldValue(dst: Column<RT, DT, ttUE>, src: Column<RT, DT, ttUE>)
@ -88,7 +89,7 @@ public interface UpdateQuery<out qUE : Any> : _Query<qUE> {
public val types: DatabaseType.Provider public val types: DatabaseType.Provider
public fun <RT, DT : DatabaseType<RT>> inputColumn(name: String, type: DT): QueryParam<RT, DT, qUE> public fun <RT, DT : DatabaseType<RT>> inputColumn(name: String, type: DT): QueryParam<RT, DT, qUE>
public var rowToUpdate: QueryParam<*, DatabaseType.ROW_ID<ttUE>, qUE> public val rowToUpdate: QueryParam<*, DatabaseType.ROW_ID<ttUE>, qUE>
public fun <RT, DT : DatabaseType<RT>> updateColumnWithOldValue(dst: Column<RT, DT, ttUE>, src: Column<RT, DT, ttUE>) public fun <RT, DT : DatabaseType<RT>> updateColumnWithOldValue(dst: Column<RT, DT, ttUE>, src: Column<RT, DT, ttUE>)
public fun <RT, DT : DatabaseType<RT>> updateColumnWithParam(dst: Column<RT, DT, ttUE>, src: QueryParam<RT, DT, qUE>) public fun <RT, DT : DatabaseType<RT>> updateColumnWithParam(dst: Column<RT, DT, ttUE>, src: QueryParam<RT, DT, qUE>)

View File

@ -16,6 +16,4 @@ public interface Table<out UE : Any, pUE : Any> : _Selectable<UE> {
public val temporaryType: TemporaryType? public val temporaryType: TemporaryType?
public val namespacesFromModuleRoot: List<String> public val namespacesFromModuleRoot: List<String>
public val isMutable: Boolean
} }

View File

@ -18,10 +18,11 @@ public interface TableConstructor<tUE : Any> {
public fun uniqueIndex(name: String, distinctNulls: Boolean, vararg columns: Column<*, *, tUE>): UniqueIndex<tUE> public fun uniqueIndex(name: String, distinctNulls: Boolean, vararg columns: Column<*, *, tUE>): UniqueIndex<tUE>
public fun checkConstraint(name: String, constructor: RowExpression.Constructor<tUE, *, Boolean>, recheckExistingRows: Boolean = false): CheckConstraint<tUE> public fun checkConstraint(name: String, constructor: RowExpression.Constructor<tUE, *, Boolean>, recheckExistingRows: Boolean = false): CheckConstraint<tUE>
public fun <RT : Any> defaultValue(c: Column<RT, *, tUE>, creator: RowExpression.Constructor<tUE, *, RT>): ColumnDefaultValue<tUE, RT> public fun <RT : Any, DT : DatabaseType<RT>> defaultValue(c: Column<RT, DT, tUE>, value: RT): ColumnDefaultValue<tUE, RT>
public fun <RT : Any, DT : DatabaseType<RT>> defaultValue(c: Column<RT, DT, tUE>, creator: RowExpression.Constructor<tUE, *, RT>): ColumnDefaultValue<tUE, RT>
@Suppress("PropertyName") @Suppress("PropertyName")
public val rowId_column: Column<RowId<tUE>, DatabaseType<RowId<tUE>>, tUE> public val rowId_column: Column<RowId<tUE>, DatabaseType.ROW_ID<tUE>, tUE>
@Suppress("PropertyName") @Suppress("PropertyName")
public val rowId_uniqueConstraint: UniqueIndex<tUE> public val rowId_uniqueConstraint: UniqueIndex<tUE>

View File

@ -27,6 +27,7 @@ public interface TableUpgrade<tnUE : Any, toUE : Any> {
public fun <RT, DT : DatabaseType<RT>> keepDefaultValue(c: Column<RT, DT, tnUE>, d: ColumnDefaultValue<toUE, RT>): ColumnDefaultValue<tnUE, RT> public fun <RT, DT : DatabaseType<RT>> keepDefaultValue(c: Column<RT, DT, tnUE>, d: ColumnDefaultValue<toUE, RT>): ColumnDefaultValue<tnUE, RT>
public fun <RT, DT : DatabaseType<RT>> changeDefaultValue(c: Column<RT, DT, tnUE>, d: ColumnDefaultValue<toUE, RT>): ColumnDefaultValue<tnUE, RT> public fun <RT, DT : DatabaseType<RT>> changeDefaultValue(c: Column<RT, DT, tnUE>, d: ColumnDefaultValue<toUE, RT>): ColumnDefaultValue<tnUE, RT>
public fun <RT, DT : DatabaseType<RT>> changeDefaultValue(c: Column<RT, DT, tnUE>, d: RT): ColumnDefaultValue<tnUE, RT>
public fun deleteDefaultValue(i: ColumnDefaultValue<toUE, *>) public fun deleteDefaultValue(i: ColumnDefaultValue<toUE, *>)
public fun <ttUE : Any, RT, DT : DatabaseType<RT>> keepForeignRowReference( public fun <ttUE : Any, RT, DT : DatabaseType<RT>> keepForeignRowReference(