From fba371266280a0e37fbe37e45e1140589e92d0bc Mon Sep 17 00:00:00 2001 From: Andrew Golovashevich Date: Sat, 1 Feb 2025 04:33:45 +0300 Subject: [PATCH] Restricted 'RowExpression' to only immutable queries --- .../ru/landgrafhomyak/db/serdha0/api/misc/RowExpression.kt | 2 +- .../ru/landgrafhomyak/db/serdha0/api/queries/_Query.kt | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/api/misc/RowExpression.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/api/misc/RowExpression.kt index 3066441..f90aef8 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/api/misc/RowExpression.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/api/misc/RowExpression.kt @@ -31,7 +31,7 @@ public interface RowExpression { public interface Constructor { public val rowExports: RowExportsConstructor - public fun createRowExpression(internalQueries: _Query.Constructor.Scope, runtimeQueries: _Query.Constructor.Scope): Action + public fun createRowExpression(internalQueries: _Query.Constructor._SelectsScope, runtimeQueries: _Query.Constructor._SelectsScope): Action } public interface Action { diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/api/queries/_Query.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/api/queries/_Query.kt index bc57560..16c2c93 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/api/queries/_Query.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/api/queries/_Query.kt @@ -15,12 +15,14 @@ public interface _Query { public interface Constructor { public fun createQuery(internalQueries: Scope, outQueries: Scope): qUE - public interface Scope { - + public interface _SelectsScope { public fun select(constructor: SelectQuery.Simple.Constructor): SelectQuery.Simple public fun selectWithJoin(constructor: SelectQuery.WithJoin.Constructor): SelectQuery.WithJoin public fun selectReducing(constructor: SelectQuery.Reducing.Constructor): SelectQuery.Reducing public fun selectFolding(constructor: SelectQuery.Folding.Constructor): SelectQuery.Folding + } + + public interface Scope : _SelectsScope { public fun insertSingleRow(constructor: InsertQuery.SingleRow.Constructor): InsertQuery.SingleRow public fun insertFromSubquery(constructor: InsertQuery.FromSubquery.Constructor): InsertQuery.FromSubquery