Grouping queries by input & output types
This commit is contained in:
parent
33fe39c70d
commit
02916994cd
@ -4,14 +4,11 @@ import ru.landgrafhomyak.serdha.api.v0.misc.Column
|
|||||||
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType
|
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType
|
||||||
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseTypesProvider
|
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseTypesProvider
|
||||||
import ru.landgrafhomyak.serdha.api.v0.misc.QueryParam
|
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.runtime.ParametersSetter
|
||||||
import ru.landgrafhomyak.serdha.api.v0.table.Table
|
import ru.landgrafhomyak.serdha.api.v0.table.Table
|
||||||
|
|
||||||
public interface DeleteQuery<QueryUserExtension : Any> {
|
public interface DeleteQuery<QueryUserExtension : Any> : _Query<QueryUserExtension> {
|
||||||
public val userExtension: QueryUserExtension
|
public interface FromSubquery<QueryUserExtension : Any> : DeleteQuery<QueryUserExtension>, _Query.Params2Table<QueryUserExtension> {
|
||||||
|
|
||||||
public interface FromSubquery<QueryUserExtension : Any> : DeleteQuery<QueryUserExtension>, _Selectable<QueryUserExtension> {
|
|
||||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any, SelectorTableUserExtension : Any> {
|
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any, SelectorTableUserExtension : Any> {
|
||||||
public fun createDeleteWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension, SelectorTableUserExtension>): QueryUserExtension
|
public fun createDeleteWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension, SelectorTableUserExtension>): QueryUserExtension
|
||||||
|
|
||||||
|
@ -5,13 +5,10 @@ import ru.landgrafhomyak.serdha.api.v0.table.Table
|
|||||||
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType
|
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType
|
||||||
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseTypesProvider
|
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseTypesProvider
|
||||||
import ru.landgrafhomyak.serdha.api.v0.misc.QueryParam
|
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.runtime.ParametersSetter
|
||||||
import ru.landgrafhomyak.serdha.api.v0.table.UniqueIndex
|
import ru.landgrafhomyak.serdha.api.v0.table.UniqueIndex
|
||||||
|
|
||||||
public interface InsertQuery<QueryUserExtension : Any> {
|
public interface InsertQuery<QueryUserExtension : Any> : _Query<QueryUserExtension> {
|
||||||
public val userExtension: QueryUserExtension
|
|
||||||
|
|
||||||
@Suppress("ClassName")
|
@Suppress("ClassName")
|
||||||
public interface _UpsertClauseScope<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
public interface _UpsertClauseScope<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||||
public fun keepColumn(column: Column<*, *, TargetTableUserExtension>)
|
public fun keepColumn(column: Column<*, *, TargetTableUserExtension>)
|
||||||
@ -30,7 +27,7 @@ public interface InsertQuery<QueryUserExtension : Any> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public interface SingleRow<QueryUserExtension : Any> : InsertQuery<QueryUserExtension>, _Selectable<QueryUserExtension> {
|
public interface SingleRow<QueryUserExtension : Any> : InsertQuery<QueryUserExtension>, _Query.Params2Table<QueryUserExtension> {
|
||||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||||
public fun createInsertSingleRowWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension>): QueryUserExtension
|
public fun createInsertSingleRowWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension>): QueryUserExtension
|
||||||
|
|
||||||
@ -48,7 +45,7 @@ public interface InsertQuery<QueryUserExtension : Any> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public interface FromSubquery<QueryUserExtension : Any> : InsertQuery<QueryUserExtension>, _Selectable<QueryUserExtension> {
|
public interface FromSubquery<QueryUserExtension : Any> : InsertQuery<QueryUserExtension>, _Query.Params2Table<QueryUserExtension> {
|
||||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any, SourceQueryUserExtension : Any> {
|
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any, SourceQueryUserExtension : Any> {
|
||||||
public fun createInsertSingleRowWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension, SourceQueryUserExtension>): QueryUserExtension
|
public fun createInsertSingleRowWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension, SourceQueryUserExtension>): QueryUserExtension
|
||||||
|
|
||||||
@ -69,7 +66,7 @@ public interface InsertQuery<QueryUserExtension : Any> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface MultipleRows<QueryUserExtension : Any> : InsertQuery<QueryUserExtension> {
|
public interface MultipleRows<QueryUserExtension : Any> : InsertQuery<QueryUserExtension>, _Query.Table2Void<QueryUserExtension> {
|
||||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||||
public fun createInsertMultipleRows(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension>): QueryUserExtension
|
public fun createInsertMultipleRows(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension>): QueryUserExtension
|
||||||
|
|
||||||
|
@ -6,12 +6,9 @@ import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType
|
|||||||
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseTypesProvider
|
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseTypesProvider
|
||||||
import ru.landgrafhomyak.serdha.api.v0.misc.Expression
|
import ru.landgrafhomyak.serdha.api.v0.misc.Expression
|
||||||
import ru.landgrafhomyak.serdha.api.v0.misc.QueryParam
|
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.runtime.ParametersSetter
|
||||||
|
|
||||||
public interface SelectQuery<QueryUserExtension : Any> : _Selectable<QueryUserExtension> {
|
public interface SelectQuery<QueryUserExtension : Any> : _Query<QueryUserExtension> {
|
||||||
public val userExtension: QueryUserExtension
|
|
||||||
|
|
||||||
public enum class Order {
|
public enum class Order {
|
||||||
ASC, DESC
|
ASC, DESC
|
||||||
}
|
}
|
||||||
@ -38,7 +35,7 @@ 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 fun <RT, DT : DatabaseType<RT>> returnColumn(name: String, column: IntermediateColumn<RT, DT, QueryUserExtension>): Column<RT, DT, QueryUserExtension>
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface WithJoin<QueryUserExtension : Any> : SelectQuery<QueryUserExtension> {
|
public interface WithJoin<QueryUserExtension : Any> : SelectQuery<QueryUserExtension>, _Query.Params2Table<QueryUserExtension> {
|
||||||
public interface JoinCreator<QueryUserExtension : Any, LeftTableUserExtension : Any, RightTableUserExtension : Any> : _CommonSelectCreatorScope<QueryUserExtension> {
|
public interface JoinCreator<QueryUserExtension : Any, LeftTableUserExtension : Any, RightTableUserExtension : Any> : _CommonSelectCreatorScope<QueryUserExtension> {
|
||||||
public fun createSelectWithJoin(creator: Scope<QueryUserExtension, LeftTableUserExtension, RightTableUserExtension>): QueryUserExtension
|
public fun createSelectWithJoin(creator: Scope<QueryUserExtension, LeftTableUserExtension, RightTableUserExtension>): QueryUserExtension
|
||||||
|
|
||||||
@ -52,7 +49,7 @@ public interface SelectQuery<QueryUserExtension : Any> : _Selectable<QueryUserEx
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface FromSubquery<QueryUserExtension : Any> : InsertQuery<QueryUserExtension> {
|
public interface FromSubquery<QueryUserExtension : Any> : SelectQuery<QueryUserExtension>, _Query.Params2Table<QueryUserExtension> {
|
||||||
public interface Creator<QueryUserExtension : Any, TableUserExtension : Any> {
|
public interface Creator<QueryUserExtension : Any, TableUserExtension : Any> {
|
||||||
public fun createSelect(creator: Scope<QueryUserExtension, TableUserExtension>): QueryUserExtension
|
public fun createSelect(creator: Scope<QueryUserExtension, TableUserExtension>): QueryUserExtension
|
||||||
|
|
||||||
|
@ -5,13 +5,10 @@ import ru.landgrafhomyak.serdha.api.v0.table.Table
|
|||||||
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType
|
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType
|
||||||
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseTypesProvider
|
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseTypesProvider
|
||||||
import ru.landgrafhomyak.serdha.api.v0.misc.QueryParam
|
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.runtime.ParametersSetter
|
||||||
|
|
||||||
public interface UpdateQuery<QueryUserExtension : Any> : _Selectable<QueryUserExtension> {
|
public interface UpdateQuery<QueryUserExtension : Any> : _Query<QueryUserExtension> {
|
||||||
public val userExtension: QueryUserExtension
|
public interface FromSubquery<QueryUserExtension : Any> : UpdateQuery<QueryUserExtension>, _Query.Params2Table<QueryUserExtension> {
|
||||||
|
|
||||||
public interface FromSubquery<QueryUserExtension : Any> : _Selectable<QueryUserExtension> {
|
|
||||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any, SelectorTableUserExtension : Any> {
|
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any, SelectorTableUserExtension : Any> {
|
||||||
public fun createUpdateFromSubqueryWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension, SelectorTableUserExtension>): QueryUserExtension
|
public fun createUpdateFromSubqueryWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension, SelectorTableUserExtension>): QueryUserExtension
|
||||||
|
|
||||||
|
@ -0,0 +1,14 @@
|
|||||||
|
package ru.landgrafhomyak.serdha.api.v0.queries
|
||||||
|
|
||||||
|
import ru.landgrafhomyak.serdha.api.v0.misc._Selectable
|
||||||
|
|
||||||
|
|
||||||
|
@Suppress("ClassName")
|
||||||
|
public interface _Query<QueryUserExtension : Any> {
|
||||||
|
public val userExtension: QueryUserExtension
|
||||||
|
|
||||||
|
public interface Table2Void<QueryUserExtension : Any> : _Query<QueryUserExtension>
|
||||||
|
public interface Params2Void<QueryUserExtension : Any> : _Query<QueryUserExtension>
|
||||||
|
public interface Params2Table<QueryUserExtension : Any> : _Query<QueryUserExtension>, _Selectable<QueryUserExtension>
|
||||||
|
public interface Void2Table<QueryUserExtension : Any> : _Query<QueryUserExtension>, _Selectable<QueryUserExtension>
|
||||||
|
}
|
@ -1,7 +1,7 @@
|
|||||||
package ru.landgrafhomyak.serdha.api.v0.table
|
package ru.landgrafhomyak.serdha.api.v0.table
|
||||||
|
|
||||||
|
import ru.landgrafhomyak.serdha.api.v0.misc._Selectable
|
||||||
import ru.landgrafhomyak.serdha.api.v0.module.Module
|
import ru.landgrafhomyak.serdha.api.v0.module.Module
|
||||||
import ru.landgrafhomyak.serdha.api.v0.queries._Selectable
|
|
||||||
|
|
||||||
public interface Table<UserExtension : Any, PreviousUserExtension : Any> : _Selectable<UserExtension> {
|
public interface Table<UserExtension : Any, PreviousUserExtension : Any> : _Selectable<UserExtension> {
|
||||||
public val userExtension: UserExtension
|
public val userExtension: UserExtension
|
||||||
|
Loading…
Reference in New Issue
Block a user