Minor improvements

This commit is contained in:
Andrew Golovashevich 2024-12-30 17:55:19 +03:00
parent 5efb3b1c0e
commit fab47cb0ea
4 changed files with 43 additions and 12 deletions

View File

@ -15,8 +15,8 @@ public interface ModuleCreator {
} }
public fun <TableUserExtension : Any> createTable(namespace: Namespace, name: String, initializer: CreateTable<TableUserExtension>): Table<TableUserExtension, Nothing> public fun <TableUserExtension : Any> createTable(namespace: Namespace, name: String, initializer: CreateTable<TableUserExtension>): Table<TableUserExtension, Nothing>
public fun <TableUserExtension : Any> createTempSessionWideTable(initializer: CreateTable<TableUserExtension>): Table<TableUserExtension, Nothing> public fun <TableUserExtension : Any> createSessionScopeTemporaryTable(initializer: CreateTable<TableUserExtension>): Table<TableUserExtension, Nothing>
public fun <TableUserExtension : Any> createTempTransactionWideTable(initializer: CreateTable<TableUserExtension>): Table<TableUserExtension, Nothing> public fun <TableUserExtension : Any> createTransactionScopeTemporaryTable(initializer: CreateTable<TableUserExtension>): Table<TableUserExtension, Nothing>
public interface UpdateTable<TableNewUserExtension : Any, TableOldUserExtension : Any> { public interface UpdateTable<TableNewUserExtension : Any, TableOldUserExtension : Any> {
public fun updateTable(oldTable: Table<TableOldUserExtension, *>, updater: TableUpdater<TableNewUserExtension, TableOldUserExtension>): TableNewUserExtension public fun updateTable(oldTable: Table<TableOldUserExtension, *>, updater: TableUpdater<TableNewUserExtension, TableOldUserExtension>): TableNewUserExtension

View File

@ -1,5 +1,16 @@
package ru.landgrafhomyak.serdha.api.v0.ddl package ru.landgrafhomyak.serdha.api.v0.ddl
public interface Table<UserExtension : Any, PreviousUserExtension: Any> { public interface Table<UserExtension : Any, PreviousUserExtension : Any> {
public val userExtension: UserExtension public val userExtension: UserExtension
public val name: String
public val module: Module<*>
public enum class TemporaryType {
TRANSACTION_SCOPE,
CONNECTION_SCOPE
}
public val temporaryType: TemporaryType?
public val namespacesFromModuleRoot: List<String>
} }

View File

@ -30,9 +30,31 @@ public interface TableUpdater<TableNewUserExtension : Any, TableOldUserExtension
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType>> changeDefaultValue(c: Column<RuntimeType, DatabaseType, TableNewUserExtension>, d: DefaultConstraint<*, *, TableOldUserExtension>): DefaultConstraint<RuntimeType, DatabaseType, TableNewUserExtension> public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType>> changeDefaultValue(c: Column<RuntimeType, DatabaseType, TableNewUserExtension>, d: DefaultConstraint<*, *, TableOldUserExtension>): DefaultConstraint<RuntimeType, DatabaseType, TableNewUserExtension>
public fun deleteDefaultValue(i: DefaultConstraint<*, *, TableOldUserExtension>) public fun deleteDefaultValue(i: DefaultConstraint<*, *, TableOldUserExtension>)
public fun <TargetTableOldUserWrapper : Any, TargetTableNewUserWrapper : Any> keepForeignKeyToUpdatedTable(i: ForeignKey<TableOldUserExtension, TargetTableOldUserWrapper>, updatedTable: Table<TargetTableNewUserWrapper, TargetTableOldUserWrapper>): ForeignKey<TableNewUserExtension, TargetTableNewUserWrapper> public fun <TargetTableOldUserWrapper : Any, TargetTableNewUserWrapper : Any> keepForeignKeyToUpdatedTable(
public fun <TargetTableUserWrapper : Any> keepForeignKey(i: ForeignKey<TableOldUserExtension, TargetTableUserWrapper>): ForeignKey<TableNewUserExtension, TargetTableUserWrapper> fk: ForeignKey<TableOldUserExtension, TargetTableOldUserWrapper>,
public fun <TargetTableOldUserWrapper : Any, TargetTableNewUserWrapper : Any> renameAndKeepForeignKeyToUpdatedTable(i: ForeignKey<TableOldUserExtension, TargetTableOldUserWrapper>, updatedTable: Table<TargetTableNewUserWrapper, TargetTableOldUserWrapper>): ForeignKey<TableNewUserExtension, TargetTableNewUserWrapper> updatedTable: Table<TargetTableNewUserWrapper, TargetTableOldUserWrapper>,
public fun <TargetTableUserWrapper : Any> renameAndKeepForeignKey(i: ForeignKey<TableOldUserExtension, TargetTableUserWrapper>): ForeignKey<TableNewUserExtension, TargetTableUserWrapper> onUpdate: ForeignKey.OnUpdateAction? = null,
public fun deleteForeignKey(i: ForeignKey<TableOldUserExtension, *>) onDelete: ForeignKey.OnDeleteAction? = null
): ForeignKey<TableNewUserExtension, TargetTableNewUserWrapper>
public fun <TargetTableUserWrapper : Any> keepForeignKey(
fk: ForeignKey<TableOldUserExtension, TargetTableUserWrapper>,
onUpdate: ForeignKey.OnUpdateAction? = null,
onDelete: ForeignKey.OnDeleteAction? = null
): ForeignKey<TableNewUserExtension, TargetTableUserWrapper>
public fun <TargetTableOldUserWrapper : Any, TargetTableNewUserWrapper : Any> renameAndKeepForeignKeyToUpdatedTable(
fk: ForeignKey<TableOldUserExtension, TargetTableOldUserWrapper>,
updatedTable: Table<TargetTableNewUserWrapper, TargetTableOldUserWrapper>,
onUpdate: ForeignKey.OnUpdateAction? = null,
onDelete: ForeignKey.OnDeleteAction? = null
): ForeignKey<TableNewUserExtension, TargetTableNewUserWrapper>
public fun <TargetTableUserWrapper : Any> renameAndKeepForeignKey(
fk: ForeignKey<TableOldUserExtension, TargetTableUserWrapper>,
onUpdate: ForeignKey.OnUpdateAction? = null,
onDelete: ForeignKey.OnDeleteAction? = null
): ForeignKey<TableNewUserExtension, TargetTableUserWrapper>
public fun deleteForeignKey(fk: ForeignKey<TableOldUserExtension, *>)
} }

View File

@ -1,7 +1,5 @@
package ru.landgrafhomyak.serdha.api.v0.ddl package ru.landgrafhomyak.serdha.api.v0.ddl
public interface UniqueIndex<OwnerTableUserExtension : Any> { public interface UniqueIndex<OwnerTableUserExtension : Any> : Index<OwnerTableUserExtension> {
public val name: String public val areNullsDistinct: Boolean
public val table: Table<OwnerTableUserExtension, *>
public val columns: List<Column<*, *, OwnerTableUserExtension>>
} }