From fab47cb0ea49d025d71ac7aa69c0cb4b59c1a10d Mon Sep 17 00:00:00 2001 From: Andrew Golovashevich Date: Mon, 30 Dec 2024 17:55:19 +0300 Subject: [PATCH] Minor improvements --- .../serdha/api/v0/ddl/ModuleCreator.kt | 4 +-- .../landgrafhomyak/serdha/api/v0/ddl/Table.kt | 13 +++++++- .../serdha/api/v0/ddl/TableUpdater.kt | 32 ++++++++++++++++--- .../serdha/api/v0/ddl/UniqueIndex.kt | 6 ++-- 4 files changed, 43 insertions(+), 12 deletions(-) diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/ddl/ModuleCreator.kt b/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/ddl/ModuleCreator.kt index a217101..17cb361 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/ddl/ModuleCreator.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/ddl/ModuleCreator.kt @@ -15,8 +15,8 @@ public interface ModuleCreator { } public fun createTable(namespace: Namespace, name: String, initializer: CreateTable): Table - public fun createTempSessionWideTable(initializer: CreateTable): Table - public fun createTempTransactionWideTable(initializer: CreateTable): Table + public fun createSessionScopeTemporaryTable(initializer: CreateTable): Table + public fun createTransactionScopeTemporaryTable(initializer: CreateTable): Table public interface UpdateTable { public fun updateTable(oldTable: Table, updater: TableUpdater): TableNewUserExtension diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/ddl/Table.kt b/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/ddl/Table.kt index a74ecbb..9b7dbaa 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/ddl/Table.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/ddl/Table.kt @@ -1,5 +1,16 @@ package ru.landgrafhomyak.serdha.api.v0.ddl -public interface Table { +public interface Table { 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 } \ No newline at end of file diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/ddl/TableUpdater.kt b/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/ddl/TableUpdater.kt index 8644c23..edb67b0 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/ddl/TableUpdater.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/ddl/TableUpdater.kt @@ -30,9 +30,31 @@ public interface TableUpdater> changeDefaultValue(c: Column, d: DefaultConstraint<*, *, TableOldUserExtension>): DefaultConstraint public fun deleteDefaultValue(i: DefaultConstraint<*, *, TableOldUserExtension>) - public fun keepForeignKeyToUpdatedTable(i: ForeignKey, updatedTable: Table): ForeignKey - public fun keepForeignKey(i: ForeignKey): ForeignKey - public fun renameAndKeepForeignKeyToUpdatedTable(i: ForeignKey, updatedTable: Table): ForeignKey - public fun renameAndKeepForeignKey(i: ForeignKey): ForeignKey - public fun deleteForeignKey(i: ForeignKey) + public fun keepForeignKeyToUpdatedTable( + fk: ForeignKey, + updatedTable: Table, + onUpdate: ForeignKey.OnUpdateAction? = null, + onDelete: ForeignKey.OnDeleteAction? = null + ): ForeignKey + + public fun keepForeignKey( + fk: ForeignKey, + onUpdate: ForeignKey.OnUpdateAction? = null, + onDelete: ForeignKey.OnDeleteAction? = null + ): ForeignKey + + public fun renameAndKeepForeignKeyToUpdatedTable( + fk: ForeignKey, + updatedTable: Table, + onUpdate: ForeignKey.OnUpdateAction? = null, + onDelete: ForeignKey.OnDeleteAction? = null + ): ForeignKey + + public fun renameAndKeepForeignKey( + fk: ForeignKey, + onUpdate: ForeignKey.OnUpdateAction? = null, + onDelete: ForeignKey.OnDeleteAction? = null + ): ForeignKey + + public fun deleteForeignKey(fk: ForeignKey) } \ No newline at end of file diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/ddl/UniqueIndex.kt b/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/ddl/UniqueIndex.kt index d01fe2f..8ee6c09 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/ddl/UniqueIndex.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/ddl/UniqueIndex.kt @@ -1,7 +1,5 @@ package ru.landgrafhomyak.serdha.api.v0.ddl -public interface UniqueIndex { - public val name: String - public val table: Table - public val columns: List> +public interface UniqueIndex : Index { + public val areNullsDistinct: Boolean } \ No newline at end of file