diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/queries/DeleteQuery.kt b/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/queries/DeleteQuery.kt index 40d5a66..35de920 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/queries/DeleteQuery.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/queries/DeleteQuery.kt @@ -4,14 +4,11 @@ import ru.landgrafhomyak.serdha.api.v0.misc.Column import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseTypesProvider import ru.landgrafhomyak.serdha.api.v0.misc.QueryParam -import ru.landgrafhomyak.serdha.api.v0.misc._Selectable import ru.landgrafhomyak.serdha.api.v0.runtime.ParametersSetter import ru.landgrafhomyak.serdha.api.v0.table.Table -public interface DeleteQuery { - public val userExtension: QueryUserExtension - - public interface FromSubquery : DeleteQuery, _Selectable { +public interface DeleteQuery : _Query { + public interface FromSubquery : DeleteQuery, _Query.Params2Table { public interface Creator { public fun createDeleteWithReturning(table: Table, creator: Scope): QueryUserExtension diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/queries/InsertQuery.kt b/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/queries/InsertQuery.kt index d8d65e4..0bbc142 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/queries/InsertQuery.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/queries/InsertQuery.kt @@ -5,13 +5,10 @@ import ru.landgrafhomyak.serdha.api.v0.table.Table import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseTypesProvider import ru.landgrafhomyak.serdha.api.v0.misc.QueryParam -import ru.landgrafhomyak.serdha.api.v0.misc._Selectable import ru.landgrafhomyak.serdha.api.v0.runtime.ParametersSetter import ru.landgrafhomyak.serdha.api.v0.table.UniqueIndex -public interface InsertQuery { - public val userExtension: QueryUserExtension - +public interface InsertQuery : _Query { @Suppress("ClassName") public interface _UpsertClauseScope { public fun keepColumn(column: Column<*, *, TargetTableUserExtension>) @@ -30,7 +27,7 @@ public interface InsertQuery { } - public interface SingleRow : InsertQuery, _Selectable { + public interface SingleRow : InsertQuery, _Query.Params2Table { public interface Creator { public fun createInsertSingleRowWithReturning(table: Table, creator: Scope): QueryUserExtension @@ -48,7 +45,7 @@ public interface InsertQuery { } - public interface FromSubquery : InsertQuery, _Selectable { + public interface FromSubquery : InsertQuery, _Query.Params2Table { public interface Creator { public fun createInsertSingleRowWithReturning(table: Table, creator: Scope): QueryUserExtension @@ -69,7 +66,7 @@ public interface InsertQuery { } } - public interface MultipleRows : InsertQuery { + public interface MultipleRows : InsertQuery, _Query.Table2Void { public interface Creator { public fun createInsertMultipleRows(table: Table, creator: Scope): QueryUserExtension diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/queries/SelectQuery.kt b/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/queries/SelectQuery.kt index 80d38bf..e3091c2 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/queries/SelectQuery.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/queries/SelectQuery.kt @@ -6,12 +6,9 @@ import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseTypesProvider import ru.landgrafhomyak.serdha.api.v0.misc.Expression import ru.landgrafhomyak.serdha.api.v0.misc.QueryParam -import ru.landgrafhomyak.serdha.api.v0.misc._Selectable import ru.landgrafhomyak.serdha.api.v0.runtime.ParametersSetter -public interface SelectQuery : _Selectable { - public val userExtension: QueryUserExtension - +public interface SelectQuery : _Query { public enum class Order { ASC, DESC } @@ -38,7 +35,7 @@ public interface SelectQuery : _Selectable> returnColumn(name: String, column: IntermediateColumn): Column } - public interface WithJoin : SelectQuery { + public interface WithJoin : SelectQuery, _Query.Params2Table { public interface JoinCreator : _CommonSelectCreatorScope { public fun createSelectWithJoin(creator: Scope): QueryUserExtension @@ -52,7 +49,7 @@ public interface SelectQuery : _Selectable : InsertQuery { + public interface FromSubquery : SelectQuery, _Query.Params2Table { public interface Creator { public fun createSelect(creator: Scope): QueryUserExtension diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/queries/UpdateQuery.kt b/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/queries/UpdateQuery.kt index 1e131a7..33ee673 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/queries/UpdateQuery.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/queries/UpdateQuery.kt @@ -5,13 +5,10 @@ import ru.landgrafhomyak.serdha.api.v0.table.Table import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseTypesProvider import ru.landgrafhomyak.serdha.api.v0.misc.QueryParam -import ru.landgrafhomyak.serdha.api.v0.misc._Selectable import ru.landgrafhomyak.serdha.api.v0.runtime.ParametersSetter -public interface UpdateQuery : _Selectable { - public val userExtension: QueryUserExtension - - public interface FromSubquery : _Selectable { +public interface UpdateQuery : _Query { + public interface FromSubquery : UpdateQuery, _Query.Params2Table { public interface Creator { public fun createUpdateFromSubqueryWithReturning(table: Table, creator: Scope): QueryUserExtension diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/queries/_Query.kt b/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/queries/_Query.kt new file mode 100644 index 0000000..c5d3302 --- /dev/null +++ b/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/queries/_Query.kt @@ -0,0 +1,14 @@ +package ru.landgrafhomyak.serdha.api.v0.queries + +import ru.landgrafhomyak.serdha.api.v0.misc._Selectable + + +@Suppress("ClassName") +public interface _Query { + public val userExtension: QueryUserExtension + + public interface Table2Void : _Query + public interface Params2Void : _Query + public interface Params2Table : _Query, _Selectable + public interface Void2Table : _Query, _Selectable +} \ No newline at end of file diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/table/Table.kt b/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/table/Table.kt index fc70f03..b180161 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/table/Table.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/serdha/api/v0/table/Table.kt @@ -1,7 +1,7 @@ package ru.landgrafhomyak.serdha.api.v0.table +import ru.landgrafhomyak.serdha.api.v0.misc._Selectable import ru.landgrafhomyak.serdha.api.v0.module.Module -import ru.landgrafhomyak.serdha.api.v0.queries._Selectable public interface Table : _Selectable { public val userExtension: UserExtension