Embedding queries versions with returning as default, driver will optimize if there are no return calls; refactored to remove 'SelectedTable' and 'SelectedColumn'
This commit is contained in:
parent
99759909a5
commit
06ae4b308c
@ -1,3 +0,0 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.misc
|
||||
|
||||
public interface SelectedColumn<RT, DT : DatabaseType<RT>, @Suppress("unused") OwnerTableUserExtension : Any, OwnerBuilderUserExtension : Any> : IntermediateColumn<RT, DT, OwnerBuilderUserExtension>
|
@ -1,9 +0,0 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.misc
|
||||
|
||||
public interface SelectedTable<SelectedTableUserExtension : Any, QueryUserExtension : Any> {
|
||||
public fun <RT, DT : DatabaseType<RT>> selectColumn(column: Column<RT, DT, SelectedTableUserExtension>): SelectedColumn<RT, DT, SelectedTableUserExtension, QueryUserExtension>
|
||||
|
||||
public interface WithParamsRedirect<SelectedTableUserExtension : Any, QueryUserExtension : Any> : SelectedTable<SelectedTableUserExtension, QueryUserExtension> {
|
||||
public fun <RT, DT : DatabaseType<RT>> setParam(subqueryParam: QueryParam<RT, DT, SelectedTableUserExtension>, parentParam: QueryParam<RT, DT, QueryUserExtension>)
|
||||
}
|
||||
}
|
@ -4,37 +4,26 @@ 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.SelectedColumn
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.SelectedTable
|
||||
import ru.landgrafhomyak.serdha.api.v0.runtime.ParametersSetter
|
||||
import ru.landgrafhomyak.serdha.api.v0.table.Table
|
||||
|
||||
@Suppress("RemoveRedundantQualifierName")
|
||||
public interface DeleteQuery<QueryUserExtension : Any> {
|
||||
public interface DeleteQuery<QueryUserExtension : Any> : _Selectable<QueryUserExtension> {
|
||||
public val userExtension: QueryUserExtension
|
||||
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any, SelectorTableUserExtension : Any> {
|
||||
public fun createDelete(table: Table<TargetTableUserExtension, *>, creator: DeleteQuery.Creator.Scope<QueryUserExtension, TargetTableUserExtension, SelectorTableUserExtension>): QueryUserExtension
|
||||
public fun createDeleteWithReturning(table: Table<TargetTableUserExtension, *>, creator: DeleteQuery.Creator.Scope<QueryUserExtension, TargetTableUserExtension, SelectorTableUserExtension>): QueryUserExtension
|
||||
|
||||
public interface Scope<QueryUserExtension : Any, TargetTableUserExtension : Any, SelectorTableUserExtension : Any> {
|
||||
public val selector: SelectedTable.WithParamsRedirect<SelectorTableUserExtension, QueryUserExtension>
|
||||
|
||||
public var selectorColumn: SelectedColumn<*, DatabaseType.ROW_ID<TargetTableUserExtension>, SelectorTableUserExtension, QueryUserExtension>
|
||||
|
||||
public val types: DatabaseTypesProvider
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> param(name: String, type: DT): QueryParam<RT, DT, QueryUserExtension>
|
||||
}
|
||||
}
|
||||
|
||||
public interface WithReturning<QueryUserExtension : Any> : DeleteQuery<QueryUserExtension>, _Selectable<QueryUserExtension> {
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any, SelectorTableUserExtension : Any> {
|
||||
public fun createDelete(table: Table<TargetTableUserExtension, *>, creator: DeleteQuery.WithReturning.Creator.Scope<QueryUserExtension, TargetTableUserExtension, SelectorTableUserExtension>): QueryUserExtension
|
||||
public val selectorParams: ParametersSetter.WithRedirect<SelectorTableUserExtension, QueryUserExtension>
|
||||
public var selectorColumn: Column<*, DatabaseType.ROW_ID<TargetTableUserExtension>, SelectorTableUserExtension>
|
||||
|
||||
public interface Scope<QueryUserExtension : Any, TargetTableUserExtension : Any, SelectorTableUserExtension : Any> : DeleteQuery.Creator.Scope<QueryUserExtension, TargetTableUserExtension, SelectorTableUserExtension> {
|
||||
public val removedValues: SelectedTable<TargetTableUserExtension, QueryUserExtension>
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> returnColumn(c: SelectedColumn<RT, DT, *, QueryUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
}
|
||||
public fun <RT, DT : DatabaseType<RT>> returnFromSubquery(c: Column<RT, DT, SelectorTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnRemovedValue(c: Column<RT, DT, TargetTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnParam(c: QueryParam<RT, DT, TargetTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
}
|
||||
}
|
||||
}
|
@ -5,8 +5,7 @@ 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.SelectedColumn
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.SelectedTable
|
||||
import ru.landgrafhomyak.serdha.api.v0.runtime.ParametersSetter
|
||||
import ru.landgrafhomyak.serdha.api.v0.table.UniqueIndex
|
||||
|
||||
public interface InsertQuery<QueryUserExtension : Any> {
|
||||
@ -24,41 +23,25 @@ public interface InsertQuery<QueryUserExtension : Any> {
|
||||
public val types: DatabaseTypesProvider
|
||||
|
||||
public fun onConflictUpdate(u: UniqueIndex<TargetTableUserExtension>, c: (_UpsertClauseScope<QueryUserExtension, TargetTableUserExtension>) -> Unit)
|
||||
|
||||
public fun onConflictThrow(u: UniqueIndex<TargetTableUserExtension>)
|
||||
|
||||
public fun onConflictSkip(u: UniqueIndex<TargetTableUserExtension>)
|
||||
}
|
||||
|
||||
|
||||
public interface SingleRow<QueryUserExtension : Any, TargetTableUserExtension : Any> : InsertQuery<QueryUserExtension> {
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||
public fun createInsertSingleRow(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension>): QueryUserExtension
|
||||
public fun createInsertSingleRowWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension>): QueryUserExtension
|
||||
|
||||
public interface Scope<QueryUserExtension : Any, TargetTableUserExtension : Any> : _CommonInsertCreatorScope<QueryUserExtension, TargetTableUserExtension> {
|
||||
public fun <RT, DT : DatabaseType<RT>> queryParam(name: String, type: DT): QueryParam<RT, DT, QueryUserExtension>
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> insertConstant(
|
||||
column: Column<RT, DT, TargetTableUserExtension>,
|
||||
paramName: String = column.name,
|
||||
): QueryParam<RT, DT, QueryUserExtension>
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> insertConstant(
|
||||
column: Column<RT, DT, TargetTableUserExtension>,
|
||||
param: QueryParam<RT, DT, QueryUserExtension>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
public interface WithReturning<QueryUserExtension : Any, TargetTableUserExtension : Any> : SingleRow<QueryUserExtension, TargetTableUserExtension>, _Selectable<QueryUserExtension> {
|
||||
public fun createInsertSingleRowWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension>): QueryUserExtension
|
||||
|
||||
public interface Scope<QueryUserExtension : Any, TargetTableUserExtension : Any> : _CommonInsertCreatorScope<QueryUserExtension, TargetTableUserExtension> {
|
||||
public val valuesAfterInsert: SelectedTable<TargetTableUserExtension, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> insertConstant(column: Column<RT, DT, TargetTableUserExtension>, paramName: String = column.name): QueryParam<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> insertConstant(column: Column<RT, DT, TargetTableUserExtension>, param: QueryParam<RT, DT, QueryUserExtension>)
|
||||
|
||||
public fun onConflictReturnOnly(u: UniqueIndex<TargetTableUserExtension>)
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> returnColumn(c: SelectedColumn<RT, DT, *, QueryUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnInsertedValue(c: Column<RT, DT, TargetTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnParam(c: QueryParam<RT, DT, TargetTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -66,36 +49,22 @@ public interface InsertQuery<QueryUserExtension : Any> {
|
||||
|
||||
public interface FromSubquery<QueryUserExtension : Any, TargetTableUserExtension : Any> : InsertQuery<QueryUserExtension> {
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any, SourceQueryUserExtension : Any> {
|
||||
public fun createInsertFromQuery(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension, SourceQueryUserExtension>): QueryUserExtension
|
||||
public fun createInsertSingleRowWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension, SourceQueryUserExtension>): QueryUserExtension
|
||||
|
||||
public interface Scope<QueryUserExtension : Any, TargetTableUserExtension : Any, SourceQueryUserExtension : Any> : _CommonInsertCreatorScope<QueryUserExtension, TargetTableUserExtension> {
|
||||
public fun <RT, DT : DatabaseType<RT>> queryParam(name: String, type: DT): QueryParam<RT, DT, QueryUserExtension>
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> insertConstant(
|
||||
column: Column<RT, DT, TargetTableUserExtension>,
|
||||
paramName: String = column.name,
|
||||
): QueryParam<RT, DT, QueryUserExtension>
|
||||
public val sourceQueryParams: ParametersSetter.WithRedirect<SourceQueryUserExtension, QueryUserExtension>
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> insertConstant(
|
||||
column: Column<RT, DT, TargetTableUserExtension>,
|
||||
param: QueryParam<RT, DT, QueryUserExtension>
|
||||
)
|
||||
|
||||
public val sourceValues: SelectedTable<TargetTableUserExtension, QueryUserExtension>
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> insertColumn(dst: Column<RT, DT, TargetTableUserExtension>, src: SelectedColumn<RT, DT, SourceQueryUserExtension, QueryUserExtension>)
|
||||
}
|
||||
}
|
||||
|
||||
public interface WithReturning<QueryUserExtension : Any, TargetTableUserExtension : Any> : FromSubquery<QueryUserExtension, TargetTableUserExtension>, _Selectable<QueryUserExtension> {
|
||||
public fun createInsertSingleRowWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension>): QueryUserExtension
|
||||
|
||||
public interface Scope<QueryUserExtension : Any, TargetTableUserExtension : Any> : _CommonInsertCreatorScope<QueryUserExtension, TargetTableUserExtension> {
|
||||
public val valuesAfterInsert: SelectedTable<TargetTableUserExtension, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> insertConstant(column: Column<RT, DT, TargetTableUserExtension>, paramName: String = column.name): QueryParam<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> insertConstant(column: Column<RT, DT, TargetTableUserExtension>, param: QueryParam<RT, DT, QueryUserExtension>)
|
||||
public fun <RT, DT : DatabaseType<RT>> insertFromSubquery(column: Column<RT, DT, TargetTableUserExtension>, subquery: QueryParam<RT, DT, SourceQueryUserExtension>)
|
||||
|
||||
public fun onConflictReturnOnly(u: UniqueIndex<TargetTableUserExtension>)
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> returnColumn(c: SelectedColumn<RT, DT, *, QueryUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnFromSubquery(c: Column<RT, DT, SourceQueryUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnNewValue(c: Column<RT, DT, TargetTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnParam(c: QueryParam<RT, DT, TargetTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -107,6 +76,7 @@ public interface InsertQuery<QueryUserExtension : Any> {
|
||||
public interface Scope<QueryUserExtension : Any, TargetTableUserExtension : Any> : _CommonInsertCreatorScope<QueryUserExtension, TargetTableUserExtension> {
|
||||
public fun <RT, DT : DatabaseType<RT>> inputColumn(name: String, type: DT): QueryParam<RT, DT, QueryUserExtension>
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> insertColumn(dst: Column<RT, DT, TargetTableUserExtension>, name: String = dst.name)
|
||||
public fun <RT, DT : DatabaseType<RT>> insertColumn(dst: Column<RT, DT, TargetTableUserExtension>, src: QueryParam<RT, DT, QueryUserExtension>)
|
||||
}
|
||||
}
|
||||
|
@ -3,8 +3,10 @@ package ru.landgrafhomyak.serdha.api.v0.queries
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.Column
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.IntermediateColumn
|
||||
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.SelectedTable
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.QueryParam
|
||||
import ru.landgrafhomyak.serdha.api.v0.runtime.ParametersSetter
|
||||
|
||||
public interface SelectQuery<QueryUserExtension : Any> : _Selectable<QueryUserExtension> {
|
||||
public val userExtension: QueryUserExtension
|
||||
@ -15,28 +17,35 @@ public interface SelectQuery<QueryUserExtension : Any> : _Selectable<QueryUserEx
|
||||
|
||||
@Suppress("ClassName")
|
||||
public interface _CommonSelectCreatorScope<QueryUserExtension : Any> {
|
||||
public fun where(expression: IntermediateColumn<Boolean, DatabaseType.BOOLEAN, QueryUserExtension>)
|
||||
public fun orderBy(order: Order, vararg expression: IntermediateColumn<*, *, QueryUserExtension>)
|
||||
|
||||
public var limit: UInt
|
||||
|
||||
public var offset: ULong
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> returnColumn(expr: IntermediateColumn<RT, DT, QueryUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public val types: DatabaseTypesProvider
|
||||
public fun <RT, DT : DatabaseType<RT>> queryParam(name: String, type: DT): QueryParam<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> paramAsColumn(param: QueryParam<RT, DT, QueryUserExtension>): IntermediateColumn<RT, DT, QueryUserExtension>
|
||||
|
||||
public fun <ExpressionUserExtension : Any> mapColumns(
|
||||
expression: Expression<ExpressionUserExtension>,
|
||||
input: Expression.InputLinker<ExpressionUserExtension, QueryUserExtension>,
|
||||
output: Expression.OutputLinker<ExpressionUserExtension, QueryUserExtension>
|
||||
)
|
||||
|
||||
public fun where(expression: IntermediateColumn<Boolean, DatabaseType.BOOLEAN, QueryUserExtension>)
|
||||
public fun orderBy(order: Order, vararg expression: IntermediateColumn<*, *, QueryUserExtension>)
|
||||
|
||||
public var limit: UInt
|
||||
public var offset: ULong
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> returnParam(expr: QueryParam<RT, DT, QueryUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnColumn(expr: IntermediateColumn<RT, DT, QueryUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
}
|
||||
|
||||
public interface JoinCreator<QueryUserExtension : Any, LeftTableUserExtension : Any, RightTableUserExtension : Any> : _CommonSelectCreatorScope<QueryUserExtension> {
|
||||
public fun createSelectWithJoin(creator: Scope<QueryUserExtension, LeftTableUserExtension, RightTableUserExtension>): QueryUserExtension
|
||||
|
||||
public interface Scope<QueryUserExtension : Any, LeftTableUserExtension : Any, RightTableUserExtension : Any> {
|
||||
public val leftTable: SelectedTable<LeftTableUserExtension, QueryUserExtension>
|
||||
public val rightTable: SelectedTable<RightTableUserExtension, QueryUserExtension>
|
||||
public val leftSubqueryParams: ParametersSetter.WithRedirect<LeftTableUserExtension, QueryUserExtension>
|
||||
public val rightSubqueryParams: ParametersSetter.WithRedirect<RightTableUserExtension, QueryUserExtension>
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> selectColumnFromLeft(param: Column<RT, DT, LeftTableUserExtension>): IntermediateColumn<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> selectColumnFromRight(param: Column<RT, DT, RightTableUserExtension>): IntermediateColumn<RT, DT, QueryUserExtension>
|
||||
}
|
||||
}
|
||||
|
||||
@ -44,7 +53,9 @@ public interface SelectQuery<QueryUserExtension : Any> : _Selectable<QueryUserEx
|
||||
public fun createSelect(creator: Scope<QueryUserExtension, TableUserExtension>): QueryUserExtension
|
||||
|
||||
public interface Scope<QueryUserExtension : Any, TableUserExtension : Any> : _CommonSelectCreatorScope<QueryUserExtension> {
|
||||
public val selectedTable: TableUserExtension
|
||||
public val subqueryParams: ParametersSetter.WithRedirect<TableUserExtension, QueryUserExtension>
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> selectColumnFromSubquery(param: Column<RT, DT, TableUserExtension>): IntermediateColumn<RT, DT, QueryUserExtension>
|
||||
}
|
||||
}
|
||||
}
|
@ -3,37 +3,31 @@ package ru.landgrafhomyak.serdha.api.v0.queries
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.Column
|
||||
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.SelectedColumn
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.SelectedTable
|
||||
import ru.landgrafhomyak.serdha.api.v0.runtime.ParametersSetter
|
||||
|
||||
@Suppress("RemoveRedundantQualifierName")
|
||||
public interface UpdateQuery<QueryUserExtension : Any> {
|
||||
public interface UpdateQuery<QueryUserExtension : Any> : _Selectable<QueryUserExtension> {
|
||||
public val userExtension: QueryUserExtension
|
||||
|
||||
public interface Creator<QueryUserWrapper : Any, TargetTableUserExtension : Any, SelectorTableUserExtension : Any> {
|
||||
public fun createUpdate(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserWrapper, TargetTableUserExtension, SelectorTableUserExtension>): QueryUserWrapper
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any, SelectorTableUserExtension : Any> {
|
||||
public fun createUpdateWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension, SelectorTableUserExtension>): QueryUserExtension
|
||||
|
||||
public interface Scope<QueryUserExtension : Any, TargetTableUserExtension : Any, SelectorTableUserExtension : Any> {
|
||||
public val oldValues: SelectedTable<TargetTableUserExtension, QueryUserExtension>
|
||||
|
||||
public val selector: SelectedTable.WithParamsRedirect<SelectorTableUserExtension, QueryUserExtension>
|
||||
|
||||
public var selectorColumn: SelectedColumn<*, DatabaseType.ROW_ID<TargetTableUserExtension>, SelectorTableUserExtension, QueryUserExtension>
|
||||
|
||||
public fun <RuntimeType, DT : DatabaseType<RuntimeType>> updateColumn(c: Column<RuntimeType, DT, TargetTableUserExtension>, e: SelectedColumn<RuntimeType, DT, SelectorTableUserExtension, QueryUserExtension>)
|
||||
|
||||
public val types: DatabaseTypesProvider
|
||||
public fun <RT, DT : DatabaseType<RT>> param(name: String, type: DT): QueryParam<RT, DT, QueryUserExtension>
|
||||
}
|
||||
}
|
||||
|
||||
public interface WithReturning<QueryUserExtension : Any> : UpdateQuery<QueryUserExtension>, _Selectable<QueryUserExtension> {
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any, SelectorTableUserExtension : Any> {
|
||||
public fun createDelete(table: Table<TargetTableUserExtension, *>, creator: UpdateQuery.WithReturning.Creator.Scope<QueryUserExtension, TargetTableUserExtension, SelectorTableUserExtension>): QueryUserExtension
|
||||
public val selectorParams: ParametersSetter.WithRedirect<SelectorTableUserExtension, QueryUserExtension>
|
||||
public var selectorColumn: Column<*, DatabaseType.ROW_ID<TargetTableUserExtension>, SelectorTableUserExtension>
|
||||
|
||||
public interface Scope<QueryUserExtension : Any, TargetTableUserExtension : Any, SelectorTableUserExtension : Any> : UpdateQuery.Creator.Scope<QueryUserExtension, TargetTableUserExtension, SelectorTableUserExtension> {
|
||||
public fun <RT, DT : DatabaseType<RT>> returnColumn(c: SelectedColumn<RT, DT, *, QueryUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
}
|
||||
public fun <RT, DT : DatabaseType<RT>> updateColumnWithSubquery(c: Column<RT, DT, TargetTableUserExtension>, e: Column<RT, DT, SelectorTableUserExtension>)
|
||||
public fun <RT, DT : DatabaseType<RT>> updateColumnWithOldValue(c: Column<RT, DT, TargetTableUserExtension>, e: Column<RT, DT, TargetTableUserExtension>)
|
||||
public fun <RT, DT : DatabaseType<RT>> updateColumnWithParam(c: Column<RT, DT, TargetTableUserExtension>, e: QueryParam<RT, DT, QueryUserExtension>)
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> returnFromSubquery(c: Column<RT, DT, SelectorTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnOldValue(c: Column<RT, DT, TargetTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnNewValue(c: Column<RT, DT, TargetTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnParam(c: QueryParam<RT, DT, TargetTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
}
|
||||
}
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.runtime
|
||||
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.QueryParam
|
||||
|
||||
public interface ParametersSetter<QueryUserExtension : Any/* todo*/> {
|
||||
@ -15,4 +16,8 @@ public interface ParametersSetter<QueryUserExtension : Any/* todo*/> {
|
||||
public operator fun set(c: QueryParam<ULong, *, QueryUserExtension>, value: ULong): Unit = this.set<ULong>(c, value)
|
||||
public operator fun set(c: QueryParam<Char, *, QueryUserExtension>, value: Char): Unit = this.set<Char>(c, value)
|
||||
public operator fun set(c: QueryParam<Boolean, *, QueryUserExtension>, value: Boolean): Unit = this.set<Boolean>(c, value)
|
||||
|
||||
public interface WithRedirect<QueryUserExtension : Any, ParentQueryUserExtension : Any> : ParametersSetter<QueryUserExtension> {
|
||||
public fun <RT, DT : DatabaseType<RT>> redirect(c: QueryParam<RT, DT, QueryUserExtension>, value: QueryParam<RT, DT, ParentQueryUserExtension>)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user