Removed useless parameters from creating 'ForeignRowReference', not it is also column

This commit is contained in:
Andrew Golovashevich 2025-01-31 07:39:56 +03:00
parent b6c8737f89
commit 5927d63f64
3 changed files with 59 additions and 64 deletions

View File

@ -3,32 +3,30 @@ package ru.landgrafhomyak.db.serdha0.api.table
import ru.landgrafhomyak.db.serdha0.api.misc.Column import ru.landgrafhomyak.db.serdha0.api.misc.Column
import ru.landgrafhomyak.db.serdha0.api.misc.DatabaseType import ru.landgrafhomyak.db.serdha0.api.misc.DatabaseType
public interface CreateTableScope<TableUserExtension : Any> { public interface CreateTableScope<tUE : Any> {
public val types: DatabaseType.Provider public val types: DatabaseType.Provider
public fun <RT, DT : DatabaseType<RT>> column(name: String, type: DT): Column<RT, DT, TableUserExtension> public fun <RT, DT : DatabaseType<RT>> column(name: String, type: DT): Column<RT, DT, tUE>
public fun index(name: String, vararg columns: Column<*, *, TableUserExtension>): Index<TableUserExtension> public fun index(name: String, vararg columns: Column<*, *, tUE>): Index<tUE>
public fun uniqueIndex(name: String, distinctNulls: Boolean, vararg columns: Column<*, *, TableUserExtension>): UniqueIndex<TableUserExtension> public fun uniqueIndex(name: String, distinctNulls: Boolean, vararg columns: Column<*, *, tUE>): UniqueIndex<tUE>
public fun <ConstraintUserExtension : Any> checkConstraint(name: String, creator: CheckConstraint.Creator<ConstraintUserExtension, TableUserExtension>, recheckExistingRows: Boolean = false): CheckConstraint<TableUserExtension> public fun <cUE : Any> checkConstraint(name: String, creator: CheckConstraint.Creator<cUE, tUE>, recheckExistingRows: Boolean = false): CheckConstraint<tUE>
public fun <ConstraintUserExtension : Any, RT : Any, DT : DatabaseType<RT>> defaultValue(c: Column<RT, DT, TableUserExtension>, creator: DefaultConstraint.Creator<ConstraintUserExtension, RT, DT, TableUserExtension>): DefaultConstraint<TableUserExtension> public fun <cUE : Any, RT : Any, DT : DatabaseType<RT>> defaultValue(c: Column<RT, DT, tUE>, creator: DefaultConstraint.Creator<cUE, RT, DT, tUE>): DefaultConstraint<tUE>
@Suppress("PropertyName") @Suppress("PropertyName")
public val rowId_column: Column<RowId<TableUserExtension>, DatabaseType<RowId<TableUserExtension>>, TableUserExtension> public val rowId_column: Column<RowId<tUE>, DatabaseType<RowId<tUE>>, tUE>
@Suppress("PropertyName") @Suppress("PropertyName")
public val rowId_uniqueConstraint: UniqueIndex<TableUserExtension> public val rowId_uniqueConstraint: UniqueIndex<tUE>
public fun <TargetTableUserWrapper : Any> selfRowReference( public fun <TargetTableUserWrapper : Any> selfRowReference(
onDelete: ForeignRowReference.OnDeleteAction, onDelete: ForeignRowReference.OnDeleteAction,
toColumn: Column<RowId<TargetTableUserWrapper>, DatabaseType.ROW_ID<TargetTableUserWrapper>, TargetTableUserWrapper>, ): ForeignRowReference<tUE, tUE>
): ForeignRowReference<TableUserExtension, TableUserExtension>
public fun <TargetTableUserWrapper : Any> foreignRowReference( public fun <TargetTableUserWrapper : Any> foreignRowReference(
fromColumn: Column<RowId<TargetTableUserWrapper>, DatabaseType.ROW_ID<TargetTableUserWrapper>, TableUserExtension>, columnName: String,
toTable: Table<TargetTableUserWrapper, *>, toTable: Table<TargetTableUserWrapper, *>,
toColumn: Column<RowId<TargetTableUserWrapper>, DatabaseType.ROW_ID<TargetTableUserWrapper>, TargetTableUserWrapper>,
onDelete: ForeignRowReference.OnDeleteAction, onDelete: ForeignRowReference.OnDeleteAction,
): ForeignRowReference<TableUserExtension, TargetTableUserWrapper> ): ForeignRowReference<tUE, TargetTableUserWrapper>
} }

View File

@ -7,37 +7,23 @@ import ru.landgrafhomyak.db.serdha0.api.misc.DatabaseType
/** /**
* Descriptor of a reference to row in another table (== foreign key to `INTEGER PRIMARY KEY AUTOINCREMENT`). Used for schema manipulations. * Descriptor of a reference to row in another table (== foreign key to `INTEGER PRIMARY KEY AUTOINCREMENT`). Used for schema manipulations.
* *
* @param ContainerTableUserExtension Type of [owner table's][ForeignRowReference.fromTable] user expression for static reporting errors when this descriptor passed to wrong table. * @param ctUE Type of [owner table's][ForeignRowReference.fromTable] user expression for static reporting errors when this descriptor passed to wrong table.
* @param TargetTableUserExtension Type of [target table's][ForeignRowReference.toTable] user expression for static reporting errors when this descriptor passed to wrong table. * @param ttUE Type of [target table's][ForeignRowReference.toTable] user expression for static reporting errors when this descriptor passed to wrong table.
*/ */
public interface ForeignRowReference<ContainerTableUserExtension : Any, TargetTableUserExtension : Any> { public interface ForeignRowReference<ctUE : Any, ttUE : Any> : Column<RowId<ttUE>, DatabaseType.ROW_ID<ttUE>, ctUE> {
/** /**
* Table that contains references. For debugging. * Table that contains references. For debugging.
*/ */
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("fromTable") @get:JvmName("fromTable")
public val fromTable: Table<ContainerTableUserExtension, *> public val fromTable: Table<ctUE, *>
/**
* Column in [ForeignRowReference.fromTable] which references row in [ForeignRowReference.toTable]. For debugging.
*/
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("fromColumn")
public val fromColumn: Column<RowId<TargetTableUserExtension>, DatabaseType.ROW_ID<TargetTableUserExtension>, ContainerTableUserExtension>
/** /**
* Table referenced by this foreign key. For debugging. * Table referenced by this foreign key. For debugging.
*/ */
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("toTable") @get:JvmName("toTable")
public val toTable: Table<TargetTableUserExtension, *> public val toTable: Table<ttUE, *>
/**
* Row id column in [ForeignRowReference.toTable]. For debugging.
*/
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("toColumn")
public val toColumn: Column<RowId<TargetTableUserExtension>, DatabaseType.ROW_ID<TargetTableUserExtension>, TargetTableUserExtension>
/** /**

View File

@ -4,49 +4,60 @@ import ru.landgrafhomyak.db.serdha0.api.misc.Column
import ru.landgrafhomyak.db.serdha0.api.misc.DatabaseType import ru.landgrafhomyak.db.serdha0.api.misc.DatabaseType
public interface UpdateTableScope<TableNewUserExtension : Any, TableOldUserExtension : Any> : CreateTableScope<TableNewUserExtension> { public interface UpdateTableScope<tnUE : Any, toUE : Any> : CreateTableScope<tnUE> {
public fun <RT, DT : DatabaseType<RT>> keepColumn(c: Column<RT, DT, TableOldUserExtension>): Column<RT, DT, TableNewUserExtension> public fun <RT, DT : DatabaseType<RT>> keepColumn(c: Column<RT, DT, toUE>): Column<RT, DT, tnUE>
public fun <RT, DT : DatabaseType<RT>> keepColumnUntilUpgrading(c: Column<RT, DT, TableOldUserExtension>): Column<RT, DT, TableNewUserExtension> public fun <RT, DT : DatabaseType<RT>> keepColumnUntilUpgraded(c: Column<RT, DT, toUE>): Column<RT, DT, tnUE>
public fun <RT, DT : DatabaseType<RT>> renameAndKeepColumn(c: Column<RT, DT, TableOldUserExtension>, newName: String): Column<RT, DT, TableNewUserExtension> public fun <RT, DT : DatabaseType<RT>> renameAndKeepColumn(c: Column<RT, DT, toUE>, newName: String): Column<RT, DT, tnUE>
public fun deleteColumn(c: Column<*, *, TableOldUserExtension>) public fun deleteColumn(c: Column<*, *, toUE>)
public fun keepIndex(i: Index<TableOldUserExtension>): Index<TableNewUserExtension> public fun keepIndex(i: Index<toUE>): Index<tnUE>
public fun renameAndKeepIndex(i: Index<TableOldUserExtension>, newName: String): Index<TableNewUserExtension> public fun renameAndKeepIndex(i: Index<toUE>, newName: String): Index<tnUE>
public fun deleteIndex(i: Index<TableOldUserExtension>) public fun deleteIndex(i: Index<toUE>)
public fun keepCheck(i: CheckConstraint<TableOldUserExtension>): CheckConstraint<TableNewUserExtension> public fun keepCheck(i: CheckConstraint<toUE>): CheckConstraint<tnUE>
public fun renameAndKeepCheck(i: CheckConstraint<TableOldUserExtension>, newName: String): CheckConstraint<TableNewUserExtension> public fun renameAndKeepCheck(i: CheckConstraint<toUE>, newName: String): CheckConstraint<tnUE>
public fun deleteCheck(i: CheckConstraint<TableOldUserExtension>) public fun deleteCheck(i: CheckConstraint<toUE>)
public fun keepUniqueIndex(i: UniqueIndex<TableOldUserExtension>): UniqueIndex<TableNewUserExtension> public fun keepUniqueIndex(i: UniqueIndex<toUE>): UniqueIndex<tnUE>
public fun renameAndKeepUniqueIndex(i: UniqueIndex<TableOldUserExtension>, newName: String): UniqueIndex<TableNewUserExtension> public fun renameAndKeepUniqueIndex(i: UniqueIndex<toUE>, newName: String): UniqueIndex<tnUE>
public fun deleteUniqueIndex(i: UniqueIndex<TableOldUserExtension>) public fun deleteUniqueIndex(i: UniqueIndex<toUE>)
public fun <RT, DT : DatabaseType<RT>> keepDefaultValue(c: Column<RT, DT, TableNewUserExtension>, d: DefaultConstraint<TableOldUserExtension>): DefaultConstraint<TableNewUserExtension> public fun <RT, DT : DatabaseType<RT>> keepDefaultValue(c: Column<RT, DT, tnUE>, d: DefaultConstraint<toUE>): DefaultConstraint<tnUE>
public fun <RT, DT : DatabaseType<RT>> changeDefaultValue(c: Column<RT, DT, TableNewUserExtension>, d: DefaultConstraint<TableOldUserExtension>): DefaultConstraint<TableNewUserExtension> public fun <RT, DT : DatabaseType<RT>> changeDefaultValue(c: Column<RT, DT, tnUE>, d: DefaultConstraint<toUE>): DefaultConstraint<tnUE>
public fun deleteDefaultValue(i: DefaultConstraint<TableOldUserExtension>) public fun deleteDefaultValue(i: DefaultConstraint<toUE>)
public fun <TargetTableUserWrapper : Any> keepForeignRowReference( public fun <ttUE : Any> keepForeignRowReference(
frr: ForeignRowReference<TableOldUserExtension, TargetTableUserWrapper>, frr: ForeignRowReference<toUE, ttUE>,
onDelete: ForeignRowReference.OnDeleteAction? = null onDelete: ForeignRowReference.OnDeleteAction? = null
): ForeignRowReference<TableNewUserExtension, TargetTableUserWrapper> ): ForeignRowReference<tnUE, ttUE>
public fun <TargetTableOldUserWrapper : Any, TargetTableNewUserWrapper : Any> keepForeignRowReferenceToUpdatedTable( public fun <ttoUE : Any, ttnUE : Any> keepForeignRowReferenceToUpdatedTable(
frr: ForeignRowReference<TableOldUserExtension, TargetTableOldUserWrapper>, frr: ForeignRowReference<toUE, ttoUE>,
updatedTable: Table<TargetTableNewUserWrapper, TargetTableOldUserWrapper>, updatedTable: Table<ttnUE, ttoUE>,
onDelete: ForeignRowReference.OnDeleteAction? = null onDelete: ForeignRowReference.OnDeleteAction? = null
): ForeignRowReference<TableNewUserExtension, TargetTableNewUserWrapper> ): ForeignRowReference<tnUE, ttnUE>
public fun <TargetTableUserWrapper : Any> renameAndKeepForeignRowReference( public fun <ttUE : Any> renameAndKeepForeignRowReference(
frr: ForeignRowReference<TableOldUserExtension, TargetTableUserWrapper>, frr: ForeignRowReference<toUE, ttUE>,
onDelete: ForeignRowReference.OnDeleteAction? = null onDelete: ForeignRowReference.OnDeleteAction? = null
): ForeignRowReference<TableNewUserExtension, TargetTableUserWrapper> ): ForeignRowReference<tnUE, ttUE>
public fun <TargetTableOldUserWrapper : Any, TargetTableNewUserWrapper : Any> renameAndKeepForeignRowReferenceToUpdatedTable( public fun <ttoUE : Any, ttnUE : Any> renameAndKeepForeignRowReferenceToUpdatedTable(
frr: ForeignRowReference<TableOldUserExtension, TargetTableOldUserWrapper>, frr: ForeignRowReference<toUE, ttoUE>,
updatedTable: Table<TargetTableNewUserWrapper, TargetTableOldUserWrapper>, updatedTable: Table<ttnUE, ttoUE>,
onDelete: ForeignRowReference.OnDeleteAction? = null onDelete: ForeignRowReference.OnDeleteAction? = null
): ForeignRowReference<TableNewUserExtension, TargetTableNewUserWrapper> ): ForeignRowReference<tnUE, ttnUE>
public fun deleteForeignRowReference(frr: ForeignRowReference<TableOldUserExtension, *>) public fun deleteForeignRowReference(frr: ForeignRowReference<toUE, *>)
public fun <ttUE : Any> keepForeignRowReferenceUntilUpgraded(
frr: ForeignRowReference<toUE, ttUE>,
onDelete: ForeignRowReference.OnDeleteAction? = null
): ForeignRowReference<tnUE, ttUE>
public fun <ttoUE : Any, ttnUE : Any> keepForeignRowReferenceToUpdatedTableUntilUpgraded(
frr: ForeignRowReference<toUE, ttoUE>,
updatedTable: Table<ttnUE, ttoUE>,
onDelete: ForeignRowReference.OnDeleteAction? = null
): ForeignRowReference<tnUE, ttnUE>
} }