Separating queries descriptors for strict applying '_Selectable'
This commit is contained in:
parent
5839d27b1f
commit
33fe39c70d
@ -1,4 +1,4 @@
|
||||
package ru.landgrafhomyak.serdha.api.v0.queries
|
||||
package ru.landgrafhomyak.serdha.api.v0.misc
|
||||
|
||||
@Suppress("ClassName")
|
||||
public interface _Selectable<@Suppress("unused") QueryUserExtension : Any>
|
@ -4,25 +4,28 @@ 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._Selectable
|
||||
import ru.landgrafhomyak.serdha.api.v0.runtime.ParametersSetter
|
||||
import ru.landgrafhomyak.serdha.api.v0.table.Table
|
||||
|
||||
public interface DeleteQuery<QueryUserExtension : Any> : _Selectable<QueryUserExtension> {
|
||||
public interface DeleteQuery<QueryUserExtension : Any> {
|
||||
public val userExtension: QueryUserExtension
|
||||
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any, SelectorTableUserExtension : Any> {
|
||||
public fun createDeleteWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension, SelectorTableUserExtension>): QueryUserExtension
|
||||
public interface FromSubquery<QueryUserExtension : Any> : DeleteQuery<QueryUserExtension>, _Selectable<QueryUserExtension> {
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any, SelectorTableUserExtension : Any> {
|
||||
public fun createDeleteWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension, SelectorTableUserExtension>): QueryUserExtension
|
||||
|
||||
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 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 val selectorParams: ParametersSetter.WithRedirect<SelectorTableUserExtension, QueryUserExtension>
|
||||
public var selectorColumn: Column<*, DatabaseType.ROW_ID<TargetTableUserExtension>, SelectorTableUserExtension>
|
||||
public val selectorParams: ParametersSetter.WithRedirect<SelectorTableUserExtension, QueryUserExtension>
|
||||
public var selectorColumn: Column<*, DatabaseType.ROW_ID<TargetTableUserExtension>, SelectorTableUserExtension>
|
||||
|
||||
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, 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>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -5,6 +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._Selectable
|
||||
import ru.landgrafhomyak.serdha.api.v0.runtime.ParametersSetter
|
||||
import ru.landgrafhomyak.serdha.api.v0.table.UniqueIndex
|
||||
|
||||
@ -29,7 +30,7 @@ public interface InsertQuery<QueryUserExtension : Any> {
|
||||
}
|
||||
|
||||
|
||||
public interface SingleRow<QueryUserExtension : Any, TargetTableUserExtension : Any> : InsertQuery<QueryUserExtension> {
|
||||
public interface SingleRow<QueryUserExtension : Any> : InsertQuery<QueryUserExtension>, _Selectable<QueryUserExtension> {
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||
public fun createInsertSingleRowWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension>): QueryUserExtension
|
||||
|
||||
@ -47,7 +48,7 @@ public interface InsertQuery<QueryUserExtension : Any> {
|
||||
}
|
||||
|
||||
|
||||
public interface FromSubquery<QueryUserExtension : Any, TargetTableUserExtension : Any> : InsertQuery<QueryUserExtension> {
|
||||
public interface FromSubquery<QueryUserExtension : Any> : InsertQuery<QueryUserExtension>, _Selectable<QueryUserExtension> {
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any, SourceQueryUserExtension : Any> {
|
||||
public fun createInsertSingleRowWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension, SourceQueryUserExtension>): QueryUserExtension
|
||||
|
||||
@ -68,7 +69,7 @@ public interface InsertQuery<QueryUserExtension : Any> {
|
||||
}
|
||||
}
|
||||
|
||||
public interface MultipleRows<QueryUserExtension : Any, TargetTableUserExtension : Any> : InsertQuery<QueryUserExtension> {
|
||||
public interface MultipleRows<QueryUserExtension : Any> : InsertQuery<QueryUserExtension> {
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||
public fun createInsertMultipleRows(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension>): QueryUserExtension
|
||||
|
||||
|
@ -6,6 +6,7 @@ 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.QueryParam
|
||||
import ru.landgrafhomyak.serdha.api.v0.misc._Selectable
|
||||
import ru.landgrafhomyak.serdha.api.v0.runtime.ParametersSetter
|
||||
|
||||
public interface SelectQuery<QueryUserExtension : Any> : _Selectable<QueryUserExtension> {
|
||||
@ -37,25 +38,29 @@ public interface SelectQuery<QueryUserExtension : Any> : _Selectable<QueryUserEx
|
||||
public fun <RT, DT : DatabaseType<RT>> returnColumn(name: String, column: 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 WithJoin<QueryUserExtension : Any> : SelectQuery<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 leftSubqueryParams: ParametersSetter.WithRedirect<LeftTableUserExtension, QueryUserExtension>
|
||||
public val rightSubqueryParams: ParametersSetter.WithRedirect<RightTableUserExtension, QueryUserExtension>
|
||||
public interface Scope<QueryUserExtension : Any, LeftTableUserExtension : Any, RightTableUserExtension : Any> {
|
||||
public val leftSubqueryParams: ParametersSetter.WithRedirect<LeftTableUserExtension, QueryUserExtension>
|
||||
public val rightSubqueryParams: ParametersSetter.WithRedirect<RightTableUserExtension, QueryUserExtension>
|
||||
|
||||
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 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 interface Creator<QueryUserExtension : Any, TableUserExtension : Any> {
|
||||
public fun createSelect(creator: Scope<QueryUserExtension, TableUserExtension>): QueryUserExtension
|
||||
public interface FromSubquery<QueryUserExtension : Any> : InsertQuery<QueryUserExtension> {
|
||||
public interface Creator<QueryUserExtension : Any, TableUserExtension : Any> {
|
||||
public fun createSelect(creator: Scope<QueryUserExtension, TableUserExtension>): QueryUserExtension
|
||||
|
||||
public interface Scope<QueryUserExtension : Any, TableUserExtension : Any> : _CommonSelectCreatorScope<QueryUserExtension> {
|
||||
public val subqueryParams: ParametersSetter.WithRedirect<TableUserExtension, QueryUserExtension>
|
||||
public interface Scope<QueryUserExtension : Any, TableUserExtension : Any> : _CommonSelectCreatorScope<QueryUserExtension> {
|
||||
public val subqueryParams: ParametersSetter.WithRedirect<TableUserExtension, QueryUserExtension>
|
||||
|
||||
public fun <RT, DT : DatabaseType<RT>> selectColumnFromSubquery(param: Column<RT, DT, TableUserExtension>): IntermediateColumn<RT, DT, QueryUserExtension>
|
||||
public fun <RT, DT : DatabaseType<RT>> selectColumnFromSubquery(param: Column<RT, DT, TableUserExtension>): IntermediateColumn<RT, DT, QueryUserExtension>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -5,29 +5,32 @@ 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._Selectable
|
||||
import ru.landgrafhomyak.serdha.api.v0.runtime.ParametersSetter
|
||||
|
||||
public interface UpdateQuery<QueryUserExtension : Any> : _Selectable<QueryUserExtension> {
|
||||
public val userExtension: QueryUserExtension
|
||||
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any, SelectorTableUserExtension : Any> {
|
||||
public fun createUpdateWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension, SelectorTableUserExtension>): QueryUserExtension
|
||||
public interface FromSubquery<QueryUserExtension : Any> : _Selectable<QueryUserExtension> {
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any, SelectorTableUserExtension : Any> {
|
||||
public fun createUpdateFromSubqueryWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension, SelectorTableUserExtension>): QueryUserExtension
|
||||
|
||||
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 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 val selectorParams: ParametersSetter.WithRedirect<SelectorTableUserExtension, QueryUserExtension>
|
||||
public var selectorColumn: Column<*, DatabaseType.ROW_ID<TargetTableUserExtension>, SelectorTableUserExtension>
|
||||
public val selectorParams: ParametersSetter.WithRedirect<SelectorTableUserExtension, QueryUserExtension>
|
||||
public var selectorColumn: Column<*, DatabaseType.ROW_ID<TargetTableUserExtension>, SelectorTableUserExtension>
|
||||
|
||||
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, 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>> 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, 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>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user