From d56ccd5a838875ffc85a87ff0bb3d0a9d75d72e0 Mon Sep 17 00:00:00 2001 From: Andrew Golovashevich Date: Sun, 23 Mar 2025 23:05:10 +0300 Subject: [PATCH] Table constructor --- .../db/raw_sql_skeleton/Table.kt | 2 - .../db/raw_sql_skeleton/TableConstructor.kt | 18 +++++++ .../serdha0/api/module/CreateModuleScope.kt | 2 +- .../serdha0/api/table/TableConstructor.kt | 53 ------------------- 4 files changed, 19 insertions(+), 56 deletions(-) create mode 100644 src/commonMain/kotlin/ru/landgrafhomyak/db/raw_sql_skeleton/TableConstructor.kt delete mode 100644 src/commonMain/kotlin/ru/landgrafhomyak/serdha0/api/table/TableConstructor.kt diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/raw_sql_skeleton/Table.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/raw_sql_skeleton/Table.kt index 41361be..439d8d1 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/db/raw_sql_skeleton/Table.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/raw_sql_skeleton/Table.kt @@ -1,7 +1,5 @@ package ru.landgrafhomyak.db.raw_sql_skeleton -import ru.landgrafhomyak.db.serdha0.api.module.Module - public class Table(public val name: String, public val namespacesFromModuleRoot: List) { public val asSqlReference: String = "\"${this.name}\"" public val asSqlString: String = "\'${this.name}\'" diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/raw_sql_skeleton/TableConstructor.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/raw_sql_skeleton/TableConstructor.kt new file mode 100644 index 0000000..e65f85d --- /dev/null +++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/raw_sql_skeleton/TableConstructor.kt @@ -0,0 +1,18 @@ +package ru.landgrafhomyak.db.raw_sql_skeleton + +import ru.landgrafhomyak.db.serdha0.api.misc.Column +import ru.landgrafhomyak.db.serdha0.api.table.Index +import ru.landgrafhomyak.db.serdha0.api.table.UniqueIndex + +public interface TableConstructor { + public fun createTable(context: Scope): TableUserExtension + + public interface Scope { + public fun column(name: String, type: String): Column<*, *, tUE> + + public fun index(name: String): Index + + public fun uniqueIndex(name: String): UniqueIndex + public fun checkConstraint(name: String): CheckConstraint + } +} \ No newline at end of file diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/serdha0/api/module/CreateModuleScope.kt b/src/commonMain/kotlin/ru/landgrafhomyak/serdha0/api/module/CreateModuleScope.kt index 45d1e16..29feaa4 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/serdha0/api/module/CreateModuleScope.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/serdha0/api/module/CreateModuleScope.kt @@ -2,7 +2,7 @@ package ru.landgrafhomyak.db.serdha0.api.module import ru.landgrafhomyak.db.raw_sql_skeleton.Table import ru.landgrafhomyak.db.serdha0.api.queries._Query -import ru.landgrafhomyak.db.serdha0.api.table.TableConstructor +import ru.landgrafhomyak.db.raw_sql_skeleton.TableConstructor import ru.landgrafhomyak.serdha0.api.module.Namespace /** diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/serdha0/api/table/TableConstructor.kt b/src/commonMain/kotlin/ru/landgrafhomyak/serdha0/api/table/TableConstructor.kt deleted file mode 100644 index 11650fd..0000000 --- a/src/commonMain/kotlin/ru/landgrafhomyak/serdha0/api/table/TableConstructor.kt +++ /dev/null @@ -1,53 +0,0 @@ -package ru.landgrafhomyak.db.serdha0.api.table - -import ru.landgrafhomyak.db.raw_sql_skeleton.Table -import ru.landgrafhomyak.db.serdha0.api.misc.Column -import ru.landgrafhomyak.db.serdha0.api.misc.DatabaseType - - -public interface TableConstructor { - public fun createTable(context: Scope): TableUserExtension - - - public interface Scope { - public val types: DatabaseType.Provider - - public fun > column(name: String, type: DT): Column - - public fun index(name: String, vararg columns: Column<*, *, tUE>): Index - - public fun uniqueIndex(name: String, distinctNulls: Boolean, vararg columns: Column<*, *, tUE>): UniqueIndex - public fun checkConstraint(name: String, creator: CheckConstraint.Creator, recheckExistingRows: Boolean = false): CheckConstraint - public fun > defaultValue(c: Column, creator: DefaultConstraint.Creator): DefaultConstraint - - @Suppress("PropertyName") - public val rowId_column: Column, DatabaseType>, tUE> - - @Suppress("PropertyName") - public val rowId_uniqueConstraint: UniqueIndex - - public fun selfRowReference( - columnName: String, - onDelete: ForeignRowReference.OnDelete, - ): ForeignRowReference, DatabaseType.ROW_ID> - - public fun > selfRowReference( - columnName: String, - type: DT, - onDelete: ForeignRowReference.OnDelete, - ): ForeignRowReference - - public fun foreignRowReference( - columnName: String, - toTable: Table, - onDelete: ForeignRowReference.OnDelete, - ): ForeignRowReference, DatabaseType.ROW_ID> - - public fun > foreignRowReference( - columnName: String, - type: DT, - toTable: Table, - onDelete: ForeignRowReference.OnDelete, - ): ForeignRowReference - } -} \ No newline at end of file