'UPDATE' and 'DELETE' queries with set by-hand rowid
This commit is contained in:
parent
472fbc895f
commit
50723c8811
@ -5,12 +5,33 @@ 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.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 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 var rowToRemove: QueryParam<*, DatabaseType.ROW_ID<TargetTableUserExtension>, 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 ifNoRowSkip()
|
||||
public fun ifNoRowJustReturn()
|
||||
public fun ifNoRowThrow()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public interface FromSubquery<QueryUserExtension : Any> : DeleteQuery<QueryUserExtension>, _Query.Params2Table<QueryUserExtension> {
|
||||
public interface Creator<QueryUserExtension : Any, TargetTableUserExtension : Any, SelectorTableUserExtension : Any> {
|
||||
public fun createDeleteWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension, SelectorTableUserExtension>): QueryUserExtension
|
||||
public fun createDeleteFromSubqueryWithReturning(table: Table<TargetTableUserExtension, *>, creator: Scope<QueryUserExtension, TargetTableUserExtension, SelectorTableUserExtension>): QueryUserExtension
|
||||
|
||||
public interface Scope<QueryUserExtension : Any, TargetTableUserExtension : Any, SelectorTableUserExtension : Any> {
|
||||
public val types: DatabaseTypesProvider
|
||||
@ -22,6 +43,23 @@ public interface DeleteQuery<QueryUserExtension : Any> : _Query<QueryUserExtensi
|
||||
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 ifNoRowSkip()
|
||||
public fun ifNoRowJustReturn()
|
||||
public fun ifNoRowThrow()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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 Scope<QueryUserExtension : Any, TargetTableUserExtension : Any> {
|
||||
public val rowsToRemove: QueryParam<RowId<TargetTableUserExtension>, DatabaseType.ROW_ID<TargetTableUserExtension>, QueryUserExtension>
|
||||
|
||||
public fun ifNoRowSkip()
|
||||
public fun ifNoRowThrow()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -8,6 +8,30 @@ 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 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 var rowToUpdate: QueryParam<*, DatabaseType.ROW_ID<TargetTableUserExtension>, QueryUserExtension>
|
||||
|
||||
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>> 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 ifNoRowSkip()
|
||||
public fun ifNoRowJustReturn()
|
||||
public fun ifNoRowThrow()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
@ -27,6 +51,29 @@ public interface UpdateQuery<QueryUserExtension : Any> : _Query<QueryUserExtensi
|
||||
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 ifNoRowSkip()
|
||||
public fun ifNoRowJustReturn()
|
||||
public fun ifNoRowThrow()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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 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 var rowToUpdate: QueryParam<*, DatabaseType.ROW_ID<TargetTableUserExtension>, QueryUserExtension>
|
||||
|
||||
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 ifNoRowSkip()
|
||||
public fun ifNoRowThrow()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user