[history/serdha] Table creating scopes and lazy column deleting
This commit is contained in:
parent
c43c1a2b70
commit
c02dc87ad2
@ -1,11 +1,13 @@
|
|||||||
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.dml.Delete
|
import ru.landgrafhomyak.serdha.api.v0.dml.CopyQuery
|
||||||
import ru.landgrafhomyak.serdha.api.v0.dml.Insert
|
import ru.landgrafhomyak.serdha.api.v0.dml.CreateCopyQueryScope
|
||||||
import ru.landgrafhomyak.serdha.api.v0.dml.InsertCreator
|
import ru.landgrafhomyak.serdha.api.v0.dml.CreateInsertQueryScope
|
||||||
import ru.landgrafhomyak.serdha.api.v0.dml.Select
|
import ru.landgrafhomyak.serdha.api.v0.dml.DeleteQuery
|
||||||
import ru.landgrafhomyak.serdha.api.v0.dml.Update
|
import ru.landgrafhomyak.serdha.api.v0.dml.InsertQuery
|
||||||
|
import ru.landgrafhomyak.serdha.api.v0.dml.SelectQuery
|
||||||
|
import ru.landgrafhomyak.serdha.api.v0.dml.UpdateQuery
|
||||||
import ru.landgrafhomyak.serdha.api.v0.runtime.SynchronizedDatabase
|
import ru.landgrafhomyak.serdha.api.v0.runtime.SynchronizedDatabase
|
||||||
import ru.landgrafhomyak.serdha.api.v0.runtime.Transaction
|
import ru.landgrafhomyak.serdha.api.v0.runtime.Transaction
|
||||||
|
|
||||||
@ -40,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
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -101,7 +103,7 @@ public interface CreateModuleScope {
|
|||||||
*
|
*
|
||||||
* @see CreateModuleScope.createSelectQuery
|
* @see CreateModuleScope.createSelectQuery
|
||||||
*/
|
*/
|
||||||
public fun createSelect(creator: ru.landgrafhomyak.serdha.api.v0.dml.SelectCreator<QueryUserWrapper>): QueryUserWrapper
|
public fun createSelect(creator: ru.landgrafhomyak.serdha.api.v0.dml.CreateSelectQueryScope<QueryUserWrapper>): QueryUserWrapper
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -115,7 +117,7 @@ public interface CreateModuleScope {
|
|||||||
*
|
*
|
||||||
* @see CreateModuleScope.createTemporarySelectQuery
|
* @see CreateModuleScope.createTemporarySelectQuery
|
||||||
*/
|
*/
|
||||||
public fun <QueryUserWrapper : Any> createSelectQuery(initializer: SelectQueryCreator<QueryUserWrapper>): Select<QueryUserWrapper>
|
public fun <QueryUserWrapper : Any> createSelectQuery(initializer: SelectQueryCreator<QueryUserWrapper>): SelectQuery<QueryUserWrapper>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates 'SELECT' query accessible only while the module is [creating][ModuleTemplate.ModuleCreator] or [updating][ModuleTemplate.ModuleUpgrade].
|
* Creates 'SELECT' query accessible only while the module is [creating][ModuleTemplate.ModuleCreator] or [updating][ModuleTemplate.ModuleUpgrade].
|
||||||
@ -129,7 +131,7 @@ public interface CreateModuleScope {
|
|||||||
*
|
*
|
||||||
* @see CreateModuleScope.createSelectQuery
|
* @see CreateModuleScope.createSelectQuery
|
||||||
*/
|
*/
|
||||||
public fun <QueryUserWrapper : Any> createTemporarySelectQuery(initializer: SelectQueryCreator<QueryUserWrapper>): Select<QueryUserWrapper>
|
public fun <QueryUserWrapper : Any> createTemporarySelectQuery(initializer: SelectQueryCreator<QueryUserWrapper>): SelectQuery<QueryUserWrapper>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Functional interface for creating 'INSERT ... VALUES' query.
|
* Functional interface for creating 'INSERT ... VALUES' query.
|
||||||
@ -139,9 +141,9 @@ public interface CreateModuleScope {
|
|||||||
* @param TableUserExtension User's type with descriptors related to table to which values will be inserted.
|
* @param TableUserExtension User's type with descriptors related to table to which values will be inserted.
|
||||||
* @param QueryUserWrapper User's type with descriptors related to query.
|
* @param QueryUserWrapper User's type with descriptors related to query.
|
||||||
*
|
*
|
||||||
* @see CreateModuleScope.createInsertParamsQuery
|
* @see CreateModuleScope.createInsertQuery
|
||||||
*/
|
*/
|
||||||
public interface InsertParamsQueryCreator<TableUserExtension : Any, QueryUserWrapper : Any> {
|
public interface InsertQueryCreator<TableUserExtension : Any, QueryUserWrapper : Any> {
|
||||||
/**
|
/**
|
||||||
* Scope method that uses [creator] to create a query.
|
* Scope method that uses [creator] to create a query.
|
||||||
*
|
*
|
||||||
@ -149,9 +151,9 @@ public interface CreateModuleScope {
|
|||||||
* @param creator Object with descriptor providers and factories.
|
* @param creator Object with descriptor providers and factories.
|
||||||
* @return User's object with query-related descriptors for future access.
|
* @return User's object with query-related descriptors for future access.
|
||||||
*
|
*
|
||||||
* @see CreateModuleScope.createInsertParamsQuery
|
* @see CreateModuleScope.createInsertQuery
|
||||||
*/
|
*/
|
||||||
public fun createInsert(table: Table<TableUserExtension, *>, creator: InsertCreator.InsertParams<TableUserExtension, QueryUserWrapper>): QueryUserWrapper
|
public fun createInsert(table: Table<TableUserExtension, *>, creator: CreateInsertQueryScope<TableUserExtension, QueryUserWrapper>): QueryUserWrapper
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -164,13 +166,13 @@ public interface CreateModuleScope {
|
|||||||
* @param initializer Query-related descriptors initializer.
|
* @param initializer Query-related descriptors initializer.
|
||||||
* @return Query descriptor.
|
* @return Query descriptor.
|
||||||
*
|
*
|
||||||
* @see CreateModuleScope.createTemporaryInsertParamsQuery
|
* @see CreateModuleScope.createTemporaryInsertQuery
|
||||||
*/
|
*/
|
||||||
public fun <TableUserExtension : Any, QueryUserWrapper : Any> createInsertParamsQuery(table: Table<TableUserExtension, *>, initializer: InsertParamsQueryCreator<TableUserExtension, QueryUserWrapper>): Insert.InsertParams<QueryUserWrapper>
|
public fun <TableUserExtension : Any, QueryUserWrapper : Any> createInsertQuery(table: Table<TableUserExtension, *>, initializer: InsertQueryCreator<TableUserExtension, QueryUserWrapper>): InsertQuery<QueryUserWrapper>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates 'INSERT ... VALUES' query accessible only while the module is [creating][ModuleTemplate.ModuleCreator] or [updating][ModuleTemplate.ModuleUpgrade].
|
* Creates 'INSERT ... VALUES' query accessible only while the module is [creating][ModuleTemplate.ModuleCreator] or [updating][ModuleTemplate.ModuleUpgrade].
|
||||||
* Using this function instead of [CreateModuleScope.createInsertParamsQuery] may help the driver to optimize caches and runtime indexes.
|
* Using this function instead of [CreateModuleScope.createInsertQuery] may help the driver to optimize caches and runtime indexes.
|
||||||
*
|
*
|
||||||
* On [module upgrading][ModuleTemplate.CreateModuleTemplatesScope.upgradeTemplate] must be recreated if needed.
|
* On [module upgrading][ModuleTemplate.CreateModuleTemplatesScope.upgradeTemplate] must be recreated if needed.
|
||||||
*
|
*
|
||||||
@ -179,9 +181,9 @@ public interface CreateModuleScope {
|
|||||||
* @param initializer Query-related descriptors initializer.
|
* @param initializer Query-related descriptors initializer.
|
||||||
* @return Query descriptor.
|
* @return Query descriptor.
|
||||||
*
|
*
|
||||||
* @see CreateModuleScope.createInsertParamsQuery
|
* @see CreateModuleScope.createInsertQuery
|
||||||
*/
|
*/
|
||||||
public fun <TableUserExtension : Any, QueryUserWrapper : Any> createTemporaryInsertParamsQuery(table: Table<TableUserExtension, *>, initializer: InsertParamsQueryCreator<TableUserExtension, QueryUserWrapper>): Insert.InsertParams<QueryUserWrapper>
|
public fun <TableUserExtension : Any, QueryUserWrapper : Any> createTemporaryInsertQuery(table: Table<TableUserExtension, *>, initializer: InsertQueryCreator<TableUserExtension, QueryUserWrapper>): InsertQuery<QueryUserWrapper>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Functional interface for creating 'INSERT ... FROM' query.
|
* Functional interface for creating 'INSERT ... FROM' query.
|
||||||
@ -191,9 +193,9 @@ public interface CreateModuleScope {
|
|||||||
* @param TableUserExtension User's type with descriptors related to table to which values will be inserted.
|
* @param TableUserExtension User's type with descriptors related to table to which values will be inserted.
|
||||||
* @param QueryUserWrapper User's type with descriptors related to query.
|
* @param QueryUserWrapper User's type with descriptors related to query.
|
||||||
*
|
*
|
||||||
* @see CreateModuleScope.createInsertFromQueryQuery
|
* @see CreateModuleScope.createCopyQuery
|
||||||
*/
|
*/
|
||||||
public interface InsertFromQueryQueryCreator<TableUserExtension : Any, QueryUserWrapper : Any> {
|
public interface CopyQueryCreator<TableUserExtension : Any, QueryUserWrapper : Any> {
|
||||||
/**
|
/**
|
||||||
* Scope method that uses [creator] to create a query.
|
* Scope method that uses [creator] to create a query.
|
||||||
*
|
*
|
||||||
@ -201,9 +203,9 @@ public interface CreateModuleScope {
|
|||||||
* @param creator Object with descriptor providers and factories.
|
* @param creator Object with descriptor providers and factories.
|
||||||
* @return User's object with query-related descriptors for future access.
|
* @return User's object with query-related descriptors for future access.
|
||||||
*
|
*
|
||||||
* @see CreateModuleScope.createInsertFromQueryQuery
|
* @see CreateModuleScope.createCopyQuery
|
||||||
*/
|
*/
|
||||||
public fun createInsert(table: Table<TableUserExtension, *>, creator: InsertCreator.InsertFromQuery<TableUserExtension, QueryUserWrapper>): QueryUserWrapper
|
public fun createCopy(table: Table<TableUserExtension, *>, creator: CreateCopyQueryScope<TableUserExtension, QueryUserWrapper>): QueryUserWrapper
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -215,13 +217,13 @@ public interface CreateModuleScope {
|
|||||||
* @param initializer Query-related descriptors initializer.
|
* @param initializer Query-related descriptors initializer.
|
||||||
* @return Query descriptor.
|
* @return Query descriptor.
|
||||||
*
|
*
|
||||||
* @see CreateModuleScope.createTemporaryInsertFromQueryQuery
|
* @see CreateModuleScope.createTemporaryCopyQuery
|
||||||
*/
|
*/
|
||||||
public fun <TableUserExtension : Any, QueryUserWrapper : Any> createInsertFromQueryQuery(table: Table<TableUserExtension, *>, initializer: InsertFromQueryQueryCreator<TableUserExtension, QueryUserWrapper>): Insert.InsertFromQuery<QueryUserWrapper>
|
public fun <TableUserExtension : Any, QueryUserWrapper : Any> createCopyQuery(table: Table<TableUserExtension, *>, initializer: CopyQueryCreator<TableUserExtension, QueryUserWrapper>): CopyQuery<QueryUserWrapper>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates 'INSERT ... FROM' query accessible only while the module is [creating][ModuleTemplate.ModuleCreator] or [updating][ModuleTemplate.ModuleUpgrade].
|
* Creates 'INSERT ... FROM' query accessible only while the module is [creating][ModuleTemplate.ModuleCreator] or [updating][ModuleTemplate.ModuleUpgrade].
|
||||||
* Using this function instead of [CreateModuleScope.createInsertFromQueryQuery] may help the driver to optimize caches and runtime indexes.
|
* Using this function instead of [CreateModuleScope.createCopyQuery] may help the driver to optimize caches and runtime indexes.
|
||||||
*
|
*
|
||||||
* On [module upgrading][ModuleTemplate.CreateModuleTemplatesScope.upgradeTemplate] must be recreated if needed.
|
* On [module upgrading][ModuleTemplate.CreateModuleTemplatesScope.upgradeTemplate] must be recreated if needed.
|
||||||
*
|
*
|
||||||
@ -229,9 +231,9 @@ public interface CreateModuleScope {
|
|||||||
* @param initializer Query-related descriptors initializer.
|
* @param initializer Query-related descriptors initializer.
|
||||||
* @return Query descriptor.
|
* @return Query descriptor.
|
||||||
*
|
*
|
||||||
* @see CreateModuleScope.createInsertFromQueryQuery
|
* @see CreateModuleScope.createCopyQuery
|
||||||
*/
|
*/
|
||||||
public fun <TableUserExtension : Any, QueryUserWrapper : Any> createTemporaryInsertFromQueryQuery(table: Table<TableUserExtension, *>, initializer: InsertFromQueryQueryCreator<TableUserExtension, QueryUserWrapper>): Insert.InsertFromQuery<QueryUserWrapper>
|
public fun <TableUserExtension : Any, QueryUserWrapper : Any> createTemporaryCopyQuery(table: Table<TableUserExtension, *>, initializer: CopyQueryCreator<TableUserExtension, QueryUserWrapper>): CopyQuery<QueryUserWrapper>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Functional interface for creating 'UPDATE' query.
|
* Functional interface for creating 'UPDATE' query.
|
||||||
@ -253,7 +255,7 @@ public interface CreateModuleScope {
|
|||||||
*
|
*
|
||||||
* @see CreateModuleScope.createUpdateQuery
|
* @see CreateModuleScope.createUpdateQuery
|
||||||
*/
|
*/
|
||||||
public fun createUpdate(table: Table<TableUserExtension, *>, creator: ru.landgrafhomyak.serdha.api.v0.dml.UpdateCreator<TableUserExtension, QueryUserWrapper>): QueryUserWrapper
|
public fun createUpdate(table: Table<TableUserExtension, *>, creator: ru.landgrafhomyak.serdha.api.v0.dml.CreateUpdateQueryScope<TableUserExtension, QueryUserWrapper>): QueryUserWrapper
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -267,7 +269,7 @@ public interface CreateModuleScope {
|
|||||||
*
|
*
|
||||||
* @see CreateModuleScope.createTemporaryUpdateQuery
|
* @see CreateModuleScope.createTemporaryUpdateQuery
|
||||||
*/
|
*/
|
||||||
public fun <TableUserExtension : Any, QueryUserWrapper : Any> createUpdateQuery(table: Table<TableUserExtension, *>, initializer: UpdateQueryCreator<TableUserExtension, QueryUserWrapper>): Update<QueryUserWrapper>
|
public fun <TableUserExtension : Any, QueryUserWrapper : Any> createUpdateQuery(table: Table<TableUserExtension, *>, initializer: UpdateQueryCreator<TableUserExtension, QueryUserWrapper>): UpdateQuery<QueryUserWrapper>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates 'UPDATE' query accessible only while the module is [creating][ModuleTemplate.ModuleCreator] or [updating][ModuleTemplate.ModuleUpgrade].
|
* Creates 'UPDATE' query accessible only while the module is [creating][ModuleTemplate.ModuleCreator] or [updating][ModuleTemplate.ModuleUpgrade].
|
||||||
@ -281,7 +283,7 @@ public interface CreateModuleScope {
|
|||||||
*
|
*
|
||||||
* @see CreateModuleScope.createUpdateQuery
|
* @see CreateModuleScope.createUpdateQuery
|
||||||
*/
|
*/
|
||||||
public fun <TableUserExtension : Any, QueryUserWrapper : Any> createTemporaryUpdateQuery(table: Table<TableUserExtension, *>, initializer: UpdateQueryCreator<TableUserExtension, QueryUserWrapper>): Update<QueryUserWrapper>
|
public fun <TableUserExtension : Any, QueryUserWrapper : Any> createTemporaryUpdateQuery(table: Table<TableUserExtension, *>, initializer: UpdateQueryCreator<TableUserExtension, QueryUserWrapper>): UpdateQuery<QueryUserWrapper>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Functional interface for creating 'DELETE' query.
|
* Functional interface for creating 'DELETE' query.
|
||||||
@ -303,7 +305,7 @@ public interface CreateModuleScope {
|
|||||||
*
|
*
|
||||||
* @see CreateModuleScope.createDeleteQuery
|
* @see CreateModuleScope.createDeleteQuery
|
||||||
*/
|
*/
|
||||||
public fun createDelete(table: Table<TableUserExtension, *>, creator: ru.landgrafhomyak.serdha.api.v0.dml.DeleteCreator<TableUserExtension, QueryUserWrapper>): QueryUserWrapper
|
public fun createDelete(table: Table<TableUserExtension, *>, creator: ru.landgrafhomyak.serdha.api.v0.dml.CreateDeleteQueryScope<TableUserExtension, QueryUserWrapper>): QueryUserWrapper
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -317,7 +319,7 @@ public interface CreateModuleScope {
|
|||||||
*
|
*
|
||||||
* @see CreateModuleScope.createTemporaryDeleteQuery
|
* @see CreateModuleScope.createTemporaryDeleteQuery
|
||||||
*/
|
*/
|
||||||
public fun <TableUserExtension : Any, QueryUserWrapper : Any> createDeleteQuery(table: Table<TableUserExtension, *>, initializer: DeleteQueryCreator<TableUserExtension, QueryUserWrapper>): Delete<QueryUserWrapper>
|
public fun <TableUserExtension : Any, QueryUserWrapper : Any> createDeleteQuery(table: Table<TableUserExtension, *>, initializer: DeleteQueryCreator<TableUserExtension, QueryUserWrapper>): DeleteQuery<QueryUserWrapper>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates 'DELETE' query accessible only while the module is [creating][ModuleTemplate.ModuleCreator] or [updating][ModuleTemplate.ModuleUpgrade].
|
* Creates 'DELETE' query accessible only while the module is [creating][ModuleTemplate.ModuleCreator] or [updating][ModuleTemplate.ModuleUpgrade].
|
||||||
@ -331,7 +333,7 @@ public interface CreateModuleScope {
|
|||||||
*
|
*
|
||||||
* @see CreateModuleScope.createDeleteQuery
|
* @see CreateModuleScope.createDeleteQuery
|
||||||
*/
|
*/
|
||||||
public fun <TableUserExtension : Any, QueryUserWrapper : Any> createTemporaryDeleteQuery(table: Table<TableUserExtension, *>, initializer: DeleteQueryCreator<TableUserExtension, QueryUserWrapper>): Delete<QueryUserWrapper>
|
public fun <TableUserExtension : Any, QueryUserWrapper : Any> createTemporaryDeleteQuery(table: Table<TableUserExtension, *>, initializer: DeleteQueryCreator<TableUserExtension, QueryUserWrapper>): DeleteQuery<QueryUserWrapper>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Replaces [specified namespace][rootNs] with schema provided by [template].
|
* Replaces [specified namespace][rootNs] with schema provided by [template].
|
||||||
|
@ -1,9 +1,13 @@
|
|||||||
package ru.landgrafhomyak.serdha.api.v0.ddl.table
|
package ru.landgrafhomyak.serdha.api.v0.ddl.table
|
||||||
|
|
||||||
public interface Column<RuntimeType, DatabaseType : ColumnType<RuntimeType>, TableUserExtension : Any> {
|
import kotlin.jvm.JvmName
|
||||||
|
import ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseType
|
||||||
|
import ru.landgrafhomyak.serdha.api.v0.dml.SelectedTable
|
||||||
|
|
||||||
|
public interface Column<RT, DT : DatabaseType<RT>, TableUserExtension : Any> {
|
||||||
public val name: String
|
public val name: String
|
||||||
|
|
||||||
public val type: DatabaseType
|
public val type: DT
|
||||||
|
|
||||||
public val table: Table<TableUserExtension, *>
|
public val table: Table<TableUserExtension, *>
|
||||||
}
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
package ru.landgrafhomyak.serdha.api.v0.ddl.table
|
||||||
|
|
||||||
|
import ru.landgrafhomyak.serdha.api.v0.Expression
|
||||||
|
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.RowId
|
||||||
|
|
||||||
|
public interface CreateTableScope<TableUserExtension : Any> {
|
||||||
|
public val expressionBuilder: Expression.Builder<TableUserExtension>
|
||||||
|
|
||||||
|
public val types: DatabaseTypesProvider
|
||||||
|
|
||||||
|
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 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 <RT : Any, DT : DatabaseType<RT>> defaultValue(c: Column<RT, DT, TableUserExtension>, expr: Expression<RT, DT, TableUserExtension>): DefaultConstraint<RT, DT, TableUserExtension>
|
||||||
|
|
||||||
|
@Suppress("PropertyName")
|
||||||
|
public val rowId_column: Column<RowId<TableUserExtension>, DatabaseType<RowId<TableUserExtension>>, TableUserExtension>
|
||||||
|
|
||||||
|
@Suppress("PropertyName")
|
||||||
|
public val rowId_uniqueConstraint: UniqueIndex<TableUserExtension>
|
||||||
|
|
||||||
|
public fun <TargetTableUserWrapper : Any> selfRowReference(
|
||||||
|
onDelete: ForeignRowReference.OnDeleteAction,
|
||||||
|
toColumn: Column<RowId<TargetTableUserWrapper>, DatabaseType.ROW_ID<TargetTableUserWrapper>, TargetTableUserWrapper>,
|
||||||
|
): ForeignRowReference<TableUserExtension, TableUserExtension>
|
||||||
|
|
||||||
|
public fun <TargetTableUserWrapper : Any> foreignRowReference(
|
||||||
|
fromColumn: Column<RowId<TargetTableUserWrapper>, DatabaseType.ROW_ID<TargetTableUserWrapper>, TableUserExtension>,
|
||||||
|
toTable: Table<TargetTableUserWrapper, *>,
|
||||||
|
toColumn: Column<RowId<TargetTableUserWrapper>, DatabaseType.ROW_ID<TargetTableUserWrapper>, TargetTableUserWrapper>,
|
||||||
|
onDelete: ForeignRowReference.OnDeleteAction,
|
||||||
|
): ForeignRowReference<TableUserExtension, TargetTableUserWrapper>
|
||||||
|
}
|
@ -1,35 +0,0 @@
|
|||||||
package ru.landgrafhomyak.serdha.api.v0.ddl.table
|
|
||||||
|
|
||||||
import ru.landgrafhomyak.serdha.api.v0.Expression
|
|
||||||
|
|
||||||
public interface TableCreator<TableUserExtension : Any> {
|
|
||||||
public val expressionBuilder: Expression.Builder<TableUserExtension>
|
|
||||||
|
|
||||||
public val types: ColumnType.Builder
|
|
||||||
|
|
||||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType>> column(name: String, type: DatabaseType): Column<RuntimeType, DatabaseType, 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 checkConstraint(name: String, constraint: Expression<Boolean, ColumnType.BOOLEAN, TableUserExtension>): CheckConstraint<TableUserExtension>
|
|
||||||
public fun <RuntimeType : Any, DatabaseType : ColumnType<RuntimeType>> defaultValue(c: Column<RuntimeType, DatabaseType, TableUserExtension>, expr: Expression<RuntimeType, DatabaseType, TableUserExtension>): DefaultConstraint<RuntimeType, DatabaseType, TableUserExtension>
|
|
||||||
|
|
||||||
@Suppress("PropertyName")
|
|
||||||
public val rowId_column: Column<RowId<TableUserExtension>, ColumnType<RowId<TableUserExtension>>, TableUserExtension>
|
|
||||||
|
|
||||||
@Suppress("PropertyName")
|
|
||||||
public val rowId_uniqueConstraint: UniqueIndex<TableUserExtension>
|
|
||||||
|
|
||||||
public fun <TargetTableUserWrapper : Any> selfRowReference(
|
|
||||||
onDelete: ForeignRowReference.OnDeleteAction,
|
|
||||||
toColumn: Column<RowId<TargetTableUserWrapper>, ColumnType.ROW_ID<TargetTableUserWrapper>, TargetTableUserWrapper>,
|
|
||||||
): ForeignRowReference<TableUserExtension, TableUserExtension>
|
|
||||||
|
|
||||||
public fun <TargetTableUserWrapper : Any> foreignRowReference(
|
|
||||||
fromColumn: Column<RowId<TargetTableUserWrapper>, ColumnType.ROW_ID<TargetTableUserWrapper>, TableUserExtension>,
|
|
||||||
toTable: Table<TargetTableUserWrapper, *>,
|
|
||||||
toColumn: Column<RowId<TargetTableUserWrapper>, ColumnType.ROW_ID<TargetTableUserWrapper>, TargetTableUserWrapper>,
|
|
||||||
onDelete: ForeignRowReference.OnDeleteAction,
|
|
||||||
): ForeignRowReference<TableUserExtension, TargetTableUserWrapper>
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user