Removed constraints from 'ForeignRowReference' RT and DT because it doesn't strictly check at compile-time but allows using virtual types
This commit is contained in:
parent
13e9da6aba
commit
7a51863dca
@ -21,12 +21,15 @@ public interface CreateTableScope<tUE : Any> {
|
||||
public val rowId_uniqueConstraint: UniqueIndex<tUE>
|
||||
|
||||
public fun <ttUE : Any> selfRowReference(
|
||||
columnName: String,
|
||||
onDelete: ForeignRowReference.OnDelete,
|
||||
): ForeignRowReference<tUE, tUE, RowId<tUE>, DatabaseType.ROW_ID<tUE>>
|
||||
|
||||
public fun <ttUE : Any> nullableSelfRowReference(
|
||||
public fun <ttUE : Any, RT, DT : DatabaseType<RT>> selfRowReference(
|
||||
columnName: String,
|
||||
type: DT,
|
||||
onDelete: ForeignRowReference.OnDelete,
|
||||
): ForeignRowReference<tUE, tUE, RowId<tUE>?, DatabaseType.Nullable<RowId<tUE>, DatabaseType.ROW_ID<tUE>>>
|
||||
): ForeignRowReference<tUE, tUE, RT, DT>
|
||||
|
||||
public fun <ttUE : Any> foreignRowReference(
|
||||
columnName: String,
|
||||
@ -34,9 +37,10 @@ public interface CreateTableScope<tUE : Any> {
|
||||
onDelete: ForeignRowReference.OnDelete,
|
||||
): ForeignRowReference<tUE, ttUE, RowId<ttUE>, DatabaseType.ROW_ID<ttUE>>
|
||||
|
||||
public fun <ttUE : Any> nullableForeignRowReference(
|
||||
public fun <ttUE : Any, RT, DT : DatabaseType<RT>> foreignRowReference(
|
||||
columnName: String,
|
||||
type: DT,
|
||||
toTable: Table<ttUE, *>,
|
||||
onDelete: ForeignRowReference.OnDelete,
|
||||
): ForeignRowReference<tUE, ttUE, RowId<ttUE>?, DatabaseType.Nullable<RowId<ttUE>, DatabaseType.ROW_ID<ttUE>>>
|
||||
): ForeignRowReference<tUE, ttUE, RT, DT>
|
||||
}
|
@ -10,7 +10,7 @@ import ru.landgrafhomyak.db.serdha0.api.misc.DatabaseType
|
||||
* @param ctUE Type of [owner table's][ForeignRowReference.fromTable] 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<ctUE : Any, ttUE : Any, RT : RowId<ttUE>?, DT : DatabaseType<RT>> : Column<RowId<ttUE>, DatabaseType.ROW_ID<ttUE>, ctUE> {
|
||||
public interface ForeignRowReference<ctUE : Any, ttUE : Any, RT, DT : DatabaseType<RT>> : Column<RT, DT, ctUE> {
|
||||
/**
|
||||
* Table that contains references. For debugging.
|
||||
*/
|
||||
|
@ -26,56 +26,42 @@ public interface UpdateTableScope<tnUE : Any, toUE : Any> : CreateTableScope<tnU
|
||||
public fun <RT, DT : DatabaseType<RT>> changeDefaultValue(c: Column<RT, DT, tnUE>, d: DefaultConstraint<toUE>): DefaultConstraint<tnUE>
|
||||
public fun deleteDefaultValue(i: DefaultConstraint<toUE>)
|
||||
|
||||
public fun <ttUE : Any, RT : RowId<ttUE>?, DT : DatabaseType<RT>> keepForeignRowReference(
|
||||
public fun <ttUE : Any, RT, DT : DatabaseType<RT>> keepForeignRowReference(
|
||||
frr: ForeignRowReference<toUE, ttUE, RT, DT>,
|
||||
onDelete: ForeignRowReference.OnDelete? = null
|
||||
): ForeignRowReference<toUE, ttUE, RT, DT>
|
||||
|
||||
public fun <ttoUE : Any, ttnUE : Any> keepForeignRowReferenceToUpdatedTable(
|
||||
frr: ForeignRowReference<toUE, ttoUE, RowId<ttoUE>, DatabaseType.ROW_ID<ttoUE>>,
|
||||
public fun <ttoUE : Any, oRT, oDT : DatabaseType<oRT>, ttnUE : Any, nRT, nDT : DatabaseType<nRT>> keepForeignRowReferenceToUpdatedTable(
|
||||
frr: ForeignRowReference<toUE, ttoUE, oRT, oDT>,
|
||||
updatedType: nDT,
|
||||
updatedTable: Table<ttnUE, ttoUE>,
|
||||
onDelete: ForeignRowReference.OnDelete? = null
|
||||
): ForeignRowReference<tnUE, ttnUE, RowId<ttnUE>, DatabaseType.ROW_ID<ttnUE>>
|
||||
): ForeignRowReference<tnUE, ttnUE, nRT, nDT>
|
||||
|
||||
public fun <ttoUE : Any, ttnUE : Any> keepNullableForeignRowReferenceToUpdatedTable(
|
||||
frr: ForeignRowReference<toUE, ttoUE, RowId<ttoUE>?, DatabaseType.Nullable<RowId<ttoUE>, DatabaseType.ROW_ID<ttoUE>>>,
|
||||
updatedTable: Table<ttnUE, ttoUE>,
|
||||
onDelete: ForeignRowReference.OnDelete? = null
|
||||
): ForeignRowReference<tnUE, ttnUE, RowId<ttnUE>, DatabaseType.ROW_ID<ttnUE>>
|
||||
|
||||
public fun <ttUE : Any, RT : RowId<ttUE>?, DT : DatabaseType<RT>> renameAndKeepForeignRowReference(
|
||||
public fun <ttUE : Any, RT, DT : DatabaseType<RT>> renameAndKeepForeignRowReference(
|
||||
frr: ForeignRowReference<toUE, ttUE, RT, DT>,
|
||||
onDelete: ForeignRowReference.OnDelete? = null
|
||||
): ForeignRowReference<tnUE, ttUE, RT, DT>
|
||||
|
||||
public fun <ttoUE : Any, ttnUE : Any> renameAndKeepForeignRowReferenceToUpdatedTable(
|
||||
frr: ForeignRowReference<toUE, ttoUE, RowId<ttoUE>, DatabaseType.ROW_ID<ttoUE>>,
|
||||
public fun <ttoUE : Any, oRT, oDT : DatabaseType<oRT>, ttnUE : Any, nRT, nDT : DatabaseType<nRT>> renameAndKeepForeignRowReferenceToUpdatedTable(
|
||||
frr: ForeignRowReference<toUE, ttoUE, oRT, oDT>,
|
||||
updatedType: nDT,
|
||||
updatedTable: Table<ttnUE, ttoUE>,
|
||||
onDelete: ForeignRowReference.OnDelete? = null
|
||||
): ForeignRowReference<tnUE, ttnUE, RowId<ttnUE>, DatabaseType.ROW_ID<ttnUE>>
|
||||
|
||||
public fun <ttoUE : Any, ttnUE : Any> renameAndKeepNullableForeignRowReferenceToUpdatedTable(
|
||||
frr: ForeignRowReference<toUE, ttoUE, RowId<ttoUE>?, DatabaseType.Nullable<RowId<ttoUE>, DatabaseType.ROW_ID<ttoUE>>>,
|
||||
updatedTable: Table<ttnUE, ttoUE>,
|
||||
onDelete: ForeignRowReference.OnDelete? = null
|
||||
): ForeignRowReference<tnUE, ttnUE, RowId<ttnUE>?, DatabaseType.Nullable<RowId<ttnUE>, DatabaseType.ROW_ID<ttnUE>>>
|
||||
): ForeignRowReference<tnUE, ttnUE, nRT, nDT>
|
||||
|
||||
public fun deleteForeignRowReference(frr: ForeignRowReference<toUE, *, *, *>)
|
||||
|
||||
public fun <ttUE : Any, RT : RowId<ttUE>?, DT : DatabaseType<RT>> keepForeignRowReferenceUntilUpgraded(
|
||||
public fun <ttUE : Any, RT, DT : DatabaseType<RT>> keepForeignRowReferenceUntilUpgraded(
|
||||
frr: ForeignRowReference<toUE, ttUE, RT, DT>,
|
||||
onDelete: ForeignRowReference.OnDelete? = null
|
||||
): ForeignRowReference<tnUE, ttUE, RT, DT>
|
||||
|
||||
public fun <ttoUE : Any, ttnUE : Any> keepForeignRowReferenceToUpdatedTableUntilUpgraded(
|
||||
frr: ForeignRowReference<toUE, ttoUE, RowId<ttoUE>, DatabaseType.ROW_ID<ttoUE>>,
|
||||
public fun <ttoUE : Any, oRT, oDT : DatabaseType<oRT>, ttnUE : Any, nRT, nDT : DatabaseType<nRT>> keepForeignRowReferenceToUpdatedTableUntilUpgraded(
|
||||
frr: ForeignRowReference<toUE, ttoUE, oRT, oDT>,
|
||||
updatedType: nDT,
|
||||
updatedTable: Table<ttnUE, ttoUE>,
|
||||
onDelete: ForeignRowReference.OnDelete? = null
|
||||
): ForeignRowReference<tnUE, ttnUE, RowId<ttnUE>, DatabaseType.ROW_ID<ttnUE>>
|
||||
): ForeignRowReference<tnUE, ttnUE, nRT, nDT>
|
||||
|
||||
public fun <ttoUE : Any, ttnUE : Any> keepNullableForeignRowReferenceToUpdatedTableUntilUpgraded(
|
||||
frr: ForeignRowReference<toUE, ttoUE, RowId<ttoUE>?, DatabaseType.Nullable<RowId<ttoUE>, DatabaseType.ROW_ID<ttoUE>>>,
|
||||
updatedTable: Table<ttnUE, ttoUE>,
|
||||
onDelete: ForeignRowReference.OnDelete? = null
|
||||
): ForeignRowReference<tnUE, ttnUE, RowId<ttnUE>?, DatabaseType.Nullable<RowId<ttnUE>, DatabaseType.ROW_ID<ttnUE>>>
|
||||
}
|
Loading…
Reference in New Issue
Block a user