Removing subtypes of inputs
This commit is contained in:
parent
838c674fe0
commit
99759909a5
@ -7,7 +7,7 @@ public interface Expression<ExpressionUserExtension : Any> {
|
||||
public val userExtension: ExpressionUserExtension
|
||||
|
||||
public interface RuntimeExpressionInput<RT, DT : DatabaseType<RT>, ExpressionUserExtension : Any> : Column<RT, DT, ExpressionUserExtension>
|
||||
public interface RuntimeExpressionOutput<RT, DT : DatabaseType<RT>, ExpressionUserExtension : Any> : Input.Column<RT, DT, ExpressionUserExtension>
|
||||
public interface RuntimeExpressionOutput<RT, DT : DatabaseType<RT>, ExpressionUserExtension : Any> : QueryParam<RT, DT, ExpressionUserExtension>
|
||||
|
||||
public fun interface InputLinker<ExpressionUserExtension : Any, QueryUserExtension : Any> {
|
||||
public fun link(linker: Scope<ExpressionUserExtension, QueryUserExtension>)
|
||||
|
@ -1,9 +0,0 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.misc
|
||||
|
||||
public interface Input<RT, DT : DatabaseType<RT>, OwnerQueryUserExtension : Any> : IntermediateColumn<RT, DT, OwnerQueryUserExtension> {
|
||||
public val name: String
|
||||
public val userWrapper: OwnerQueryUserExtension
|
||||
|
||||
public interface QueryParam<RT, DT : DatabaseType<RT>, OwnerQueryUserExtension : Any> : IntermediateColumn<RT, DT, OwnerQueryUserExtension>
|
||||
public interface Column<RT, DT : DatabaseType<RT>, OwnerQueryUserExtension : Any> : IntermediateColumn<RT, DT, OwnerQueryUserExtension>
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.misc
|
||||
|
||||
public interface QueryParam<RT, DT : DatabaseType<RT>, OwnerQueryUserExtension : Any> {
|
||||
public val name: String
|
||||
public val userWrapper: OwnerQueryUserExtension
|
||||
}
|
@ -4,6 +4,6 @@ public interface SelectedTable<SelectedTableUserExtension : Any, QueryUserExtens
|
||||
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: Input.QueryParam<RT, DT, SelectedTableUserExtension>, parentParam: Input.QueryParam<RT, DT, QueryUserExtension>)
|
||||
public fun <RT, DT : DatabaseType<RT>> setParam(subqueryParam: QueryParam<RT, DT, SelectedTableUserExtension>, parentParam: QueryParam<RT, DT, QueryUserExtension>)
|
||||
}
|
||||
}
|
@ -1,21 +0,0 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.queries
|
||||
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.Expression
|
||||
import ru.landgrafhomyak.serdha.api.v0.module.CreateModuleScope
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.Column
|
||||
import ru.landgrafhomyak.serdha.api.v0.table.Table
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType
|
||||
|
||||
public interface CopyQuery<QueryUserExtension : Any> {
|
||||
public val userExtension: QueryUserExtension
|
||||
|
||||
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||
|
||||
public fun createCopy(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension>): QueryUserExtension
|
||||
|
||||
public interface Scope<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||
public fun <RT, DT : DatabaseType<RT>> insert(column: Column<RT, DT, TargetTableUserExtension>, expression: Expression<RT, DT, QueryUserExtension>)
|
||||
}
|
||||
}
|
||||
}
|
@ -3,7 +3,7 @@ package ru.landgrafhomyak.serdha.api.v0.queries
|
||||
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.Input
|
||||
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.table.Table
|
||||
@ -22,7 +22,7 @@ public interface DeleteQuery<QueryUserExtension : Any> {
|
||||
|
||||
public val types: DatabaseTypesProvider
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> param(name: String, type: DT): Input.QueryParam<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> param(name: String, type: DT): QueryParam<RT, DT, QueryUserExtension>
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,11 +1,10 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.queries
|
||||
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.Expression
|
||||
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.Input
|
||||
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.table.UniqueIndex
|
||||
@ -17,20 +16,13 @@ public interface InsertQuery<QueryUserExtension : Any> {
|
||||
public interface _UpsertClauseScope<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||
public fun keepColumn(c: Column<*, *, TargetTableUserExtension>)
|
||||
public fun overrideColumn(c: Column<*, *, TargetTableUserExtension>)
|
||||
public fun setConstant(c: Input.QueryParam<*, *, QueryUserExtension>)
|
||||
public fun setConstant(c: QueryParam<*, *, QueryUserExtension>)
|
||||
}
|
||||
|
||||
@Suppress("ClassName")
|
||||
public interface _CommonInsertCreatorScope<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||
public val types: DatabaseTypesProvider
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> queryParam(name: String, type: DT): Input.Column<RT, DT, QueryUserExtension>
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> insertConstant(
|
||||
column: Column<RT, DT, TargetTableUserExtension>,
|
||||
paramName: String = column.name,
|
||||
): Input.QueryParam<RT, DT, QueryUserExtension>
|
||||
|
||||
public fun onConflictUpdate(u: UniqueIndex<TargetTableUserExtension>, c: (_UpsertClauseScope<QueryUserExtension, TargetTableUserExtension>) -> Unit)
|
||||
|
||||
public fun onConflictThrow(u: UniqueIndex<TargetTableUserExtension>)
|
||||
@ -44,6 +36,17 @@ public interface InsertQuery<QueryUserExtension : Any> {
|
||||
public fun createInsertSingleRow(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>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@ -66,6 +69,18 @@ public interface InsertQuery<QueryUserExtension : Any> {
|
||||
public fun createInsertFromQuery(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 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>)
|
||||
@ -90,9 +105,9 @@ public interface InsertQuery<QueryUserExtension : Any> {
|
||||
public fun createInsertMultipleRows(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension>): QueryUserExtension
|
||||
|
||||
public interface Scope<QueryUserExtension : Any, TargetTableUserExtension : Any> : _CommonInsertCreatorScope<QueryUserExtension, TargetTableUserExtension> {
|
||||
public fun <RT, DT : DatabaseType<RT>> inputColumn(name: String, type: DT): Input.Column<RT, DT, QueryUserExtension>
|
||||
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>, src: Input.Column<RT, DT, QueryUserExtension>)
|
||||
public fun <RT, DT : DatabaseType<RT>> insertColumn(dst: Column<RT, DT, TargetTableUserExtension>, src: QueryParam<RT, DT, QueryUserExtension>)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,7 +3,7 @@ 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.Input
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.QueryParam
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.SelectedColumn
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.SelectedTable
|
||||
|
||||
@ -23,7 +23,7 @@ public interface UpdateQuery<QueryUserExtension : Any> {
|
||||
|
||||
public fun <RuntimeType, DT : DatabaseType<RuntimeType>> updateColumn(c: Column<RuntimeType, DT, TargetTableUserExtension>, e: SelectedColumn<RuntimeType, DT, SelectorTableUserExtension, QueryUserExtension>)
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> param(name: String, type: DT): Input.QueryParam<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> param(name: String, type: DT): QueryParam<RT, DT, QueryUserExtension>
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,30 +0,0 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.queries
|
||||
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.BuiltinExpressionsProvider
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.IntermediateColumn
|
||||
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.Input
|
||||
import ru.landgrafhomyak.serdha.api.v0.runtime.ParametersSetter
|
||||
|
||||
@Suppress("ClassName")
|
||||
public interface _CommonCreateQueryScope<QueryUserExtension : Any> {
|
||||
public val types: DatabaseTypesProvider
|
||||
|
||||
public val expressionBuilder: BuiltinExpressionsProvider<QueryUserExtension>
|
||||
|
||||
public interface SubqueryParametersSetter<SubqueryUserExtension : Any, QueryUserExtension : Any> : ParametersSetter<SubqueryUserExtension> {
|
||||
public operator fun <RT, DT : DatabaseType<RT>> set(c: Input.QueryParam<RT, DT, QueryUserExtension>, value: IntermediateColumn<RT, DT, QueryUserExtension>)
|
||||
}
|
||||
|
||||
public interface _ReturningClauseScope<QueryUserExtension : Any> {
|
||||
public fun <RT, DT : DatabaseType<RT>> returnExpression(expression: IntermediateColumn<RT, DT, QueryUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||
|
||||
public var isDistinct: Boolean
|
||||
|
||||
public fun orderBy(order: SelectQuery.Order, vararg columns: Column<*, *, QueryUserExtension>)
|
||||
|
||||
public fun groupBy(vararg columns: Column<*, *, QueryUserExtension>)
|
||||
}
|
||||
}
|
@ -1,55 +0,0 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.queries
|
||||
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.IntermediateColumn
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.Column
|
||||
import ru.landgrafhomyak.serdha.api.v0.table.UniqueIndex
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.SelectedTable
|
||||
|
||||
@Suppress("ClassName")
|
||||
public interface _CreateInsertOrCopyQueryScope<QueryUserExtension : Any, TargetTableUserExtension : Any> : _CommonCreateQueryScope<QueryUserExtension> {
|
||||
public val insertedValues: SelectedTable<TargetTableUserExtension, QueryUserExtension>
|
||||
|
||||
@Suppress("ClassName")
|
||||
public interface _UpsertClauseScope<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||
public fun <RT, DT : DatabaseType<RT>> oldColumnValue(c: Column<RT, DT, TargetTableUserExtension>): IntermediateColumn<RT, DT, QueryUserExtension>
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> updateColumn(c: Column<RT, DT, TargetTableUserExtension>, e: IntermediateColumn<RT, DT, QueryUserExtension>)
|
||||
}
|
||||
|
||||
public fun onConflictUpdate(u: UniqueIndex<TargetTableUserExtension>, c: (_UpsertClauseScope<QueryUserExtension, TargetTableUserExtension>) -> Unit)
|
||||
|
||||
public fun onConflictThrow(u: UniqueIndex<TargetTableUserExtension>)
|
||||
|
||||
public fun onConflictIgnore(u: UniqueIndex<TargetTableUserExtension>)
|
||||
|
||||
public val returningInserted: _CommonCreateQueryScope._ReturningClauseScope<QueryUserExtension>
|
||||
|
||||
@Suppress("ClassName")
|
||||
public interface _ReturningUpdatedClauseScope<QueryUserExtension : Any, TargetTableUserExtension : Any> : _CommonCreateQueryScope._ReturningClauseScope<QueryUserExtension> {
|
||||
public fun <RT, DT : DatabaseType<RT>> oldColumnValue(c: Column<RT, DT, TargetTableUserExtension>): IntermediateColumn<RT, DT, QueryUserExtension>
|
||||
}
|
||||
|
||||
public val returningUpdated: _ReturningUpdatedClauseScope<QueryUserExtension, TargetTableUserExtension>
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1,18 +1,18 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.runtime
|
||||
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.Input
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc.QueryParam
|
||||
|
||||
public interface ParametersSetter<QueryUserExtension : Any/* todo*/> {
|
||||
public operator fun <RuntimeType> set(c: Input<RuntimeType, *, QueryUserExtension>, value: RuntimeType)
|
||||
public operator fun <RuntimeType> set(c: QueryParam<RuntimeType, *, QueryUserExtension>, value: RuntimeType)
|
||||
|
||||
public operator fun set(c: Input<Byte, *, QueryUserExtension>, value: Byte): Unit = this.set<Byte>(c, value)
|
||||
public operator fun set(c: Input<UByte, *, QueryUserExtension>, value: UByte): Unit = this.set<UByte>(c, value)
|
||||
public operator fun set(c: Input<Short, *, QueryUserExtension>, value: Short): Unit = this.set<Short>(c, value)
|
||||
public operator fun set(c: Input<UShort, *, QueryUserExtension>, value: UShort): Unit = this.set<UShort>(c, value)
|
||||
public operator fun set(c: Input<Int, *, QueryUserExtension>, value: Int): Unit = this.set<Int>(c, value)
|
||||
public operator fun set(c: Input<UInt, *, QueryUserExtension>, value: UInt): Unit = this.set<UInt>(c, value)
|
||||
public operator fun set(c: Input<Long, *, QueryUserExtension>, value: Long): Unit = this.set<Long>(c, value)
|
||||
public operator fun set(c: Input<ULong, *, QueryUserExtension>, value: ULong): Unit = this.set<ULong>(c, value)
|
||||
public operator fun set(c: Input<Char, *, QueryUserExtension>, value: Char): Unit = this.set<Char>(c, value)
|
||||
public operator fun set(c: Input<Boolean, *, QueryUserExtension>, value: Boolean): Unit = this.set<Boolean>(c, value)
|
||||
public operator fun set(c: QueryParam<Byte, *, QueryUserExtension>, value: Byte): Unit = this.set<Byte>(c, value)
|
||||
public operator fun set(c: QueryParam<UByte, *, QueryUserExtension>, value: UByte): Unit = this.set<UByte>(c, value)
|
||||
public operator fun set(c: QueryParam<Short, *, QueryUserExtension>, value: Short): Unit = this.set<Short>(c, value)
|
||||
public operator fun set(c: QueryParam<UShort, *, QueryUserExtension>, value: UShort): Unit = this.set<UShort>(c, value)
|
||||
public operator fun set(c: QueryParam<Int, *, QueryUserExtension>, value: Int): Unit = this.set<Int>(c, value)
|
||||
public operator fun set(c: QueryParam<UInt, *, QueryUserExtension>, value: UInt): Unit = this.set<UInt>(c, value)
|
||||
public operator fun set(c: QueryParam<Long, *, QueryUserExtension>, value: Long): Unit = this.set<Long>(c, value)
|
||||
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)
|
||||
}
|
Loading…
Reference in New Issue
Block a user