Restricted 'RowExpression' to only immutable queries

This commit is contained in:
Andrew Golovashevich 2025-02-01 04:33:45 +03:00
parent f1368a2feb
commit fba3712662
2 changed files with 5 additions and 3 deletions

View File

@ -31,7 +31,7 @@ public interface RowExpression<ttUE : Any, @Suppress("unused") R> {
public interface Constructor<ttUE : Any, rUE : Any, R> { public interface Constructor<ttUE : Any, rUE : Any, R> {
public val rowExports: RowExportsConstructor<rUE, ttUE> public val rowExports: RowExportsConstructor<rUE, ttUE>
public fun createRowExpression(internalQueries: _Query.Constructor.Scope, runtimeQueries: _Query.Constructor.Scope): Action<rUE, R> public fun createRowExpression(internalQueries: _Query.Constructor._SelectsScope, runtimeQueries: _Query.Constructor._SelectsScope): Action<rUE, R>
} }
public interface Action<rUE : Any, R> { public interface Action<rUE : Any, R> {

View File

@ -15,12 +15,14 @@ public interface _Query<QueryUserExtension : Any> {
public interface Constructor<qUE : Any> { public interface Constructor<qUE : Any> {
public fun createQuery(internalQueries: Scope, outQueries: Scope): qUE public fun createQuery(internalQueries: Scope, outQueries: Scope): qUE
public interface Scope { public interface _SelectsScope {
public fun <qUE : Any, sqUE : Any> select(constructor: SelectQuery.Simple.Constructor<qUE, sqUE>): SelectQuery.Simple<qUE> public fun <qUE : Any, sqUE : Any> select(constructor: SelectQuery.Simple.Constructor<qUE, sqUE>): SelectQuery.Simple<qUE>
public fun <qUE : Any, lUE : Any, rUE : Any> selectWithJoin(constructor: SelectQuery.WithJoin.Constructor<qUE, lUE, rUE>): SelectQuery.WithJoin<qUE> public fun <qUE : Any, lUE : Any, rUE : Any> selectWithJoin(constructor: SelectQuery.WithJoin.Constructor<qUE, lUE, rUE>): SelectQuery.WithJoin<qUE>
public fun <qUE : Any, sqUE : Any> selectReducing(constructor: SelectQuery.Reducing.Constructor<qUE, sqUE>): SelectQuery.Reducing<qUE> public fun <qUE : Any, sqUE : Any> selectReducing(constructor: SelectQuery.Reducing.Constructor<qUE, sqUE>): SelectQuery.Reducing<qUE>
public fun <qUE : Any, sqUE : Any> selectFolding(constructor: SelectQuery.Folding.Constructor<qUE, sqUE>): SelectQuery.Folding<qUE> public fun <qUE : Any, sqUE : Any> selectFolding(constructor: SelectQuery.Folding.Constructor<qUE, sqUE>): SelectQuery.Folding<qUE>
}
public interface Scope : _SelectsScope {
public fun <qUE : Any, ttUE : Any> insertSingleRow(constructor: InsertQuery.SingleRow.Constructor<qUE, ttUE>): InsertQuery.SingleRow<qUE> public fun <qUE : Any, ttUE : Any> insertSingleRow(constructor: InsertQuery.SingleRow.Constructor<qUE, ttUE>): InsertQuery.SingleRow<qUE>
public fun <qUE : Any, ttUE : Any, sUE : Any> insertFromSubquery(constructor: InsertQuery.FromSubquery.Constructor<qUE, ttUE, sUE>): InsertQuery.FromSubquery<qUE> public fun <qUE : Any, ttUE : Any, sUE : Any> insertFromSubquery(constructor: InsertQuery.FromSubquery.Constructor<qUE, ttUE, sUE>): InsertQuery.FromSubquery<qUE>