Shortened generics' names in queries and moved tables references from creator's param to scope
This commit is contained in:
parent
51c3e6869f
commit
461f8e0d9c
@ -8,19 +8,21 @@ import ru.landgrafhomyak.serdha.api.v0.runtime.InputRow
|
||||
import ru.landgrafhomyak.serdha.api.v0.table.RowId
|
||||
import ru.landgrafhomyak.serdha.api.v0.table.Table
|
||||
|
||||
public interface DeleteQuery<QueryUserExtension : Any> : _Query<QueryUserExtension> {
|
||||
public interface SingleRow<QueryUserExtension : Any> : DeleteQuery<QueryUserExtension>, _Query.Params2Table<QueryUserExtension> {
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||
public fun createDeleteSingleRowWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension>): QueryUserExtension
|
||||
public interface DeleteQuery<qUE : Any> : _Query<qUE> {
|
||||
public interface SingleRow<qUE : Any> : DeleteQuery<qUE>, _Query.Params2Table<qUE> {
|
||||
public interface Creator<qUE : Any, ttUE : Any> {
|
||||
public fun createDeleteSingleRowWithReturning(creator: Scope<qUE, ttUE>): qUE
|
||||
|
||||
public interface Scope<qUE : Any, ttUE : Any> {
|
||||
public val tt: Table<ttUE, *>
|
||||
|
||||
public interface Scope<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||
public val types: DatabaseTypesProvider
|
||||
public fun <RT, DT : DatabaseType<RT>> param(name: String, type: DT): QueryParam<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> param(name: String, type: DT): QueryParam<RT, DT, qUE>
|
||||
|
||||
public var rowToRemove: QueryParam<*, DatabaseType.ROW_ID<TargetTableUserExtension>, QueryUserExtension>
|
||||
public var rowToRemove: QueryParam<*, DatabaseType.ROW_ID<ttUE>, qUE>
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> returnRemovedValue(name: String, column: Column<RT, DT, TargetTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnParam(name: String, column: QueryParam<RT, DT, TargetTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnRemovedValue(name: String, column: Column<RT, DT, ttUE>): Column<RT, DT, qUE>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnParam(name: String, column: QueryParam<RT, DT, ttUE>): Column<RT, DT, qUE>
|
||||
|
||||
public fun ifNoRowSkip()
|
||||
public fun ifNoRowJustReturn()
|
||||
@ -29,20 +31,23 @@ public interface DeleteQuery<QueryUserExtension : Any> : _Query<QueryUserExtensi
|
||||
}
|
||||
}
|
||||
|
||||
public interface FromSubquery<QueryUserExtension : Any> : DeleteQuery<QueryUserExtension>, _Query.Params2Table<QueryUserExtension> {
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any, SelectorTableUserExtension : Any> {
|
||||
public fun createDeleteFromSubqueryWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension, SelectorTableUserExtension>): QueryUserExtension
|
||||
public interface FromSubquery<qUE : Any> : DeleteQuery<qUE>, _Query.Params2Table<qUE> {
|
||||
public interface Creator<qUE : Any, ttUE : Any, sUE : Any> {
|
||||
public fun createDeleteFromSubqueryWithReturning(creator: Scope<qUE, ttUE, sUE>): qUE
|
||||
|
||||
public interface Scope<qUE : Any, ttUE : Any, sUE : Any> {
|
||||
public val tt: Table<ttUE, *>
|
||||
public val sUExt: sUE
|
||||
|
||||
public interface Scope<QueryUserExtension : Any, TargetTableUserExtension : Any, SelectorTableUserExtension : Any> {
|
||||
public val types: DatabaseTypesProvider
|
||||
public fun <RT, DT : DatabaseType<RT>> param(name: String, type: DT): QueryParam<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> param(name: String, type: DT): QueryParam<RT, DT, qUE>
|
||||
|
||||
public val selectorParams: InputRow.WithRedirect<SelectorTableUserExtension, QueryUserExtension>
|
||||
public var selectorColumn: Column<*, DatabaseType.ROW_ID<TargetTableUserExtension>, SelectorTableUserExtension>
|
||||
public val selectorParams: InputRow.WithRedirect<sUE, qUE>
|
||||
public var selectorColumn: Column<*, DatabaseType.ROW_ID<ttUE>, sUE>
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> returnFromSubquery(name: String, column: Column<RT, DT, SelectorTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnRemovedValue(name: String, column: Column<RT, DT, TargetTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnParam(name: String, column: QueryParam<RT, DT, TargetTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnFromSubquery(name: String, column: Column<RT, DT, sUE>): Column<RT, DT, qUE>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnRemovedValue(name: String, column: Column<RT, DT, ttUE>): Column<RT, DT, qUE>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnParam(name: String, column: QueryParam<RT, DT, ttUE>): Column<RT, DT, qUE>
|
||||
|
||||
public fun ifNoRowSkip()
|
||||
public fun ifNoRowJustReturn()
|
||||
@ -51,12 +56,14 @@ public interface DeleteQuery<QueryUserExtension : Any> : _Query<QueryUserExtensi
|
||||
}
|
||||
}
|
||||
|
||||
public interface MultipleRows<QueryUserExtension : Any> : DeleteQuery<QueryUserExtension>, _Query.Table2Void<QueryUserExtension> {
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||
public fun createMultipleRows(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension>): QueryUserExtension
|
||||
public interface MultipleRows<qUE : Any> : DeleteQuery<qUE>, _Query.Table2Void<qUE> {
|
||||
public interface Creator<qUE : Any, tUE : Any> {
|
||||
public fun createMultipleRows(creator: Scope<qUE, tUE>): qUE
|
||||
|
||||
public interface Scope<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||
public val rowsToRemove: QueryParam<RowId<TargetTableUserExtension>, DatabaseType.ROW_ID<TargetTableUserExtension>, QueryUserExtension>
|
||||
public interface Scope<qUE : Any, ttUE : Any> {
|
||||
public val tt: Table<ttUE, *>
|
||||
|
||||
public val rowsToRemove: QueryParam<RowId<ttUE>, DatabaseType.ROW_ID<ttUE>, qUE>
|
||||
|
||||
public fun ifNoRowSkip()
|
||||
public fun ifNoRowThrow()
|
||||
|
@ -8,72 +8,79 @@ import ru.landgrafhomyak.serdha.api.v0.misc.QueryParam
|
||||
import ru.landgrafhomyak.serdha.api.v0.runtime.InputRow
|
||||
import ru.landgrafhomyak.serdha.api.v0.table.UniqueIndex
|
||||
|
||||
public interface InsertQuery<QueryUserExtension : Any> : _Query<QueryUserExtension> {
|
||||
public interface InsertQuery<qUE : Any> : _Query<qUE> {
|
||||
@Suppress("ClassName")
|
||||
public interface _UpsertClauseScope<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||
public fun keepColumn(column: Column<*, *, TargetTableUserExtension>)
|
||||
public fun overrideColumn(column: Column<*, *, TargetTableUserExtension>)
|
||||
public fun <RT, DT : DatabaseType<RT>> setFromParam(dst: Column<RT, DT, QueryUserExtension>, src: QueryParam<RT, DT, QueryUserExtension>)
|
||||
public fun <RT> setConstant(dst: Column<RT, *, QueryUserExtension>, src: RT)
|
||||
public interface _UpsertClauseScope<qUE : Any, tUE : Any> {
|
||||
public fun keepColumn(column: Column<*, *, tUE>)
|
||||
public fun overrideColumn(column: Column<*, *, tUE>)
|
||||
public fun <RT, DT : DatabaseType<RT>> setFromParam(dst: Column<RT, DT, qUE>, src: QueryParam<RT, DT, qUE>)
|
||||
public fun <RT> setConstant(dst: Column<RT, *, qUE>, src: RT)
|
||||
}
|
||||
|
||||
@Suppress("ClassName")
|
||||
public interface _CommonInsertCreatorScope<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||
public interface _CommonInsertCreatorScope<qUE : Any, ttUE : 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 fun onConflictUpdate(u: UniqueIndex<ttUE>, c: (_UpsertClauseScope<qUE, ttUE>) -> Unit)
|
||||
public fun onConflictThrow(u: UniqueIndex<ttUE>)
|
||||
public fun onConflictSkip(u: UniqueIndex<ttUE>)
|
||||
}
|
||||
|
||||
|
||||
public interface SingleRow<QueryUserExtension : Any> : InsertQuery<QueryUserExtension>, _Query.Params2Table<QueryUserExtension> {
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||
public fun createInsertSingleRowWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension>): QueryUserExtension
|
||||
public interface SingleRow<qUE : Any> : InsertQuery<qUE>, _Query.Params2Table<qUE> {
|
||||
public interface Creator<qUE : Any, ttUE : Any> {
|
||||
public fun createInsertSingleRowWithReturning(creator: Scope<qUE, ttUE>): qUE
|
||||
|
||||
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 interface Scope<qUE : Any, ttUE : Any> : _CommonInsertCreatorScope<qUE, ttUE> {
|
||||
public val tt: Table<ttUE, *>
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> insertConstant(dst: Column<RT, DT, TargetTableUserExtension>, src: QueryParam<RT, DT, QueryUserExtension>)
|
||||
public fun <RT, DT : DatabaseType<RT>> queryParam(name: String, type: DT): QueryParam<RT, DT, qUE>
|
||||
|
||||
public fun onConflictReturnOnly(u: UniqueIndex<TargetTableUserExtension>)
|
||||
public fun <RT, DT : DatabaseType<RT>> insertConstant(dst: Column<RT, DT, ttUE>, src: QueryParam<RT, DT, qUE>)
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> returnInsertedValue(name: String, c: Column<RT, DT, TargetTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnParam(name: String, c: QueryParam<RT, DT, TargetTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun onConflictReturnOnly(u: UniqueIndex<ttUE>)
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> returnInsertedValue(name: String, c: Column<RT, DT, ttUE>): Column<RT, DT, qUE>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnParam(name: String, c: QueryParam<RT, DT, ttUE>): Column<RT, DT, qUE>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public interface FromSubquery<QueryUserExtension : Any> : InsertQuery<QueryUserExtension>, _Query.Params2Table<QueryUserExtension> {
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any, SourceQueryUserExtension : Any> {
|
||||
public fun createInsertSingleRowWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension, SourceQueryUserExtension>): QueryUserExtension
|
||||
public interface FromSubquery<qUE : Any> : InsertQuery<qUE>, _Query.Params2Table<qUE> {
|
||||
public interface Creator<qUE : Any, ttUE : Any, sUE : Any> {
|
||||
public fun createInsertSingleRowWithReturning(creator: Scope<qUE, ttUE, sUE>): qUE
|
||||
|
||||
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 interface Scope<qUE : Any, ttUE : Any, sUE : Any> : _CommonInsertCreatorScope<qUE, ttUE> {
|
||||
public val tt: Table<ttUE, *>
|
||||
public val sUExt: sUE
|
||||
|
||||
public val sourceQueryParams: InputRow.WithRedirect<SourceQueryUserExtension, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> queryParam(name: String, type: DT): QueryParam<RT, DT, qUE>
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> insertConstant(dst: Column<RT, DT, TargetTableUserExtension>, src: QueryParam<RT, DT, QueryUserExtension>)
|
||||
public fun <RT, DT : DatabaseType<RT>> insertFromSubquery(dst: Column<RT, DT, TargetTableUserExtension>, src: QueryParam<RT, DT, SourceQueryUserExtension>)
|
||||
public val sourceQueryParams: InputRow.WithRedirect<sUE, qUE>
|
||||
|
||||
public fun onConflictReturnOnly(u: UniqueIndex<TargetTableUserExtension>)
|
||||
public fun <RT, DT : DatabaseType<RT>> insertConstant(dst: Column<RT, DT, ttUE>, src: QueryParam<RT, DT, qUE>)
|
||||
public fun <RT, DT : DatabaseType<RT>> insertFromSubquery(dst: Column<RT, DT, ttUE>, src: QueryParam<RT, DT, sUE>)
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> returnFromSubquery(name: String, column: Column<RT, DT, SourceQueryUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnNewValue(name: String, column: Column<RT, DT, TargetTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnParam(name: String, param: QueryParam<RT, DT, TargetTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun onConflictReturnOnly(u: UniqueIndex<ttUE>)
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> returnFromSubquery(name: String, column: Column<RT, DT, sUE>): Column<RT, DT, qUE>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnNewValue(name: String, column: Column<RT, DT, ttUE>): Column<RT, DT, qUE>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnParam(name: String, param: QueryParam<RT, DT, ttUE>): Column<RT, DT, qUE>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public interface MultipleRows<QueryUserExtension : Any> : InsertQuery<QueryUserExtension>, _Query.Table2Void<QueryUserExtension> {
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||
public fun createInsertMultipleRows(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension>): QueryUserExtension
|
||||
public interface MultipleRows<qUE : Any> : InsertQuery<qUE>, _Query.Table2Void<qUE> {
|
||||
public interface Creator<qUE : Any, ttUE : Any> {
|
||||
public fun createInsertMultipleRows(creator: Scope<qUE, ttUE>): qUE
|
||||
|
||||
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 interface Scope<qUE : Any, ttUE : Any> : _CommonInsertCreatorScope<qUE, ttUE> {
|
||||
public val tt: Table<ttUE, *>
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> insertColumn(dst: Column<RT, DT, TargetTableUserExtension>, src: QueryParam<RT, DT, QueryUserExtension>)
|
||||
public fun <RT, DT : DatabaseType<RT>> inputColumn(name: String, type: DT): QueryParam<RT, DT, qUE>
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> insertColumn(dst: Column<RT, DT, ttUE>, src: QueryParam<RT, DT, qUE>)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -9,56 +9,61 @@ import ru.landgrafhomyak.serdha.api.v0.misc.Expression
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.QueryParam
|
||||
import ru.landgrafhomyak.serdha.api.v0.runtime.InputRow
|
||||
|
||||
public interface SelectQuery<QueryUserExtension : Any> : _Query<QueryUserExtension> {
|
||||
public interface SelectQuery<qUE : Any> : _Query<qUE> {
|
||||
public enum class Order {
|
||||
ASC, DESC
|
||||
}
|
||||
|
||||
@Suppress("ClassName")
|
||||
public interface _CommonSelectCreatorScope<QueryUserExtension : Any> {
|
||||
public interface _CommonSelectCreatorScope<qUE : Any> {
|
||||
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 <RT, DT : DatabaseType<RT>> queryParam(name: String, type: DT): QueryParam<RT, DT, qUE>
|
||||
public fun <RT, DT : DatabaseType<RT>> paramAsColumn(param: QueryParam<RT, DT, qUE>): IntermediateColumn<RT, DT, qUE>
|
||||
|
||||
public val builtinExpressions: BuiltinExpressionsProvider<QueryUserExtension>
|
||||
public fun <ExpressionUserExtension : Any> mapColumns(
|
||||
expression: Expression<ExpressionUserExtension>,
|
||||
input: Expression.InputLinker<ExpressionUserExtension, QueryUserExtension>,
|
||||
output: Expression.OutputLinker<ExpressionUserExtension, QueryUserExtension>
|
||||
public val builtinExpressions: BuiltinExpressionsProvider<qUE>
|
||||
public fun <eUE : Any> mapColumns(
|
||||
expression: Expression<eUE>,
|
||||
input: Expression.InputLinker<eUE, qUE>,
|
||||
output: Expression.OutputLinker<eUE, qUE>
|
||||
)
|
||||
|
||||
public fun where(column: IntermediateColumn<Boolean, DatabaseType.BOOLEAN, QueryUserExtension>)
|
||||
public fun orderBy(order: Order, vararg column: IntermediateColumn<*, *, QueryUserExtension>)
|
||||
public fun where(column: IntermediateColumn<Boolean, DatabaseType.BOOLEAN, qUE>)
|
||||
public fun orderBy(order: Order, vararg column: IntermediateColumn<*, *, qUE>)
|
||||
|
||||
public var limit: UInt
|
||||
public var offset: ULong
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> returnParam(name: String, param: QueryParam<RT, DT, QueryUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnColumn(name: String, column: IntermediateColumn<RT, DT, QueryUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnParam(name: String, param: QueryParam<RT, DT, qUE>): Column<RT, DT, qUE>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnColumn(name: String, column: IntermediateColumn<RT, DT, qUE>): Column<RT, DT, qUE>
|
||||
}
|
||||
|
||||
public interface WithJoin<QueryUserExtension : Any> : SelectQuery<QueryUserExtension>, _Query.Params2Table<QueryUserExtension> {
|
||||
public interface Creator<QueryUserExtension : Any, LeftTableUserExtension : Any, RightTableUserExtension : Any> : _CommonSelectCreatorScope<QueryUserExtension> {
|
||||
public fun createSelectWithJoin(creator: Scope<QueryUserExtension, LeftTableUserExtension, RightTableUserExtension>): QueryUserExtension
|
||||
public interface WithJoin<qUE : Any> : SelectQuery<qUE>, _Query.Params2Table<qUE> {
|
||||
public interface Creator<qUE : Any, lsqUE : Any, rsqUE : Any> : _CommonSelectCreatorScope<qUE> {
|
||||
public fun createSelectWithJoin(creator: Scope<qUE, lsqUE, rsqUE>): qUE
|
||||
|
||||
public interface Scope<QueryUserExtension : Any, LeftTableUserExtension : Any, RightTableUserExtension : Any> {
|
||||
public val leftSubqueryParams: InputRow.WithRedirect<LeftTableUserExtension, QueryUserExtension>
|
||||
public val rightSubqueryParams: InputRow.WithRedirect<RightTableUserExtension, QueryUserExtension>
|
||||
public interface Scope<qUE : Any, lsqUE : Any, rsqUE : Any> {
|
||||
public val lsqUExt: lsqUE
|
||||
public val rsqUExt: rsqUE
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> selectColumnFromLeft(column: Column<RT, DT, LeftTableUserExtension>): IntermediateColumn<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> selectColumnFromRight(column: Column<RT, DT, RightTableUserExtension>): IntermediateColumn<RT, DT, QueryUserExtension>
|
||||
public val leftSubqueryParams: InputRow.WithRedirect<lsqUE, qUE>
|
||||
public val rightSubqueryParams: InputRow.WithRedirect<rsqUE, qUE>
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> selectColumnFromLeft(column: Column<RT, DT, lsqUE>): IntermediateColumn<RT, DT, qUE>
|
||||
public fun <RT, DT : DatabaseType<RT>> selectColumnFromRight(column: Column<RT, DT, rsqUE>): IntermediateColumn<RT, DT, qUE>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public interface FromSubquery<QueryUserExtension : Any> : SelectQuery<QueryUserExtension>, _Query.Params2Table<QueryUserExtension> {
|
||||
public interface Creator<QueryUserExtension : Any, TableUserExtension : Any> {
|
||||
public fun createSelect(creator: Scope<QueryUserExtension, TableUserExtension>): QueryUserExtension
|
||||
public interface FromSubquery<qUE : Any> : SelectQuery<qUE>, _Query.Params2Table<qUE> {
|
||||
public interface Creator<qUE : Any, tUE : Any> {
|
||||
public val tUExt: tUE
|
||||
|
||||
public interface Scope<QueryUserExtension : Any, TableUserExtension : Any> : _CommonSelectCreatorScope<QueryUserExtension> {
|
||||
public val subqueryParams: InputRow.WithRedirect<TableUserExtension, QueryUserExtension>
|
||||
public fun createSelect(creator: Scope<qUE, tUE>): qUE
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> selectColumnFromSubquery(param: Column<RT, DT, TableUserExtension>): IntermediateColumn<RT, DT, QueryUserExtension>
|
||||
public interface Scope<qUE : Any, tUE : Any> : _CommonSelectCreatorScope<qUE> {
|
||||
public val subqueryParams: InputRow.WithRedirect<tUE, qUE>
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> selectColumnFromSubquery(param: Column<RT, DT, tUE>): IntermediateColumn<RT, DT, qUE>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -7,23 +7,25 @@ import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseTypesProvider
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.QueryParam
|
||||
import ru.landgrafhomyak.serdha.api.v0.runtime.InputRow
|
||||
|
||||
public interface UpdateQuery<QueryUserExtension : Any> : _Query<QueryUserExtension> {
|
||||
public interface SingleRow<QueryUserExtension : Any> : UpdateQuery<QueryUserExtension>, _Query.Params2Table<QueryUserExtension> {
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||
public fun createUpdateSingleWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension>): QueryUserExtension
|
||||
public interface UpdateQuery<qUE : Any> : _Query<qUE> {
|
||||
public interface SingleRow<qUE : Any> : UpdateQuery<qUE>, _Query.Params2Table<qUE> {
|
||||
public interface Creator<qUE : Any, ttIE : Any> {
|
||||
public fun createUpdateSingleWithReturning(table: Table<ttIE, *>, creator: Scope<qUE, ttIE>): qUE
|
||||
|
||||
public interface Scope<qUE : Any, ttUE : Any> {
|
||||
public val tt: Table<ttUE, *>
|
||||
|
||||
public interface Scope<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||
public val types: DatabaseTypesProvider
|
||||
public fun <RT, DT : DatabaseType<RT>> param(name: String, type: DT): QueryParam<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> param(name: String, type: DT): QueryParam<RT, DT, qUE>
|
||||
|
||||
public var rowToUpdate: QueryParam<*, DatabaseType.ROW_ID<TargetTableUserExtension>, QueryUserExtension>
|
||||
public var rowToUpdate: QueryParam<*, DatabaseType.ROW_ID<ttUE>, qUE>
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> updateColumnWithOldValue(dst: Column<RT, DT, TargetTableUserExtension>, src: Column<RT, DT, TargetTableUserExtension>)
|
||||
public fun <RT, DT : DatabaseType<RT>> updateColumnWithParam(dst: Column<RT, DT, TargetTableUserExtension>, src: QueryParam<RT, DT, QueryUserExtension>)
|
||||
public fun <RT, DT : DatabaseType<RT>> updateColumnWithOldValue(dst: Column<RT, DT, ttUE>, src: Column<RT, DT, ttUE>)
|
||||
public fun <RT, DT : DatabaseType<RT>> updateColumnWithParam(dst: Column<RT, DT, ttUE>, src: QueryParam<RT, DT, qUE>)
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> returnOldValue(name: String, column: Column<RT, DT, TargetTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnNewValue(name: String, column: Column<RT, DT, TargetTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnParam(name: String, param: QueryParam<RT, DT, TargetTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnOldValue(name: String, column: Column<RT, DT, ttUE>): Column<RT, DT, qUE>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnNewValue(name: String, column: Column<RT, DT, ttUE>): Column<RT, DT, qUE>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnParam(name: String, param: QueryParam<RT, DT, ttUE>): Column<RT, DT, qUE>
|
||||
|
||||
public fun ifNoRowSkip()
|
||||
public fun ifNoRowJustReturn()
|
||||
@ -32,25 +34,28 @@ public interface UpdateQuery<QueryUserExtension : Any> : _Query<QueryUserExtensi
|
||||
}
|
||||
}
|
||||
|
||||
public interface FromSubquery<QueryUserExtension : Any> : UpdateQuery<QueryUserExtension>, _Query.Params2Table<QueryUserExtension> {
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any, SelectorTableUserExtension : Any> {
|
||||
public fun createUpdateFromSubqueryWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension, SelectorTableUserExtension>): QueryUserExtension
|
||||
public interface FromSubquery<qUE : Any> : UpdateQuery<qUE>, _Query.Params2Table<qUE> {
|
||||
public interface Creator<qUE : Any, ttUE : Any, sUE : Any> {
|
||||
public fun createUpdateFromSubqueryWithReturning(creator: Scope<qUE, ttUE, sUE>): qUE
|
||||
|
||||
public interface Scope<qUE : Any, ttUE : Any, sUE : Any> {
|
||||
public val tt: Table<ttUE, *>
|
||||
public val sUExt: sUE
|
||||
|
||||
public interface Scope<QueryUserExtension : Any, TargetTableUserExtension : Any, SelectorTableUserExtension : Any> {
|
||||
public val types: DatabaseTypesProvider
|
||||
public fun <RT, DT : DatabaseType<RT>> param(name: String, type: DT): QueryParam<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> param(name: String, type: DT): QueryParam<RT, DT, qUE>
|
||||
|
||||
public val selectorParams: InputRow.WithRedirect<SelectorTableUserExtension, QueryUserExtension>
|
||||
public var selectorColumn: Column<*, DatabaseType.ROW_ID<TargetTableUserExtension>, SelectorTableUserExtension>
|
||||
public val selectorParams: InputRow.WithRedirect<sUE, qUE>
|
||||
public var selectorColumn: Column<*, DatabaseType.ROW_ID<ttUE>, sUE>
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> updateColumnWithSubquery(dst: Column<RT, DT, TargetTableUserExtension>, src: Column<RT, DT, SelectorTableUserExtension>)
|
||||
public fun <RT, DT : DatabaseType<RT>> updateColumnWithOldValue(dst: Column<RT, DT, TargetTableUserExtension>, src: Column<RT, DT, TargetTableUserExtension>)
|
||||
public fun <RT, DT : DatabaseType<RT>> updateColumnWithParam(dst: Column<RT, DT, TargetTableUserExtension>, src: QueryParam<RT, DT, QueryUserExtension>)
|
||||
public fun <RT, DT : DatabaseType<RT>> updateColumnWithSubquery(dst: Column<RT, DT, ttUE>, src: Column<RT, DT, sUE>)
|
||||
public fun <RT, DT : DatabaseType<RT>> updateColumnWithOldValue(dst: Column<RT, DT, ttUE>, src: Column<RT, DT, ttUE>)
|
||||
public fun <RT, DT : DatabaseType<RT>> updateColumnWithParam(dst: Column<RT, DT, ttUE>, src: QueryParam<RT, DT, qUE>)
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> returnFromSubquery(name: String, column: Column<RT, DT, SelectorTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnOldValue(name: String, column: Column<RT, DT, TargetTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnNewValue(name: String, column: Column<RT, DT, TargetTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnParam(name: String, param: QueryParam<RT, DT, TargetTableUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnFromSubquery(name: String, column: Column<RT, DT, sUE>): Column<RT, DT, qUE>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnOldValue(name: String, column: Column<RT, DT, ttUE>): Column<RT, DT, qUE>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnNewValue(name: String, column: Column<RT, DT, ttUE>): Column<RT, DT, qUE>
|
||||
public fun <RT, DT : DatabaseType<RT>> returnParam(name: String, param: QueryParam<RT, DT, ttUE>): Column<RT, DT, qUE>
|
||||
|
||||
public fun ifNoRowSkip()
|
||||
public fun ifNoRowJustReturn()
|
||||
@ -59,18 +64,20 @@ public interface UpdateQuery<QueryUserExtension : Any> : _Query<QueryUserExtensi
|
||||
}
|
||||
}
|
||||
|
||||
public interface MultipleRows<QueryUserExtension : Any> : UpdateQuery<QueryUserExtension>, _Query.Table2Void<QueryUserExtension> {
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||
public fun createUpdateMultipleRows(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension>): QueryUserExtension
|
||||
public interface MultipleRows<qUE : Any> : UpdateQuery<qUE>, _Query.Table2Void<qUE> {
|
||||
public interface Creator<qUE : Any, ttUE : Any> {
|
||||
public fun createUpdateMultipleRows(creator: Scope<qUE, ttUE>): qUE
|
||||
|
||||
public interface Scope<qUE : Any, ttUE : Any> {
|
||||
public val tt: Table<ttUE, *>
|
||||
|
||||
public interface Scope<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||
public val types: DatabaseTypesProvider
|
||||
public fun <RT, DT : DatabaseType<RT>> param(name: String, type: DT): QueryParam<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> inputColumn(name: String, type: DT): QueryParam<RT, DT, qUE>
|
||||
|
||||
public var rowToUpdate: QueryParam<*, DatabaseType.ROW_ID<TargetTableUserExtension>, QueryUserExtension>
|
||||
public var rowToUpdate: QueryParam<*, DatabaseType.ROW_ID<ttUE>, qUE>
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> updateColumnWithOldValue(dst: Column<RT, DT, TargetTableUserExtension>, src: Column<RT, DT, TargetTableUserExtension>)
|
||||
public fun <RT, DT : DatabaseType<RT>> updateColumnWithParam(dst: Column<RT, DT, TargetTableUserExtension>, src: QueryParam<RT, DT, QueryUserExtension>)
|
||||
public fun <RT, DT : DatabaseType<RT>> updateColumnWithOldValue(dst: Column<RT, DT, ttUE>, src: Column<RT, DT, ttUE>)
|
||||
public fun <RT, DT : DatabaseType<RT>> updateColumnWithParam(dst: Column<RT, DT, ttUE>, src: QueryParam<RT, DT, qUE>)
|
||||
|
||||
public fun ifNoRowSkip()
|
||||
public fun ifNoRowThrow()
|
||||
|
Loading…
Reference in New Issue
Block a user