Table creating scopes and lazy column deleting
This commit is contained in:
parent
29f2435057
commit
dfd1cd950d
@ -42,7 +42,7 @@ public interface CreateModuleScope {
|
|||||||
* @see CreateModuleScope.createTransactionScopeTemporaryTable
|
* @see CreateModuleScope.createTransactionScopeTemporaryTable
|
||||||
* @see UpgradeModuleScope.TableUpgrade
|
* @see UpgradeModuleScope.TableUpgrade
|
||||||
*/
|
*/
|
||||||
public fun createTable(creator: ru.landgrafhomyak.serdha.api.v0.ddl.table.TableCreator<TableUserExtension>): TableUserExtension
|
public fun createTable(creator: ru.landgrafhomyak.serdha.api.v0.ddl.table.CreateTableScope<TableUserExtension>): TableUserExtension
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package ru.landgrafhomyak.serdha.api.v0.ddl.module
|
package ru.landgrafhomyak.serdha.api.v0.ddl.module
|
||||||
|
|
||||||
import ru.landgrafhomyak.serdha.api.v0.ddl.table.Table
|
import ru.landgrafhomyak.serdha.api.v0.ddl.table.Table
|
||||||
import ru.landgrafhomyak.serdha.api.v0.ddl.table.TableUpdater
|
import ru.landgrafhomyak.serdha.api.v0.ddl.table.UpdateTableScope
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Scope methods for upgrading [module template][ModuleTemplate].
|
* Scope methods for upgrading [module template][ModuleTemplate].
|
||||||
@ -36,7 +36,7 @@ public interface UpgradeModuleScope : CreateModuleScope {
|
|||||||
* @see UpgradeModuleScope.upgradeAndRenameTable
|
* @see UpgradeModuleScope.upgradeAndRenameTable
|
||||||
* @see UpgradeModuleScope.CreateTable
|
* @see UpgradeModuleScope.CreateTable
|
||||||
*/
|
*/
|
||||||
public fun upgradeTable(oldTable: Table<TableOldUserExtension, *>, upgrader: TableUpdater<TableNewUserExtension, TableOldUserExtension>): TableNewUserExtension
|
public fun upgradeTable(oldTable: Table<TableOldUserExtension, *>, upgrader: UpdateTableScope<TableNewUserExtension, TableOldUserExtension>): TableNewUserExtension
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,18 +5,18 @@ import ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseType
|
|||||||
import ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseTypesProvider
|
import ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseTypesProvider
|
||||||
import ru.landgrafhomyak.serdha.api.v0.ddl.types.RowId
|
import ru.landgrafhomyak.serdha.api.v0.ddl.types.RowId
|
||||||
|
|
||||||
public interface TableCreator<TableUserExtension : Any> {
|
public interface CreateTableScope<TableUserExtension : Any> {
|
||||||
public val expressionBuilder: Expression.Builder<TableUserExtension>
|
public val expressionBuilder: Expression.Builder<TableUserExtension>
|
||||||
|
|
||||||
public val types: DatabaseTypesProvider
|
public val types: DatabaseTypesProvider
|
||||||
|
|
||||||
public fun <RuntimeType, DatabaseType : ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseType<RuntimeType>> column(name: String, type: DatabaseType): Column<RuntimeType, DatabaseType, TableUserExtension>
|
public fun <RT, DT : DatabaseType<RT>> column(name: String, type: DT): Column<RT, DT, TableUserExtension>
|
||||||
|
|
||||||
public fun index(name: String, vararg columns: Column<*, *, TableUserExtension>): Index<TableUserExtension>
|
public fun index(name: String, vararg columns: Column<*, *, TableUserExtension>): Index<TableUserExtension>
|
||||||
|
|
||||||
public fun uniqueIndex(name: String, distinctNulls: Boolean, vararg columns: Column<*, *, TableUserExtension>): UniqueIndex<TableUserExtension>
|
public fun uniqueIndex(name: String, distinctNulls: Boolean, vararg columns: Column<*, *, TableUserExtension>): UniqueIndex<TableUserExtension>
|
||||||
public fun checkConstraint(name: String, constraint: Expression<Boolean, DatabaseType.BOOLEAN, TableUserExtension>): CheckConstraint<TableUserExtension>
|
public fun checkConstraint(name: String, constraint: Expression<Boolean, DatabaseType.BOOLEAN, TableUserExtension>): CheckConstraint<TableUserExtension>
|
||||||
public fun <RuntimeType : Any, DatabaseType : ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseType<RuntimeType>> defaultValue(c: Column<RuntimeType, DatabaseType, TableUserExtension>, expr: Expression<RuntimeType, DatabaseType, TableUserExtension>): DefaultConstraint<RuntimeType, DatabaseType, TableUserExtension>
|
public fun <RT : Any, DT : DatabaseType<RT>> defaultValue(c: Column<RT, DT, TableUserExtension>, expr: Expression<RT, DT, TableUserExtension>): DefaultConstraint<RT, DT, TableUserExtension>
|
||||||
|
|
||||||
@Suppress("PropertyName")
|
@Suppress("PropertyName")
|
||||||
public val rowId_column: Column<RowId<TableUserExtension>, DatabaseType<RowId<TableUserExtension>>, TableUserExtension>
|
public val rowId_column: Column<RowId<TableUserExtension>, DatabaseType<RowId<TableUserExtension>>, TableUserExtension>
|
@ -4,15 +4,12 @@ import ru.landgrafhomyak.serdha.api.v0.Expression
|
|||||||
import ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseType
|
import ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseType
|
||||||
|
|
||||||
|
|
||||||
public interface TableUpdater<TableNewUserExtension : Any, TableOldUserExtension : Any> : TableCreator<TableNewUserExtension> {
|
public interface UpdateTableScope<TableNewUserExtension : Any, TableOldUserExtension : Any> : CreateTableScope<TableNewUserExtension> {
|
||||||
public val oldExpressionBuilder: Expression.Builder<TableOldUserExtension>
|
public val oldExpressionBuilder: Expression.Builder<TableOldUserExtension>
|
||||||
|
|
||||||
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, TableOldUserExtension>): Column<RT, DT, TableNewUserExtension>
|
||||||
|
public fun <RT, DT : DatabaseType<RT>> keepColumnUntilUpgrading(c: Column<RT, DT, TableOldUserExtension>): Column<RT, DT, TableNewUserExtension>
|
||||||
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, TableOldUserExtension>, newName: String): Column<RT, DT, TableNewUserExtension>
|
||||||
public fun <RT, DT : DatabaseType<RT>> mapAndKeepColumn(c: Column<*, *, TableOldUserExtension>, newValue: Expression<RT, DT, TableOldUserExtension>, where: Expression<Boolean, DatabaseType.BOOLEAN, TableNewUserExtension>?): Column<RT, DT, TableNewUserExtension>
|
|
||||||
public fun <RT, DT : DatabaseType<RT>> mapAndKeepColumn(c: Column<*, *, TableOldUserExtension>, newValue: Expression<RT, DT, TableOldUserExtension>): Column<RT, DT, TableNewUserExtension> = this.mapAndKeepColumn(c, newValue, null)
|
|
||||||
public fun <RT, DT : DatabaseType<RT>> mapAndRenameAndKeepColumn(c: Column<*, *, TableOldUserExtension>, newName: String, newValue: Expression<RT, DT, TableOldUserExtension>, where: Expression<Boolean, DatabaseType.BOOLEAN, TableNewUserExtension>?): Column<RT, DT, TableNewUserExtension>
|
|
||||||
public fun <RT, DT : DatabaseType<RT>> mapAndRenameAndKeepColumn(c: Column<*, *, TableOldUserExtension>, newName: String, newValue: Expression<RT, DT, TableOldUserExtension>): Column<RT, DT, TableNewUserExtension> = this.mapAndRenameAndKeepColumn(c, newName, newValue, null)
|
|
||||||
public fun deleteColumn(c: Column<*, *, TableOldUserExtension>)
|
public fun deleteColumn(c: Column<*, *, TableOldUserExtension>)
|
||||||
|
|
||||||
public fun keepIndex(i: Index<TableOldUserExtension>): Index<TableNewUserExtension>
|
public fun keepIndex(i: Index<TableOldUserExtension>): Index<TableNewUserExtension>
|
||||||
@ -47,7 +44,6 @@ public interface TableUpdater<TableNewUserExtension : Any, TableOldUserExtension
|
|||||||
onDelete: ForeignRowReference.OnDeleteAction? = null
|
onDelete: ForeignRowReference.OnDeleteAction? = null
|
||||||
): ForeignRowReference<TableNewUserExtension, TargetTableUserWrapper>
|
): ForeignRowReference<TableNewUserExtension, TargetTableUserWrapper>
|
||||||
|
|
||||||
|
|
||||||
public fun <TargetTableOldUserWrapper : Any, TargetTableNewUserWrapper : Any> renameAndKeepForeignRowReferenceToUpdatedTable(
|
public fun <TargetTableOldUserWrapper : Any, TargetTableNewUserWrapper : Any> renameAndKeepForeignRowReferenceToUpdatedTable(
|
||||||
frr: ForeignRowReference<TableOldUserExtension, TargetTableOldUserWrapper>,
|
frr: ForeignRowReference<TableOldUserExtension, TargetTableOldUserWrapper>,
|
||||||
updatedTable: Table<TargetTableNewUserWrapper, TargetTableOldUserWrapper>,
|
updatedTable: Table<TargetTableNewUserWrapper, TargetTableOldUserWrapper>,
|
Loading…
Reference in New Issue
Block a user