Unified DML creators
This commit is contained in:
parent
ae1430b696
commit
ab93292246
@ -2,9 +2,9 @@ package ru.landgrafhomyak.serdha.api.v0.ddl
|
||||
|
||||
import ru.landgrafhomyak.serdha.api.v0.Expression
|
||||
|
||||
public interface CheckConstraint<TableUserWrapper : Any> {
|
||||
public interface CheckConstraint<TableUserExtension : Any> {
|
||||
public val name: String
|
||||
public val table: Table<TableUserWrapper, *>
|
||||
public val constraint: Expression<Boolean, ColumnType.BOOLEAN, TableUserWrapper>
|
||||
public val affectedColumns: List<Column<*, *, TableUserWrapper>>
|
||||
public val table: Table<TableUserExtension, *>
|
||||
public val constraint: Expression<Boolean, ColumnType.BOOLEAN, TableUserExtension>
|
||||
public val affectedColumns: List<Column<*, *, TableUserExtension>>
|
||||
}
|
@ -1,9 +1,9 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.ddl
|
||||
|
||||
public interface Column<RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>, TableUserWrapper : Any> /*: Expression<RuntimeType, DatabaseType>*/ {
|
||||
public interface Column<RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>, TableUserExtension : Any> {
|
||||
public val name: String
|
||||
|
||||
public val type: DatabaseType
|
||||
|
||||
public val table: Table<TableUserWrapper, *>
|
||||
public val table: Table<TableUserExtension, *>
|
||||
}
|
@ -2,11 +2,11 @@ package ru.landgrafhomyak.serdha.api.v0.ddl
|
||||
|
||||
import kotlin.jvm.JvmStatic
|
||||
|
||||
public interface ForeignKey<ContainerTableUserWrapper : Any, TargetTableUserWrapper : Any> {
|
||||
public val fromTable: Table<ContainerTableUserWrapper, *>
|
||||
public val fromColumns: List<Column<*, *, ContainerTableUserWrapper>>
|
||||
public val toTable: Table<TargetTableUserWrapper, *>
|
||||
public val toColumns: List<Column<*, *, TargetTableUserWrapper>>
|
||||
public interface ForeignKey<ContainerTableUserExtension : Any, TargetTableUserExtension : Any> {
|
||||
public val fromTable: Table<ContainerTableUserExtension, *>
|
||||
public val fromColumns: List<Column<*, *, ContainerTableUserExtension>>
|
||||
public val toTable: Table<TargetTableUserExtension, *>
|
||||
public val toColumns: List<Column<*, *, TargetTableUserExtension>>
|
||||
|
||||
public enum class OnUpdateAction {
|
||||
NO_ACTION,
|
||||
|
@ -1,7 +1,7 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.ddl
|
||||
|
||||
public interface Index<OwnerTableUserWrapper : Any> {
|
||||
public interface Index<OwnerTableUserExtension : Any> {
|
||||
public val name: String
|
||||
public val table: Table<OwnerTableUserWrapper, *>
|
||||
public val columns: List<Column<*, *, OwnerTableUserWrapper>>
|
||||
public val table: Table<OwnerTableUserExtension, *>
|
||||
public val columns: List<Column<*, *, OwnerTableUserExtension>>
|
||||
}
|
@ -2,8 +2,8 @@ package ru.landgrafhomyak.serdha.api.v0.ddl
|
||||
|
||||
import ru.landgrafhomyak.serdha.api.v0.runtime.SynchronizedDatabase
|
||||
|
||||
public interface Module<W : Any> {
|
||||
public val wrapper: W
|
||||
public interface Module<ModuleUserExtension : Any> {
|
||||
public val userExtension: ModuleUserExtension
|
||||
|
||||
public val versionKey: String
|
||||
|
||||
|
@ -10,44 +10,44 @@ import ru.landgrafhomyak.serdha.api.v0.dml.Update
|
||||
import ru.landgrafhomyak.serdha.api.v0.dml.UpdateCreator
|
||||
|
||||
public interface ModuleModifyingRound {
|
||||
public fun interface CreateTable<TableUserWrapper : Any> {
|
||||
public fun createTable(creator: TableCreator<TableUserWrapper>): TableUserWrapper
|
||||
public fun interface CreateTable<TableUserExtension : Any> {
|
||||
public fun createTable(creator: TableCreator<TableUserExtension>): TableUserExtension
|
||||
}
|
||||
|
||||
public fun <TableUserWrapper : Any> createTable(namespace: Namespace, name: String, initializer: CreateTable<TableUserWrapper>): Table<TableUserWrapper, Nothing>
|
||||
public fun <TableUserExtension : Any> createTable(namespace: Namespace, name: String, initializer: CreateTable<TableUserExtension>): Table<TableUserExtension, Nothing>
|
||||
|
||||
public fun interface UpdateTable<TableNewUserWrapper : Any, TableOldUserWrapper : Any> {
|
||||
public fun updateTable(oldTable: Table<TableOldUserWrapper, *>, updater: TableUpdater<TableNewUserWrapper, TableOldUserWrapper>): TableNewUserWrapper
|
||||
public fun interface UpdateTable<TableNewUserExtension : Any, TableOldUserExtension : Any> {
|
||||
public fun updateTable(oldTable: Table<TableOldUserExtension, *>, updater: TableUpdater<TableNewUserExtension, TableOldUserExtension>): TableNewUserExtension
|
||||
}
|
||||
|
||||
public fun <TableNewUserWrapper : Any, TableOldUserWrapper : Any> updateTable(
|
||||
oldTable: Table<TableOldUserWrapper, *>,
|
||||
initializer: UpdateTable<TableNewUserWrapper, TableOldUserWrapper>
|
||||
): Table<TableNewUserWrapper, TableOldUserWrapper>
|
||||
public fun <TableNewUserExtension : Any, TableOldUserExtension : Any> updateTable(
|
||||
oldTable: Table<TableOldUserExtension, *>,
|
||||
initializer: UpdateTable<TableNewUserExtension, TableOldUserExtension>
|
||||
): Table<TableNewUserExtension, TableOldUserExtension>
|
||||
|
||||
public fun <TableNewUserWrapper : Any, TableOldUserWrapper : Any> renameTable(
|
||||
table: Table<TableNewUserWrapper, TableOldUserWrapper>,
|
||||
public fun <TableNewUserExtension : Any, TableOldUserExtension : Any> renameTable(
|
||||
table: Table<TableNewUserExtension, TableOldUserExtension>,
|
||||
newName: String
|
||||
): Table<TableNewUserWrapper, TableOldUserWrapper>
|
||||
): Table<TableNewUserExtension, TableOldUserExtension>
|
||||
|
||||
public fun <TableNewUserWrapper : Any, TableOldUserWrapper : Any> renameTable(
|
||||
table: Table<TableNewUserWrapper, TableOldUserWrapper>,
|
||||
public fun <TableNewUserExtension : Any, TableOldUserExtension : Any> renameTable(
|
||||
table: Table<TableNewUserExtension, TableOldUserExtension>,
|
||||
newNamespace: Namespace,
|
||||
newName: String
|
||||
): Table<TableNewUserWrapper, TableOldUserWrapper>
|
||||
): Table<TableNewUserExtension, TableOldUserExtension>
|
||||
|
||||
public fun <TableNewUserWrapper : Any, TableOldUserWrapper : Any> updateAndRenameTable(
|
||||
table: Table<TableOldUserWrapper, *>,
|
||||
public fun <TableNewUserExtension : Any, TableOldUserExtension : Any> updateAndRenameTable(
|
||||
table: Table<TableOldUserExtension, *>,
|
||||
newName: String,
|
||||
initializer: UpdateTable<TableNewUserWrapper, TableOldUserWrapper>
|
||||
): Table<TableNewUserWrapper, TableOldUserWrapper>
|
||||
initializer: UpdateTable<TableNewUserExtension, TableOldUserExtension>
|
||||
): Table<TableNewUserExtension, TableOldUserExtension>
|
||||
|
||||
public fun <TableNewUserWrapper : Any, TableOldUserWrapper : Any> updateAndRenameTable(
|
||||
table: Table<TableNewUserWrapper, TableOldUserWrapper>,
|
||||
public fun <TableNewUserExtension : Any, TableOldUserExtension : Any> updateAndRenameTable(
|
||||
table: Table<TableNewUserExtension, TableOldUserExtension>,
|
||||
newNamespace: Namespace,
|
||||
newName: String,
|
||||
initializer: UpdateTable<TableNewUserWrapper, TableOldUserWrapper>
|
||||
): Table<TableNewUserWrapper, TableOldUserWrapper>
|
||||
initializer: UpdateTable<TableNewUserExtension, TableOldUserExtension>
|
||||
): Table<TableNewUserExtension, TableOldUserExtension>
|
||||
|
||||
public fun interface CreateSelect<QueryUserWrapper : Any> {
|
||||
public fun createSelect(creator: SelectCreator<QueryUserWrapper>): QueryUserWrapper
|
||||
@ -55,24 +55,24 @@ public interface ModuleModifyingRound {
|
||||
|
||||
public fun <QueryUserWrapper : Any> createSelect(initializer: CreateSelect<QueryUserWrapper>): Select<QueryUserWrapper>
|
||||
|
||||
public fun interface CreateInsert<TableUserWrapper : Any, QueryUserWrapper : Any> {
|
||||
public fun createInsert(table: Table<TableUserWrapper, *>, creator: InsertCreator<TableUserWrapper, QueryUserWrapper>): QueryUserWrapper
|
||||
public fun interface CreateInsert<TableUserExtension : Any, QueryUserWrapper : Any> {
|
||||
public fun createInsert(table: Table<TableUserExtension, *>, creator: InsertCreator<TableUserExtension, QueryUserWrapper>): QueryUserWrapper
|
||||
}
|
||||
|
||||
public fun <TableUserWrapper : Any, QueryUserWrapper : Any> createInsert(table: Table<TableUserWrapper, *>, initializer: CreateInsert<TableUserWrapper, QueryUserWrapper>): Insert<QueryUserWrapper>
|
||||
public fun <TableUserExtension : Any, QueryUserWrapper : Any> createInsert(table: Table<TableUserExtension, *>, initializer: CreateInsert<TableUserExtension, QueryUserWrapper>): Insert<QueryUserWrapper>
|
||||
|
||||
public fun interface CreateUpdate<TableUserWrapper : Any, QueryUserWrapper : Any> {
|
||||
public fun createUpdate(table: Table<TableUserWrapper, *>, creator: UpdateCreator<TableUserWrapper, QueryUserWrapper>): QueryUserWrapper
|
||||
public fun interface CreateUpdate<TableUserExtension : Any, QueryUserWrapper : Any> {
|
||||
public fun createUpdate(table: Table<TableUserExtension, *>, creator: UpdateCreator<TableUserExtension, QueryUserWrapper>): QueryUserWrapper
|
||||
}
|
||||
|
||||
public fun <TableUserWrapper : Any, QueryUserWrapper : Any> createUpdate(table: Table<TableUserWrapper, *>, initializer: CreateUpdate<TableUserWrapper, QueryUserWrapper>): Update<QueryUserWrapper>
|
||||
public fun <TableUserExtension : Any, QueryUserWrapper : Any> createUpdate(table: Table<TableUserExtension, *>, initializer: CreateUpdate<TableUserExtension, QueryUserWrapper>): Update<QueryUserWrapper>
|
||||
|
||||
public fun interface CreateDelete<TableUserWrapper : Any, QueryUserWrapper : Any> {
|
||||
public fun createDelete(table: Table<TableUserWrapper, *>, creator: DeleteCreator<TableUserWrapper, QueryUserWrapper>): QueryUserWrapper
|
||||
public fun interface CreateDelete<TableUserExtension : Any, QueryUserWrapper : Any> {
|
||||
public fun createDelete(table: Table<TableUserExtension, *>, creator: DeleteCreator<TableUserExtension, QueryUserWrapper>): QueryUserWrapper
|
||||
}
|
||||
|
||||
public fun <TableUserWrapper : Any, QueryUserWrapper : Any> createDelete(table: Table<TableUserWrapper, *>, initializer: CreateDelete<TableUserWrapper, QueryUserWrapper>): Delete<QueryUserWrapper>
|
||||
public fun <TableUserExtension : Any, QueryUserWrapper : Any> createDelete(table: Table<TableUserExtension, *>, initializer: CreateDelete<TableUserExtension, QueryUserWrapper>): Delete<QueryUserWrapper>
|
||||
|
||||
public fun <W : Any> substituteModule(rootNs: Namespace, template: ModuleTemplate<W>): Module<W>
|
||||
public fun <W : Any> upgradeModule(oldModule: Module<*>, rootNs: Namespace, template: ModuleTemplate<W>): Module<W>
|
||||
public fun <ModuleUserExtension : Any> substituteModule(rootNs: Namespace, template: ModuleTemplate<ModuleUserExtension>): Module<ModuleUserExtension>
|
||||
public fun <ModuleUserExtension : Any> upgradeModule(oldModule: Module<*>, rootNs: Namespace, template: ModuleTemplate<ModuleUserExtension>): Module<ModuleUserExtension>
|
||||
}
|
@ -1,10 +1,10 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.ddl
|
||||
|
||||
public interface ModuleTemplate<W : Any> {
|
||||
public fun <NW : Any> modify(
|
||||
public interface ModuleTemplate<ModuleUserExtension : Any> {
|
||||
public fun <NewModuleUserExtension : Any> modify(
|
||||
newVersionKey: String,
|
||||
updater: (oldModule: ModuleTemplate<W>, rootNs: Namespace, updater: ModuleModifyingRound) -> NW
|
||||
): ModuleTemplate<NW>
|
||||
updater: (oldModule: ModuleTemplate<ModuleUserExtension>, rootNs: Namespace, updater: ModuleModifyingRound) -> NewModuleUserExtension
|
||||
): ModuleTemplate<NewModuleUserExtension>
|
||||
|
||||
public val versionKey: String
|
||||
}
|
@ -1,3 +1,3 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.ddl
|
||||
|
||||
public interface RowId<OwnerTableUserWrapper: Any>
|
||||
public interface RowId<OwnerTableUserExtension: Any>
|
@ -1,5 +1,5 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.ddl
|
||||
|
||||
public interface Table<UserWrapper : Any, PreviousUserWrapper: Any> {
|
||||
public val wrapper: UserWrapper
|
||||
public interface Table<UserExtension : Any, PreviousUserExtension: Any> {
|
||||
public val userExtension: UserExtension
|
||||
}
|
@ -3,18 +3,18 @@ package ru.landgrafhomyak.serdha.api.v0.ddl
|
||||
import kotlin.jvm.JvmName
|
||||
import ru.landgrafhomyak.serdha.api.v0.Expression
|
||||
|
||||
public interface TableCreator<TableUserWrapper : Any> {
|
||||
public interface TableCreator<TableUserExtension : Any> {
|
||||
/**
|
||||
* Offers column of type [D][type] with `NOT NULL` constraint named [name] and runtime type [RuntimeType].
|
||||
*
|
||||
* @return Descriptor of offered column for future operations.
|
||||
*/
|
||||
public fun <RuntimeType : Any, DatabaseType : ColumnType<RuntimeType>> column(name: String, type: DatabaseType): Column<RuntimeType, DatabaseType, TableUserWrapper>
|
||||
public fun <RuntimeType : Any, DatabaseType : ColumnType<RuntimeType>> column(name: String, type: DatabaseType): Column<RuntimeType, DatabaseType, TableUserExtension>
|
||||
|
||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
||||
@JvmName("nullableColumn\$notNull")
|
||||
@Deprecated("This column can be not-null", replaceWith = ReplaceWith("this.column"))
|
||||
public fun <RuntimeType : Any, DatabaseType : ColumnType<RuntimeType>> nullableColumn(name: String, type: DatabaseType): Column<RuntimeType?, DatabaseType, TableUserWrapper> =
|
||||
public fun <RuntimeType : Any, DatabaseType : ColumnType<RuntimeType>> nullableColumn(name: String, type: DatabaseType): Column<RuntimeType?, DatabaseType, TableUserExtension> =
|
||||
this.nullableColumn<RuntimeType?, DatabaseType>(name, type)
|
||||
|
||||
/**
|
||||
@ -22,45 +22,45 @@ public interface TableCreator<TableUserWrapper : Any> {
|
||||
*
|
||||
* @return Descriptor of offered column for future operations.
|
||||
*/
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> nullableColumn(name: String, type: DatabaseType): Column<RuntimeType?, DatabaseType, TableUserWrapper>
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> nullableColumn(name: String, type: DatabaseType): Column<RuntimeType?, DatabaseType, TableUserExtension>
|
||||
|
||||
public fun index(name: String, vararg columns: Column<*, *, TableUserWrapper>): Index<TableUserWrapper>
|
||||
public fun index(name: String, vararg columns: Column<*, *, TableUserExtension>): Index<TableUserExtension>
|
||||
|
||||
// todo not-null column uniqueness
|
||||
public fun unique(name: String, distinctNulls: Boolean, vararg columns: Column<*, *, TableUserWrapper>): UniqueConstraint<TableUserWrapper>
|
||||
public fun check(name: String, constraint: Expression<Boolean, ColumnType.BOOLEAN, TableUserWrapper>): CheckConstraint<TableUserWrapper>
|
||||
public fun unique(name: String, distinctNulls: Boolean, vararg columns: Column<*, *, TableUserExtension>): UniqueConstraint<TableUserExtension>
|
||||
public fun check(name: String, constraint: Expression<Boolean, ColumnType.BOOLEAN, TableUserExtension>): CheckConstraint<TableUserExtension>
|
||||
|
||||
public fun rowIdColumn(): Column<RowId<TableUserWrapper>, ColumnType<RowId<TableUserWrapper>>, TableUserWrapper>
|
||||
public fun rowIdColumn(): Column<RowId<TableUserExtension>, ColumnType<RowId<TableUserExtension>>, TableUserExtension>
|
||||
|
||||
public fun rowIdUniqueConstraint(): UniqueConstraint<TableUserWrapper>
|
||||
public fun rowIdUniqueConstraint(): UniqueConstraint<TableUserExtension>
|
||||
|
||||
public fun <TargetTableUserWrapper : Any, ColumnType1 : ColumnType<*>> foreignKey(
|
||||
fromColumn: Column<*, ColumnType1, TableUserWrapper>,
|
||||
fromColumn: Column<*, ColumnType1, TableUserExtension>,
|
||||
toTable: Table<TargetTableUserWrapper, *>,
|
||||
toColumn: Column<*, ColumnType1, TargetTableUserWrapper>,
|
||||
onUpdate: ForeignKey.OnUpdateAction,
|
||||
onDelete: ForeignKey.OnDeleteAction
|
||||
): ForeignKey<TableUserWrapper, TargetTableUserWrapper>
|
||||
): ForeignKey<TableUserExtension, TargetTableUserWrapper>
|
||||
|
||||
public fun <TargetTableUserWrapper : Any, ColumnType1 : ColumnType<*>, ColumnType2 : ColumnType<*>> foreignKey(
|
||||
fromColumn1: Column<*, ColumnType1, TableUserWrapper>,
|
||||
fromColumn2: Column<*, ColumnType2, TableUserWrapper>,
|
||||
fromColumn1: Column<*, ColumnType1, TableUserExtension>,
|
||||
fromColumn2: Column<*, ColumnType2, TableUserExtension>,
|
||||
toTable: Table<TargetTableUserWrapper, *>,
|
||||
toColumn1: Column<*, ColumnType1, TargetTableUserWrapper>,
|
||||
toColumn2: Column<*, ColumnType2, TargetTableUserWrapper>,
|
||||
onUpdate: ForeignKey.OnUpdateAction,
|
||||
onDelete: ForeignKey.OnDeleteAction
|
||||
): ForeignKey<TableUserWrapper, TargetTableUserWrapper>
|
||||
): ForeignKey<TableUserExtension, TargetTableUserWrapper>
|
||||
|
||||
public fun <TargetTableUserWrapper : Any, ColumnType1 : ColumnType<*>, ColumnType2 : ColumnType<*>, ColumnType3 : ColumnType<*>> foreignKey(
|
||||
fromColumn1: Column<*, ColumnType1, TableUserWrapper>,
|
||||
fromColumn2: Column<*, ColumnType2, TableUserWrapper>,
|
||||
fromColumn3: Column<*, ColumnType3, TableUserWrapper>,
|
||||
fromColumn1: Column<*, ColumnType1, TableUserExtension>,
|
||||
fromColumn2: Column<*, ColumnType2, TableUserExtension>,
|
||||
fromColumn3: Column<*, ColumnType3, TableUserExtension>,
|
||||
toTable: Table<TargetTableUserWrapper, *>,
|
||||
toColumn1: Column<*, ColumnType1, TargetTableUserWrapper>,
|
||||
toColumn2: Column<*, ColumnType2, TargetTableUserWrapper>,
|
||||
toColumn3: Column<*, ColumnType3, TargetTableUserWrapper>,
|
||||
onUpdate: ForeignKey.OnUpdateAction,
|
||||
onDelete: ForeignKey.OnDeleteAction
|
||||
): ForeignKey<TableUserWrapper, TargetTableUserWrapper>
|
||||
): ForeignKey<TableUserExtension, TargetTableUserWrapper>
|
||||
}
|
@ -3,28 +3,28 @@ package ru.landgrafhomyak.serdha.api.v0.ddl
|
||||
import ru.landgrafhomyak.serdha.api.v0.Expression
|
||||
|
||||
|
||||
public interface TableUpdater<TableNewUserWrapper : Any, TableOldUserWrapper : Any> : TableCreator<TableNewUserWrapper> {
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> keepColumn(c: Column<RuntimeType, DatabaseType, TableOldUserWrapper>): Column<RuntimeType, DatabaseType, TableNewUserWrapper>
|
||||
public fun <R, D : ColumnType<R & Any>> renameColumn(c: Column<R, D, TableOldUserWrapper>, newName: String): Column<R, D, TableNewUserWrapper>
|
||||
public fun <R, D : ColumnType<R & Any>> mapColumn(c: Column<R, D, TableNewUserWrapper>, newValue: Expression<R, D, TableNewUserWrapper>, where: Expression<Boolean, ColumnType.BOOLEAN, TableNewUserWrapper>?)
|
||||
public fun <R, D : ColumnType<R & Any>> mapColumn(c: Column<R, D, TableNewUserWrapper>, newValue: Expression<R, D, TableNewUserWrapper>): Unit = this.mapColumn(c, newValue, null)
|
||||
public fun deleteColumn(c: Column<*, *, TableOldUserWrapper>)
|
||||
public interface TableUpdater<TableNewUserExtension : Any, TableOldUserExtension : Any> : TableCreator<TableNewUserExtension> {
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> keepColumn(c: Column<RuntimeType, DatabaseType, TableOldUserExtension>): Column<RuntimeType, DatabaseType, TableNewUserExtension>
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> renameColumn(c: Column<RuntimeType, DatabaseType, TableOldUserExtension>, newName: String): Column<RuntimeType, DatabaseType, TableNewUserExtension>
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> mapColumn(c: Column<RuntimeType, DatabaseType, TableNewUserExtension>, newValue: Expression<RuntimeType, DatabaseType, TableNewUserExtension>, where: Expression<Boolean, ColumnType.BOOLEAN, TableNewUserExtension>?)
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> mapColumn(c: Column<RuntimeType, DatabaseType, TableNewUserExtension>, newValue: Expression<RuntimeType, DatabaseType, TableNewUserExtension>): Unit = this.mapColumn(c, newValue, null)
|
||||
public fun deleteColumn(c: Column<*, *, TableOldUserExtension>)
|
||||
|
||||
public fun keepIndex(i: Index<TableOldUserWrapper>): Index<TableNewUserWrapper>
|
||||
public fun renameIndex(i: Index<TableOldUserWrapper>, newName: String): Index<TableNewUserWrapper>
|
||||
public fun deleteIndex(i: Index<TableOldUserWrapper>)
|
||||
public fun keepIndex(i: Index<TableOldUserExtension>): Index<TableNewUserExtension>
|
||||
public fun renameIndex(i: Index<TableOldUserExtension>, newName: String): Index<TableNewUserExtension>
|
||||
public fun deleteIndex(i: Index<TableOldUserExtension>)
|
||||
|
||||
public fun keepCheck(i: CheckConstraint<TableOldUserWrapper>): CheckConstraint<TableNewUserWrapper>
|
||||
public fun renameCheck(i: CheckConstraint<TableOldUserWrapper>, newName: String): CheckConstraint<TableNewUserWrapper>
|
||||
public fun deleteCheck(i: CheckConstraint<TableOldUserWrapper>)
|
||||
public fun keepCheck(i: CheckConstraint<TableOldUserExtension>): CheckConstraint<TableNewUserExtension>
|
||||
public fun renameCheck(i: CheckConstraint<TableOldUserExtension>, newName: String): CheckConstraint<TableNewUserExtension>
|
||||
public fun deleteCheck(i: CheckConstraint<TableOldUserExtension>)
|
||||
|
||||
public fun keepUnique(i: UniqueConstraint<TableOldUserWrapper>): UniqueConstraint<TableNewUserWrapper>
|
||||
public fun renameUnique(i: UniqueConstraint<TableOldUserWrapper>, newName: String): UniqueConstraint<TableNewUserWrapper>
|
||||
public fun deleteUnique(i: UniqueConstraint<TableOldUserWrapper>)
|
||||
public fun keepUnique(i: UniqueConstraint<TableOldUserExtension>): UniqueConstraint<TableNewUserExtension>
|
||||
public fun renameUnique(i: UniqueConstraint<TableOldUserExtension>, newName: String): UniqueConstraint<TableNewUserExtension>
|
||||
public fun deleteUnique(i: UniqueConstraint<TableOldUserExtension>)
|
||||
|
||||
public fun <TargetTableOldUserWrapper : Any, TargetTableNewUserWrapper : Any> keepForeignKeyToUpdatedTable(i: ForeignKey<TableOldUserWrapper, TargetTableOldUserWrapper>, updatedTable: Table<TargetTableNewUserWrapper, TargetTableOldUserWrapper>): ForeignKey<TableNewUserWrapper, TargetTableNewUserWrapper>
|
||||
public fun <TargetTableUserWrapper : Any> keepForeignKey(i: ForeignKey<TableOldUserWrapper, TargetTableUserWrapper>): ForeignKey<TableNewUserWrapper, TargetTableUserWrapper>
|
||||
public fun <TargetTableOldUserWrapper : Any, TargetTableNewUserWrapper : Any> renameForeignKeyToUpdatedTable(i: ForeignKey<TableOldUserWrapper, TargetTableOldUserWrapper>, updatedTable: Table<TargetTableNewUserWrapper, TargetTableOldUserWrapper>): ForeignKey<TableNewUserWrapper, TargetTableNewUserWrapper>
|
||||
public fun <TargetTableUserWrapper : Any> renameForeignKey(i: ForeignKey<TableOldUserWrapper, TargetTableUserWrapper>): ForeignKey<TableNewUserWrapper, TargetTableUserWrapper>
|
||||
public fun deleteForeignKey(i: ForeignKey<TableOldUserWrapper, *>)
|
||||
public fun <TargetTableOldUserWrapper : Any, TargetTableNewUserWrapper : Any> keepForeignKeyToUpdatedTable(i: ForeignKey<TableOldUserExtension, TargetTableOldUserWrapper>, updatedTable: Table<TargetTableNewUserWrapper, TargetTableOldUserWrapper>): ForeignKey<TableNewUserExtension, TargetTableNewUserWrapper>
|
||||
public fun <TargetTableUserWrapper : Any> keepForeignKey(i: ForeignKey<TableOldUserExtension, TargetTableUserWrapper>): ForeignKey<TableNewUserExtension, TargetTableUserWrapper>
|
||||
public fun <TargetTableOldUserWrapper : Any, TargetTableNewUserWrapper : Any> renameForeignKeyToUpdatedTable(i: ForeignKey<TableOldUserExtension, TargetTableOldUserWrapper>, updatedTable: Table<TargetTableNewUserWrapper, TargetTableOldUserWrapper>): ForeignKey<TableNewUserExtension, TargetTableNewUserWrapper>
|
||||
public fun <TargetTableUserWrapper : Any> renameForeignKey(i: ForeignKey<TableOldUserExtension, TargetTableUserWrapper>): ForeignKey<TableNewUserExtension, TargetTableUserWrapper>
|
||||
public fun deleteForeignKey(i: ForeignKey<TableOldUserExtension, *>)
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.ddl
|
||||
|
||||
public interface UniqueConstraint<OwnerTableUserWrapper : Any> {
|
||||
public interface UniqueConstraint<OwnerTableUserExtension : Any> {
|
||||
public val name: String
|
||||
public val table: Table<OwnerTableUserWrapper, *>
|
||||
public val columns: List<Column<*, *, OwnerTableUserWrapper>>
|
||||
public val table: Table<OwnerTableUserExtension, *>
|
||||
public val columns: List<Column<*, *, OwnerTableUserExtension>>
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.dml
|
||||
|
||||
public interface Delete<QueryUserWrapper : Any> {
|
||||
public val userWrapper: QueryUserWrapper
|
||||
public interface Delete<QueryUserExtension : Any> {
|
||||
public val userExtension: QueryUserExtension
|
||||
}
|
@ -1,16 +1,14 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.dml
|
||||
|
||||
import ru.landgrafhomyak.serdha.api.v0.Expression
|
||||
import ru.landgrafhomyak.serdha.api.v0.ddl.Column
|
||||
import ru.landgrafhomyak.serdha.api.v0.ddl.ColumnType
|
||||
import ru.landgrafhomyak.serdha.api.v0.ddl.Table
|
||||
|
||||
public interface DeleteCreator<TargetTableUserWrapper : Any, QueryUserWrapper : Any> {
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> selectColumn(column: Column<RuntimeType, DatabaseType, TargetTableUserWrapper>): SelectedColumn<RuntimeType, DatabaseType, TargetTableUserWrapper, QueryUserWrapper>
|
||||
public interface DeleteCreator<TargetTableUserExtension : Any, QueryUserExtension : Any> : _CommonQueryMethods<QueryUserExtension> {
|
||||
public val targetTable: SelectedTable<TargetTableUserExtension, QueryUserExtension>
|
||||
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> param(name: String, type: DatabaseType): InputParam<RuntimeType, DatabaseType, QueryUserWrapper>
|
||||
public fun where(expression: Expression<Boolean, ColumnType.BOOLEAN, QueryUserExtension>)
|
||||
|
||||
public fun where(expression: Expression<Boolean, ColumnType.BOOLEAN, QueryUserWrapper>)
|
||||
public fun limit(size: UInt)
|
||||
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> returning(e: Expression<RuntimeType, DatabaseType, QueryUserWrapper>): Column<RuntimeType, DatabaseType, QueryUserWrapper>
|
||||
public val returning: _CommonQueryMethods._Returning<QueryUserExtension>
|
||||
}
|
@ -3,7 +3,7 @@ package ru.landgrafhomyak.serdha.api.v0.dml
|
||||
import ru.landgrafhomyak.serdha.api.v0.Expression
|
||||
import ru.landgrafhomyak.serdha.api.v0.ddl.ColumnType
|
||||
|
||||
public interface InputParam<RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>, OwnerQueryUserWrapper : Any> : Expression<RuntimeType, DatabaseType, OwnerQueryUserWrapper> {
|
||||
public interface InputParam<RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>, OwnerQueryUserExtension : Any> : Expression<RuntimeType, DatabaseType, OwnerQueryUserExtension> {
|
||||
public val name: String
|
||||
public val userWrapper: OwnerQueryUserWrapper
|
||||
public val userWrapper: OwnerQueryUserExtension
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.dml
|
||||
|
||||
public interface Insert<UserWrapper : Any> {
|
||||
public val userWrapper: UserWrapper
|
||||
public interface Insert<UserExtension : Any> {
|
||||
public val userExtension: UserExtension
|
||||
}
|
@ -5,16 +5,22 @@ import ru.landgrafhomyak.serdha.api.v0.ddl.Column
|
||||
import ru.landgrafhomyak.serdha.api.v0.ddl.ColumnType
|
||||
import ru.landgrafhomyak.serdha.api.v0.ddl.UniqueConstraint
|
||||
|
||||
public interface InsertCreator<TargetTableUserWrapper : Any, QueryUserWrapper : Any> {
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> insertTo(c: Column<RuntimeType, DatabaseType, TargetTableUserWrapper>): InputParam<RuntimeType, DatabaseType, QueryUserWrapper>
|
||||
public interface InsertCreator<TargetTableUserExtension : Any, QueryUserExtension : Any> : _CommonQueryMethods<QueryUserExtension> {
|
||||
public val insertedValues: SelectedTable<TargetTableUserExtension, QueryUserExtension>
|
||||
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> selectColumn(c: Column<RuntimeType, DatabaseType, TargetTableUserWrapper>): SelectedColumn<RuntimeType, DatabaseType, TargetTableUserWrapper, QueryUserWrapper>
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> insert(column: Column<RuntimeType, DatabaseType, TargetTableUserExtension>, expression: Expression<RuntimeType, DatabaseType, QueryUserExtension>)
|
||||
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> returning(e: Expression<RuntimeType, DatabaseType, QueryUserWrapper>): Column<RuntimeType, DatabaseType, QueryUserWrapper>
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> oldColumnValue(c: Column<RuntimeType, DatabaseType, QueryUserExtension>): Expression<RuntimeType?, DatabaseType, QueryUserExtension>
|
||||
|
||||
public interface UpsertCreator<TargetTableUserWrapper : Any, QueryUserWrapper : Any> : UpdateCreator<TargetTableUserWrapper, QueryUserWrapper> {
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> overwrittenColumn(c: Column<RuntimeType, DatabaseType, TargetTableUserWrapper>): SelectedColumn<RuntimeType, DatabaseType, TargetTableUserWrapper, QueryUserWrapper>
|
||||
public interface UpsertCreator<TargetTableUserExtension : Any, QueryUserExtension : Any> {
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> updateColumn(c: Column<RuntimeType, DatabaseType, TargetTableUserExtension>, e: Expression<RuntimeType, DatabaseType, QueryUserExtension>)
|
||||
}
|
||||
|
||||
public fun onConflict(u: UniqueConstraint<TargetTableUserWrapper>, c: UpsertCreator<TargetTableUserWrapper, QueryUserWrapper>.() -> Unit)
|
||||
public fun onConflictUpdate(u: UniqueConstraint<TargetTableUserExtension>, c: UpsertCreator<TargetTableUserExtension, QueryUserExtension>.() -> Unit)
|
||||
|
||||
public fun onConflictThrow(u: UniqueConstraint<TargetTableUserExtension>)
|
||||
|
||||
public fun onConflictIgnore(u: UniqueConstraint<TargetTableUserExtension>)
|
||||
|
||||
public val returning: _CommonQueryMethods._Returning<QueryUserExtension>
|
||||
}
|
@ -1,5 +1,9 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.dml
|
||||
|
||||
public interface Select<QueryUserWrapper : Any> {
|
||||
public val userWrapper: QueryUserWrapper
|
||||
public interface Select<QueryUserExtension : Any> {
|
||||
public val userExtension: QueryUserExtension
|
||||
|
||||
public enum class Order {
|
||||
ASC, DESC
|
||||
}
|
||||
}
|
@ -5,20 +5,11 @@ import ru.landgrafhomyak.serdha.api.v0.ddl.Column
|
||||
import ru.landgrafhomyak.serdha.api.v0.ddl.ColumnType
|
||||
import ru.landgrafhomyak.serdha.api.v0.ddl.Table
|
||||
|
||||
public interface SelectCreator<QueryUserWrapper : Any> {
|
||||
public fun <SelectedTableUserWrapper : Any> selectTable(t: Table<SelectedTableUserWrapper, *>): SelectedTable<SelectedTableUserWrapper, QueryUserWrapper>
|
||||
public fun <SelectedQueryUserWrapper : Any> selectQuery(t: Select<SelectedQueryUserWrapper>): SelectedTable<SelectedQueryUserWrapper, QueryUserWrapper>
|
||||
public interface SelectCreator<QueryUserExtension : Any> : _CommonQueryMethods<QueryUserExtension>, _CommonQueryMethods._Returning<QueryUserExtension>{
|
||||
public fun where(expression: Expression<Boolean, ColumnType.BOOLEAN, QueryUserExtension>)
|
||||
|
||||
public fun where(expression: Expression<Boolean, ColumnType.BOOLEAN, QueryUserWrapper>)
|
||||
public fun limit(size: UInt)
|
||||
|
||||
// default false
|
||||
public var isDistinct: Boolean
|
||||
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> returnExpression(expression: Expression<RuntimeType, DatabaseType, QueryUserWrapper>): Column<RuntimeType, DatabaseType, QueryUserWrapper>
|
||||
|
||||
public fun orderBy(vararg columns: Column<*, *, QueryUserWrapper>)
|
||||
|
||||
public fun groupBy(vararg columns: Column<*, *, QueryUserWrapper>)
|
||||
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> param(name: String, type: DatabaseType): InputParam<RuntimeType, DatabaseType, QueryUserWrapper>
|
||||
@Suppress("SpellCheckingInspection")
|
||||
public fun offsetedLimit(offset: ULong, size: UInt)
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.dml
|
||||
|
||||
import ru.landgrafhomyak.serdha.api.v0.Expression
|
||||
import ru.landgrafhomyak.serdha.api.v0.ddl.ColumnType
|
||||
|
||||
public interface SelectedColumn<RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>, OwnerTableUserWrapper : Any, QueryUserWrapper : Any> : Expression<RuntimeType, DatabaseType, QueryUserWrapper> {
|
||||
|
||||
}
|
@ -1,8 +1,9 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.dml
|
||||
|
||||
import ru.landgrafhomyak.serdha.api.v0.Expression
|
||||
import ru.landgrafhomyak.serdha.api.v0.ddl.Column
|
||||
import ru.landgrafhomyak.serdha.api.v0.ddl.ColumnType
|
||||
|
||||
public interface SelectedTable<SelectedTableUserWrapper : Any, QueryUserWrapper : Any> {
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> selectColumn(column: Column<RuntimeType, DatabaseType, SelectedTableUserWrapper>): SelectedColumn<RuntimeType, DatabaseType, SelectedTableUserWrapper, QueryUserWrapper>
|
||||
public interface SelectedTable<SelectedTableUserExtension : Any, QueryUserExtension : Any> {
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> selectColumn(column: Column<RuntimeType, DatabaseType, SelectedTableUserExtension>): Expression<RuntimeType, DatabaseType, QueryUserExtension>
|
||||
}
|
@ -1,4 +1,5 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.dml
|
||||
|
||||
public interface Update<QueryUserWrapper : Any> {
|
||||
public interface Update<QueryUserExtension : Any> {
|
||||
public val userExtension: QueryUserExtension
|
||||
}
|
@ -5,13 +5,19 @@ import ru.landgrafhomyak.serdha.api.v0.ddl.Column
|
||||
import ru.landgrafhomyak.serdha.api.v0.ddl.ColumnType
|
||||
import ru.landgrafhomyak.serdha.api.v0.ddl.Table
|
||||
|
||||
public interface UpdateCreator<TargetTableUserWrapper : Any, QueryUserWrapper : Any> {
|
||||
public fun <SelectedTableUserWrapper : Any> selectTable(t: Table<SelectedTableUserWrapper, *>): SelectedTable<SelectedTableUserWrapper, QueryUserWrapper>
|
||||
public fun <SelectedQueryUserWrapper : Any> selectQuery(t: Select<SelectedQueryUserWrapper>): SelectedTable<SelectedQueryUserWrapper, QueryUserWrapper>
|
||||
public interface UpdateCreator<TargetTableUserExtension : Any, QueryUserExtension : Any> : _CommonQueryMethods<QueryUserExtension> {
|
||||
public val targetTable: SelectedTable<TargetTableUserExtension, QueryUserExtension>
|
||||
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> updateColumn(c: Column<RuntimeType, DatabaseType, TargetTableUserWrapper>, e: Expression<RuntimeType, DatabaseType, QueryUserWrapper>)
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> selectOldColumnValue(c: Column<RuntimeType, DatabaseType, TargetTableUserExtension>): Expression<RuntimeType, DatabaseType, QueryUserExtension>
|
||||
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> param(name: String, type: DatabaseType): InputParam<RuntimeType, DatabaseType, QueryUserWrapper>
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> updateColumn(c: Column<RuntimeType, DatabaseType, TargetTableUserExtension>, e: Expression<RuntimeType, DatabaseType, QueryUserExtension>)
|
||||
|
||||
public fun where(expression: Expression<Boolean, ColumnType.BOOLEAN, QueryUserWrapper>)
|
||||
public fun where(expression: Expression<Boolean, ColumnType.BOOLEAN, QueryUserExtension>)
|
||||
|
||||
public fun limit(size: UInt)
|
||||
|
||||
@Suppress("SpellCheckingInspection")
|
||||
public fun offsetedLimit(offset: ULong, size: UInt)
|
||||
|
||||
public val returning: _CommonQueryMethods._Returning<QueryUserExtension>
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.dml
|
||||
|
||||
import ru.landgrafhomyak.serdha.api.v0.Expression
|
||||
import ru.landgrafhomyak.serdha.api.v0.ddl.Column
|
||||
import ru.landgrafhomyak.serdha.api.v0.ddl.ColumnType
|
||||
import ru.landgrafhomyak.serdha.api.v0.ddl.Table
|
||||
|
||||
@Suppress("ClassName")
|
||||
public interface _CommonQueryMethods<QueryUserExtension : Any> {
|
||||
public fun <SelectedTableUserExtension : Any> selectTable(t: Table<SelectedTableUserExtension, *>): SelectedTable<SelectedTableUserExtension, QueryUserExtension>
|
||||
public fun <SelectedQueryUserExtension : Any> selectQuery(t: Select<SelectedQueryUserExtension>): SelectedTable<SelectedQueryUserExtension, QueryUserExtension>
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> param(name: String, type: DatabaseType): InputParam<RuntimeType, DatabaseType, QueryUserExtension>
|
||||
|
||||
public interface _Returning<QueryUserExtension : Any> {
|
||||
public fun <RuntimeType, DatabaseType : ColumnType<RuntimeType & Any>> returnExpression(expression: Expression<RuntimeType, DatabaseType, QueryUserExtension>): Column<RuntimeType, DatabaseType, QueryUserExtension>
|
||||
|
||||
public val isDistinct: Boolean
|
||||
|
||||
public fun orderBy(order: Select.Order, vararg columns: Expression<*, *, QueryUserExtension>)
|
||||
|
||||
public fun groupBy(vararg columns: Expression<*, *, QueryUserExtension>)
|
||||
}
|
||||
}
|
@ -1,19 +1,18 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.runtime
|
||||
|
||||
import ru.landgrafhomyak.serdha.api.v0.ddl.Column
|
||||
import ru.landgrafhomyak.serdha.api.v0.dml.InputParam
|
||||
|
||||
public interface ParametersSetter<QueryUserWrapper : Any> {
|
||||
public operator fun <RuntimeType> set(c: InputParam<RuntimeType, *, QueryUserWrapper>, value: RuntimeType)
|
||||
public interface ParametersSetter<QueryUserExtension : Any> {
|
||||
public operator fun <RuntimeType> set(c: InputParam<RuntimeType, *, QueryUserExtension>, value: RuntimeType)
|
||||
|
||||
public operator fun set(c: InputParam<Byte, *, QueryUserWrapper>, value: Byte): Unit = this.set<Byte>(c, value)
|
||||
public operator fun set(c: InputParam<UByte, *, QueryUserWrapper>, value: UByte): Unit = this.set<UByte>(c, value)
|
||||
public operator fun set(c: InputParam<Short, *, QueryUserWrapper>, value: Short): Unit = this.set<Short>(c, value)
|
||||
public operator fun set(c: InputParam<UShort, *, QueryUserWrapper>, value: UShort): Unit = this.set<UShort>(c, value)
|
||||
public operator fun set(c: InputParam<Int, *, QueryUserWrapper>, value: Int): Unit = this.set<Int>(c, value)
|
||||
public operator fun set(c: InputParam<UInt, *, QueryUserWrapper>, value: UInt): Unit = this.set<UInt>(c, value)
|
||||
public operator fun set(c: InputParam<Long, *, QueryUserWrapper>, value: Long): Unit = this.set<Long>(c, value)
|
||||
public operator fun set(c: InputParam<ULong, *, QueryUserWrapper>, value: ULong): Unit = this.set<ULong>(c, value)
|
||||
public operator fun set(c: InputParam<Char, *, QueryUserWrapper>, value: Char): Unit = this.set<Char>(c, value)
|
||||
public operator fun set(c: InputParam<Boolean, *, QueryUserWrapper>, value: Boolean): Unit = this.set<Boolean>(c, value)
|
||||
public operator fun set(c: InputParam<Byte, *, QueryUserExtension>, value: Byte): Unit = this.set<Byte>(c, value)
|
||||
public operator fun set(c: InputParam<UByte, *, QueryUserExtension>, value: UByte): Unit = this.set<UByte>(c, value)
|
||||
public operator fun set(c: InputParam<Short, *, QueryUserExtension>, value: Short): Unit = this.set<Short>(c, value)
|
||||
public operator fun set(c: InputParam<UShort, *, QueryUserExtension>, value: UShort): Unit = this.set<UShort>(c, value)
|
||||
public operator fun set(c: InputParam<Int, *, QueryUserExtension>, value: Int): Unit = this.set<Int>(c, value)
|
||||
public operator fun set(c: InputParam<UInt, *, QueryUserExtension>, value: UInt): Unit = this.set<UInt>(c, value)
|
||||
public operator fun set(c: InputParam<Long, *, QueryUserExtension>, value: Long): Unit = this.set<Long>(c, value)
|
||||
public operator fun set(c: InputParam<ULong, *, QueryUserExtension>, value: ULong): Unit = this.set<ULong>(c, value)
|
||||
public operator fun set(c: InputParam<Char, *, QueryUserExtension>, value: Char): Unit = this.set<Char>(c, value)
|
||||
public operator fun set(c: InputParam<Boolean, *, QueryUserExtension>, value: Boolean): Unit = this.set<Boolean>(c, value)
|
||||
}
|
@ -2,17 +2,17 @@ package ru.landgrafhomyak.serdha.api.v0.runtime
|
||||
|
||||
import ru.landgrafhomyak.serdha.api.v0.ddl.Column
|
||||
|
||||
public interface Row<QueryUserWrapper : Any> {
|
||||
public operator fun <RuntimeType> get(c: Column<RuntimeType, *, QueryUserWrapper>): RuntimeType
|
||||
public interface Row<QueryUserExtension : Any> {
|
||||
public operator fun <RuntimeType> get(c: Column<RuntimeType, *, QueryUserExtension>): RuntimeType
|
||||
|
||||
public operator fun get(c: Column<Byte, *, QueryUserWrapper>): Byte = this.get<Byte>(c)
|
||||
public operator fun get(c: Column<UByte, *, QueryUserWrapper>): UByte = this.get<UByte>(c)
|
||||
public operator fun get(c: Column<Short, *, QueryUserWrapper>): Short = this.get<Short>(c)
|
||||
public operator fun get(c: Column<UShort, *, QueryUserWrapper>): UShort = this.get<UShort>(c)
|
||||
public operator fun get(c: Column<Int, *, QueryUserWrapper>): Int = this.get<Int>(c)
|
||||
public operator fun get(c: Column<UInt, *, QueryUserWrapper>): UInt = this.get<UInt>(c)
|
||||
public operator fun get(c: Column<Long, *, QueryUserWrapper>): Long = this.get<Long>(c)
|
||||
public operator fun get(c: Column<ULong, *, QueryUserWrapper>): ULong = this.get<ULong>(c)
|
||||
public operator fun get(c: Column<Char, *, QueryUserWrapper>): Char = this.get<Char>(c)
|
||||
public operator fun get(c: Column<Boolean, *, QueryUserWrapper>): Boolean = this.get<Boolean>(c)
|
||||
public operator fun get(c: Column<Byte, *, QueryUserExtension>): Byte = this.get<Byte>(c)
|
||||
public operator fun get(c: Column<UByte, *, QueryUserExtension>): UByte = this.get<UByte>(c)
|
||||
public operator fun get(c: Column<Short, *, QueryUserExtension>): Short = this.get<Short>(c)
|
||||
public operator fun get(c: Column<UShort, *, QueryUserExtension>): UShort = this.get<UShort>(c)
|
||||
public operator fun get(c: Column<Int, *, QueryUserExtension>): Int = this.get<Int>(c)
|
||||
public operator fun get(c: Column<UInt, *, QueryUserExtension>): UInt = this.get<UInt>(c)
|
||||
public operator fun get(c: Column<Long, *, QueryUserExtension>): Long = this.get<Long>(c)
|
||||
public operator fun get(c: Column<ULong, *, QueryUserExtension>): ULong = this.get<ULong>(c)
|
||||
public operator fun get(c: Column<Char, *, QueryUserExtension>): Char = this.get<Char>(c)
|
||||
public operator fun get(c: Column<Boolean, *, QueryUserExtension>): Boolean = this.get<Boolean>(c)
|
||||
}
|
@ -7,7 +7,7 @@ import ru.landgrafhomyak.serdha.api.v0.dml.Insert
|
||||
import ru.landgrafhomyak.serdha.api.v0.dml.Select
|
||||
import ru.landgrafhomyak.serdha.api.v0.dml.Update
|
||||
|
||||
public interface SynchronizedDatabase<W : Any> : Module<W> {
|
||||
public interface SynchronizedDatabase<DatabaseUserExtension : Any> : Module<DatabaseUserExtension> {
|
||||
@Suppress("FunctionName")
|
||||
@LowLevelApi
|
||||
public suspend fun _startTransaction(): Transaction
|
||||
|
@ -6,7 +6,7 @@ import ru.landgrafhomyak.serdha.api.v0.ddl.Namespace
|
||||
|
||||
@Suppress("SpellCheckingInspection")
|
||||
public interface UnsynchronizedDatabase {
|
||||
public fun <W : Any> createModule(initialVersionKey: String, content: (rootNs: Namespace, updater: ModuleModifyingRound) -> W): ModuleTemplate<W>
|
||||
public fun <ModuleUserExtension : Any> createModule(initialVersionKey: String, content: (rootNs: Namespace, updater: ModuleModifyingRound) -> ModuleUserExtension): ModuleTemplate<ModuleUserExtension>
|
||||
|
||||
public suspend fun <W : Any> synchronize(conent: ModuleTemplate<W>): SynchronizedDatabase<W>
|
||||
public suspend fun <ModuleUserExtension : Any> synchronize(conent: ModuleTemplate<ModuleUserExtension>): SynchronizedDatabase<ModuleUserExtension>
|
||||
}
|
@ -4,7 +4,7 @@ import ru.landgrafhomyak.serdha.api.v0.LowLevelApi
|
||||
|
||||
@Suppress("ClassName", "FunctionName")
|
||||
@LowLevelApi
|
||||
public interface _ParametersSetter<QueryUserWrapper : Any, out Result> : ParametersSetter<QueryUserWrapper> {
|
||||
public interface _ParametersSetter<QueryUserExtension : Any, out Result> : ParametersSetter<QueryUserExtension> {
|
||||
@LowLevelApi
|
||||
public suspend fun _execute(): Result
|
||||
|
||||
|
@ -4,7 +4,7 @@ import ru.landgrafhomyak.serdha.api.v0.LowLevelApi
|
||||
|
||||
@Suppress("ClassName")
|
||||
@LowLevelApi
|
||||
public interface _ResultSet<QueryUserWrapper : Any> : Row<QueryUserWrapper> {
|
||||
public interface _ResultSet<QueryUserExtension : Any> : Row<QueryUserExtension> {
|
||||
@Suppress("FunctionName")
|
||||
@LowLevelApi
|
||||
public suspend fun _next(): Boolean
|
||||
|
Loading…
Reference in New Issue
Block a user