Deep refactoring of handlers and scopes (except transaction-related)
This commit is contained in:
parent
d777d124ab
commit
ac4ff46640
@ -1,17 +1,18 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.misc
|
package ru.landgrafhomyak.db.sql_skeleton_0.api.misc
|
||||||
|
|
||||||
import kotlin.jvm.JvmName
|
import kotlin.jvm.JvmName
|
||||||
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.table.Table
|
||||||
|
|
||||||
public interface Column<RT, DT : DatabaseType<RT>, tUE : Any> {
|
public interface Column<RUNTIME_TYPE, TABLE_USER_EXTENSION : Any, RUNTIME_KEY : Any> {
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
@Suppress("INAPPLICABLE_JVM_NAME")
|
||||||
@get:JvmName("name")
|
@get:JvmName("name")
|
||||||
public val name: String
|
public val name: String
|
||||||
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
@Suppress("INAPPLICABLE_JVM_NAME")
|
||||||
@get:JvmName("type")
|
@get:JvmName("type")
|
||||||
public val type: DT
|
public val type: DatabaseType<RUNTIME_TYPE>
|
||||||
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME", "PropertyName")
|
@Suppress("INAPPLICABLE_JVM_NAME", "PropertyName")
|
||||||
@get:JvmName("_getOwner")
|
@get:JvmName("_getOwner")
|
||||||
public val _owner: _Selectable<tUE>
|
public val _owner: Table<TABLE_USER_EXTENSION, *, RUNTIME_KEY>
|
||||||
}
|
}
|
@ -1,29 +1,4 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.misc
|
package ru.landgrafhomyak.db.sql_skeleton_0.api.misc
|
||||||
|
|
||||||
import kotlin.jvm.JvmName
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.raw.DialectResolver
|
|
||||||
|
|
||||||
public interface DatabaseType<RUNTIME_TYPE : Any?> {
|
public interface DatabaseType<RUNTIME_TYPE : Any?>
|
||||||
public val nullable: DatabaseType<RUNTIME_TYPE?>
|
|
||||||
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
@get:JvmName("getName")
|
|
||||||
public val name: String
|
|
||||||
|
|
||||||
|
|
||||||
public interface DefaultTypes {
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME", "PropertyName")
|
|
||||||
@get:JvmName("BOOLEAN")
|
|
||||||
public val BOOLEAN: DatabaseType<Boolean>
|
|
||||||
|
|
||||||
@OptIn(ExperimentalUnsignedTypes::class)
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME", "PropertyName")
|
|
||||||
@get:JvmName("BINARY_DATA")
|
|
||||||
public val BINARY_DATA: DatabaseType<UByteArray>
|
|
||||||
|
|
||||||
@OptIn(ExperimentalUnsignedTypes::class)
|
|
||||||
public fun BINARY_DATA(size: UInt, isFixedSize: Boolean): DatabaseType<UByteArray>
|
|
||||||
|
|
||||||
public fun <RUNTIME_TYPE> custom(resolver: DialectResolver.Type<RUNTIME_TYPE>): DatabaseType<RUNTIME_TYPE>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.misc
|
|
||||||
|
|
||||||
public interface FiltersScope<oqUE : Any> {
|
|
||||||
public fun <RT : Any, DT : DatabaseType<RT>> filterNotNull(nullable: IntermediateColumn<RT?, DatabaseType.Nullable<RT, DT>, oqUE>): IntermediateColumn<RT, DT, oqUE>
|
|
||||||
|
|
||||||
public fun <RT : Any, DT : DatabaseType<RT>> filterIsNull(nullable: IntermediateColumn<RT?, DatabaseType.Nullable<RT, DT>, oqUE>)
|
|
||||||
|
|
||||||
public enum class ComparisonOperator {
|
|
||||||
EQUALS,
|
|
||||||
NOT_EQUALS,
|
|
||||||
LESS,
|
|
||||||
LESS_OR_EQUALS,
|
|
||||||
GREATER,
|
|
||||||
GREATER_OR_EQUALS,
|
|
||||||
}
|
|
||||||
|
|
||||||
public fun <RT, DT : DatabaseType<RT>> compareWithParam(column: IntermediateColumn<RT, DT, oqUE>, operator: ComparisonOperator, param: QueryParam<RT, DT, oqUE>)
|
|
||||||
|
|
||||||
public fun <RT, DT : DatabaseType<RT>> compareWithConstant(column: IntermediateColumn<RT, DT, oqUE>, operator: ComparisonOperator, constant: RT)
|
|
||||||
|
|
||||||
public fun ifTrue(column: IntermediateColumn<Boolean, DatabaseType.BOOLEAN, oqUE>)
|
|
||||||
|
|
||||||
public fun ifFalse(column: IntermediateColumn<Boolean, DatabaseType.BOOLEAN, oqUE>)
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.misc
|
|
||||||
|
|
||||||
public interface IntermediateColumn<RT, DT : DatabaseType<RT>, OwnerBuilderUserExtension : Any>
|
|
@ -1,56 +0,0 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.misc
|
|
||||||
|
|
||||||
import kotlin.jvm.JvmName
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.runtime.InputRow
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.runtime.OutputRow
|
|
||||||
|
|
||||||
public interface Mapper<mUE : Any> {
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
@get:JvmName("uExt")
|
|
||||||
public val uExt: mUE
|
|
||||||
|
|
||||||
public interface InputColumn<RT, DT : DatabaseType<RT>, mUE : Any> : Column<RT, DT, mUE>
|
|
||||||
public interface OutputColumn<RT, DT : DatabaseType<RT>, mUE : Any> : QueryParam<RT, DT, mUE>
|
|
||||||
|
|
||||||
public fun interface InputLinker<mUE : Any, qUE : Any> {
|
|
||||||
public fun link(linker: Scope<mUE, qUE>)
|
|
||||||
|
|
||||||
public interface Scope<mUE : Any, qUE : Any> {
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
@get:JvmName("uExt")
|
|
||||||
public val uExt: mUE
|
|
||||||
|
|
||||||
public operator fun <RT, DT : DatabaseType<RT>> set(p: InputColumn<RT, DT, mUE>, e: IntermediateColumn<RT, DT, qUE>)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public fun interface OutputLinker<mUE : Any, qUE : Any, oUE : Any> {
|
|
||||||
public fun link(linker: Scope<mUE, qUE>): oUE
|
|
||||||
|
|
||||||
public interface Scope<mUE : Any, qUE : Any> {
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
@get:JvmName("uExt")
|
|
||||||
public val uExt: mUE
|
|
||||||
|
|
||||||
public operator fun <RT, DT : DatabaseType<RT>> get(p: OutputColumn<RT, DT, mUE>): IntermediateColumn<RT, DT, qUE>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface Constructor<mUE : Any> {
|
|
||||||
public fun createMapper(context: Scope<mUE>): Action<mUE>
|
|
||||||
|
|
||||||
public interface Scope<mUE : Any> {
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
@get:JvmName("types")
|
|
||||||
public val types: DatabaseType.Provider
|
|
||||||
|
|
||||||
public fun <RT, DT : DatabaseType<RT>> input(name: String, type: DT): InputColumn<RT, DT, mUE>
|
|
||||||
|
|
||||||
public fun <RT, DT : DatabaseType<RT>> output(name: String, type: DT): OutputColumn<RT, DT, mUE>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface Action<mUE : Any> {
|
|
||||||
public fun calculate(input: OutputRow<mUE>, output: InputRow<mUE>)
|
|
||||||
}
|
|
||||||
}
|
|
@ -2,12 +2,8 @@ package ru.landgrafhomyak.db.sql_skeleton_0.api.misc
|
|||||||
|
|
||||||
import kotlin.jvm.JvmName
|
import kotlin.jvm.JvmName
|
||||||
|
|
||||||
public interface QueryParam<RT, DT : DatabaseType<RT>, oqUE : Any> {
|
public interface QueryParam<RT, oqUE : Any> {
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
@Suppress("INAPPLICABLE_JVM_NAME")
|
||||||
@get:JvmName("getName")
|
@get:JvmName("getName")
|
||||||
public val name: String
|
public val name: String
|
||||||
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
@get:JvmName("getType")
|
|
||||||
public val type: DT
|
|
||||||
}
|
}
|
@ -1,52 +0,0 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.misc
|
|
||||||
|
|
||||||
import kotlin.jvm.JvmName
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.runtime.InputRow
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.runtime.OutputRow
|
|
||||||
|
|
||||||
public interface Reducer<rUE : Any> {
|
|
||||||
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
@get:JvmName("uExt")
|
|
||||||
public val uExt: rUE
|
|
||||||
|
|
||||||
public interface BidirectionalColumn<RT, DT : DatabaseType<RT>, rUE : Any> : Column<RT, DT, rUE>, QueryParam<RT, DT, rUE>
|
|
||||||
public interface OutputColumn<RT, DT : DatabaseType<RT>, rUE : Any> : Column<RT, DT, rUE>, QueryParam<RT, DT, rUE>
|
|
||||||
|
|
||||||
|
|
||||||
public fun interface Linker<_rUE : Any, qUE : Any, oUE : Any> {
|
|
||||||
public fun link(linker: Scope<_rUE, qUE>): oUE
|
|
||||||
|
|
||||||
public interface Scope<rUE : Any, qUE : Any> {
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
@get:JvmName("uExt")
|
|
||||||
public val uExt: rUE
|
|
||||||
|
|
||||||
public fun <RT, DT : DatabaseType<RT>> link(red: BidirectionalColumn<RT, DT, rUE>, src: IntermediateColumn<RT, DT, qUE>): IntermediateColumn<RT, DT, qUE>
|
|
||||||
public fun <RT, DT : DatabaseType<RT>> linkAndInitialize(red: BidirectionalColumn<RT, DT, rUE>, src: IntermediateColumn<RT, DT, qUE>, initial: RT): IntermediateColumn<RT, DT, qUE>
|
|
||||||
public fun <RT, DT : DatabaseType<RT>> linkAndInitialize(red: BidirectionalColumn<RT, DT, rUE>, src: IntermediateColumn<RT, DT, qUE>, initial: QueryParam<RT, DT, qUE>): IntermediateColumn<RT, DT, qUE>
|
|
||||||
public fun <RT, DT : DatabaseType<RT>> link(red: OutputColumn<RT, DT, rUE>): IntermediateColumn<RT, DT, qUE>
|
|
||||||
public fun <RT, DT : DatabaseType<RT>> linkAndInitialize(red: OutputColumn<RT, DT, rUE>, initial: RT): IntermediateColumn<RT, DT, qUE>
|
|
||||||
public fun <RT, DT : DatabaseType<RT>> linkAndInitialize(red: OutputColumn<RT, DT, rUE>, initial: QueryParam<RT, DT, qUE>): IntermediateColumn<RT, DT, qUE>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface Constructor<rUE : Any> {
|
|
||||||
public fun createReducer(context: Scope<rUE>): Action<rUE>
|
|
||||||
|
|
||||||
public interface Scope<rUE : Any> {
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
@get:JvmName("types")
|
|
||||||
public val types: DatabaseType.Provider
|
|
||||||
|
|
||||||
public fun <RT, DT : DatabaseType<RT>> outputColumn(name: String, type: DT): OutputColumn<RT, DT, rUE>
|
|
||||||
public fun <RT, DT : DatabaseType<RT>> outputColumn(name: String, type: DT, defaultInitialValue: RT): OutputColumn<RT, DT, rUE>
|
|
||||||
public fun <RT, DT : DatabaseType<RT>> bidirectionalColumn(name: String, type: DT): BidirectionalColumn<RT, DT, rUE>
|
|
||||||
public fun <RT, DT : DatabaseType<RT>> bidirectionalColumn(name: String, type: DT, defaultInitialValue: RT): BidirectionalColumn<RT, DT, rUE>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface Action<rUE : Any> {
|
|
||||||
public fun calculate(acc: OutputRow<rUE>, row: OutputRow<rUE>, newAcc: InputRow<rUE>)
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,48 +0,0 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.misc
|
|
||||||
|
|
||||||
import kotlin.jvm.JvmName
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.queries._Query
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.runtime.OutputRow
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.runtime.Transaction
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.table.RowId
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.table.Table
|
|
||||||
|
|
||||||
public interface RowExpression<ttUE : Any, @Suppress("unused") R> {
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
@get:JvmName("getTargetTable")
|
|
||||||
public val targetTable: Table<ttUE, *>
|
|
||||||
|
|
||||||
public interface RowExportsConstructor<rUE : Any, ttUE : Any> {
|
|
||||||
public fun createRowExports(context: Scope<rUE, ttUE>): rUE
|
|
||||||
|
|
||||||
public interface Scope<rUE : Any, ttUE : Any> {
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
@get:JvmName("tt")
|
|
||||||
public val tt: Table<ttUE, *>
|
|
||||||
|
|
||||||
public fun <RT, DT : DatabaseType<RT>> selectFromTargetTable(column: Column<RT, DT, ttUE>): Column<RT, DT, rUE>
|
|
||||||
|
|
||||||
public fun <rtUE : Any, RT, DT : DatabaseType<RT>> followReference(
|
|
||||||
ref: Column<*, *, rUE>,
|
|
||||||
column: Column<RT, DT, rtUE>
|
|
||||||
): Column<RT, DT, rUE>
|
|
||||||
|
|
||||||
public fun <rtUE : Any, RT : Any, DT : DatabaseType<RT>> followReferenceNullable(
|
|
||||||
ref: Column<RowId<rtUE>, DatabaseType.ROW_ID<rtUE>, rUE>,
|
|
||||||
column: Column<RT, DT, rtUE>
|
|
||||||
): Column<RT?, DatabaseType.Nullable<RT, DT>, rUE>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface Constructor<ttUE : Any, rUE : Any, R> {
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
@get:JvmName("rowExports")
|
|
||||||
public val rowExports: RowExportsConstructor<rUE, ttUE>
|
|
||||||
|
|
||||||
public fun createRowExpression(internalQueries: _Query.Constructor._SelectsScope, runtimeQueries: _Query.Constructor._SelectsScope): Action<rUE, R>
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface Action<rUE : Any, R> {
|
|
||||||
public suspend fun calculateRow(rowUE: rUE, row: OutputRow<rUE>, transaction: Transaction): R
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,28 +0,0 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.misc
|
|
||||||
|
|
||||||
import kotlin.jvm.JvmName
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.queries.SelectQuery
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.queries.InsertQuery
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.queries.UpdateQuery
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.queries.DeleteQuery
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Utility interface to mark queries (and table) that can be used as the source for other queries.
|
|
||||||
*
|
|
||||||
* @param UE Type of extension provided by user ([about user extensions](https://git.landgrafhomyak.ru/SERDHA/serdha-0-api.kt/wiki/User-extensions)).
|
|
||||||
*
|
|
||||||
* @see SelectQuery
|
|
||||||
* @see InsertQuery.FromSubquery.Constructor.selector
|
|
||||||
* @see UpdateQuery.FromSubquery.Constructor.selector
|
|
||||||
* @see DeleteQuery.FromSubquery.Constructor.selector
|
|
||||||
*/
|
|
||||||
@Suppress("ClassName")
|
|
||||||
public interface _Selectable<out UE : Any> {
|
|
||||||
/**
|
|
||||||
* Getter of an extension provided by user ([about user extensions](https://git.landgrafhomyak.ru/SERDHA/serdha-0-api.kt/wiki/User-extensions)).
|
|
||||||
*/
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
@get:JvmName("uExt")
|
|
||||||
public val uExt: UE
|
|
||||||
}
|
|
@ -1,29 +1,34 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.module
|
package ru.landgrafhomyak.db.sql_skeleton_0.api.module
|
||||||
|
|
||||||
import kotlin.jvm.JvmName
|
import kotlin.jvm.JvmName
|
||||||
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.LowLevelApi
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.table.Table
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.table.Table
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.queries._Query
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.queries._Statement
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.runtime.Executor
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.raw.DialectResolver
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.runtime.Transaction
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.runtime.InputRow
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.table.TableConstructor
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.table.TableConstructor
|
||||||
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.table.TableScopedObject
|
||||||
|
|
||||||
|
|
||||||
public interface CreateModuleScope {
|
public interface CreateModuleScope<mUE : Any, RUNTIME_KEY : Any> {
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
@Suppress("INAPPLICABLE_JVM_NAME")
|
||||||
@get:JvmName("rootNs")
|
@get:JvmName("rootNs")
|
||||||
public val rootNs: Namespace
|
public val rootNs: Namespace<mUE>
|
||||||
|
|
||||||
public fun <tUE : Any> createTable(namespace: Namespace = this.rootNs, name: String, initializer: TableConstructor<tUE>): Table<tUE, Nothing>
|
public fun <tUE : Any> createTable(
|
||||||
|
lifeTime: Table.LifeTime = Table.LifeTime.DATABASE_SCOPE,
|
||||||
|
namespace: Namespace<mUE> = this.rootNs,
|
||||||
|
name: String, initializer: TableConstructor<tUE, RUNTIME_KEY>
|
||||||
|
): Table<tUE, mUE, RUNTIME_KEY>
|
||||||
|
|
||||||
public fun <tUE : Any> createSessionScopeTemporaryTable(namespace: Namespace = this.rootNs, name: String, initializer: TableConstructor<tUE>): Table<tUE, Nothing>
|
public fun moduleScopedObject(namespace: Namespace<mUE> = this.rootNs, name: String): ModuleScopedObject<mUE, RUNTIME_KEY>
|
||||||
|
|
||||||
public fun <tUE : Any> createTransactionScopeTemporaryTable(namespace: Namespace = this.rootNs, name: String, initializer: TableConstructor<tUE>): Table<tUE, Nothing>
|
public fun <mUE : Any> substituteModule(rootNs: Namespace<mUE>, template: ModuleTemplate<mUE>): Module<mUE>
|
||||||
|
|
||||||
public fun <tUE : Any> createModuleConfiguringScopeTemporaryTable(namespace: Namespace = this.rootNs, name: String, initializer: TableConstructor<tUE>): Table<tUE, Nothing>
|
public fun namespace(parent: Namespace<mUE>, name: String): Namespace<mUE>
|
||||||
|
|
||||||
public fun <R : Any> createQuery(creator: _Query.Constructor<R>): R
|
public fun addStatement(stmt: DialectResolver.Statement_Void2Void<*>)
|
||||||
|
|
||||||
public fun <R : Any> createModuleConfiguringScopeTemporaryQuery(creator: _Query.Constructor<R>): R
|
@LowLevelApi
|
||||||
|
public fun <sUE : Any> addStatement(stmt: DialectResolver.Statement_Params2Void<sUE>): InputRow._Scope<sUE, Unit>
|
||||||
public fun <mUE : Any> substituteModule(rootNs: Namespace, template: ModuleTemplate<mUE>): Module<mUE>
|
|
||||||
}
|
}
|
@ -1,7 +1,7 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.module
|
package ru.landgrafhomyak.db.sql_skeleton_0.api.module
|
||||||
|
|
||||||
import kotlin.jvm.JvmName
|
import kotlin.jvm.JvmName
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.queries._Query
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.queries._Statement
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.runtime.Executor
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.runtime.Executor
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.table.Table
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.table.Table
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.table.TableConstructor
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.table.TableConstructor
|
||||||
@ -16,7 +16,7 @@ public interface Module<mUE : Any> {
|
|||||||
@get:JvmName("getVersionKey")
|
@get:JvmName("getVersionKey")
|
||||||
public val versionKey: String
|
public val versionKey: String
|
||||||
|
|
||||||
public fun <R : Any> createQuery(c: _Query.Constructor<R>): R
|
public fun <R : Any> createQuery(c: _Statement.Constructor<R>): R
|
||||||
|
|
||||||
public fun <tUE : Any> createSessionScopeTemporaryTable(name: String, initializer: TableConstructor<tUE>): Table<tUE, Nothing>
|
public fun <tUE : Any> createSessionScopeTemporaryTable(name: String, initializer: TableConstructor<tUE>): Table<tUE, Nothing>
|
||||||
|
|
||||||
|
@ -0,0 +1,8 @@
|
|||||||
|
package ru.landgrafhomyak.db.sql_skeleton_0.api.module
|
||||||
|
|
||||||
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.table.Table
|
||||||
|
|
||||||
|
public interface ModuleScopedObject<mUE : Any, RUNTIME_KEY : Any> {
|
||||||
|
public val module: Module<mUE, RUNTIME_KEY>
|
||||||
|
public val namespace
|
||||||
|
}
|
@ -2,10 +2,7 @@ package ru.landgrafhomyak.db.sql_skeleton_0.api.module
|
|||||||
|
|
||||||
import kotlin.jvm.JvmName
|
import kotlin.jvm.JvmName
|
||||||
|
|
||||||
public interface Namespace {
|
public interface Namespace<mUE: Any> {
|
||||||
@Suppress("SpellCheckingInspection")
|
|
||||||
public fun subnamespace(name: String): Namespace
|
|
||||||
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
@Suppress("INAPPLICABLE_JVM_NAME")
|
||||||
@get:JvmName("getName")
|
@get:JvmName("getName")
|
||||||
public val name: String
|
public val name: String
|
||||||
|
@ -1,46 +1,63 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.module
|
package ru.landgrafhomyak.db.sql_skeleton_0.api.module
|
||||||
|
|
||||||
import kotlin.jvm.JvmName
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.table.Table
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.table.Table
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.table.TableConstructor
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.table.TableConstructor
|
||||||
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.table.TableUpgrade
|
||||||
|
|
||||||
|
|
||||||
public interface UpgradeModuleScope<omUE : Any> : CreateModuleScope {
|
public interface UpgradeModuleScope<nmUE : Any, omUE : Any, RUNTIME_KEY : Any> : CreateModuleScope<nmUE, RUNTIME_KEY> {
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
public fun <tUE : Any> keepTable(table: Table<tUE, omUE, RUNTIME_KEY>): Table<tUE, nmUE, RUNTIME_KEY>
|
||||||
@get:JvmName("oldModule")
|
|
||||||
public val oldModule: omUE
|
|
||||||
|
|
||||||
public interface TableUpgrade<tnUE : Any, toUE : Any> {
|
public fun <tUE : Any> keepAndRenameTable(table: Table<tUE, omUE, RUNTIME_KEY>, newName: String): Table<tUE, nmUE, RUNTIME_KEY>
|
||||||
public fun upgradeTable(oldTable: Table<toUE, *>, upgrade: TableUpgrade<tnUE, toUE>): tnUE
|
|
||||||
}
|
|
||||||
|
|
||||||
|
public fun <tUE : Any> keepAndRenameTable(table: Table<tUE, omUE, RUNTIME_KEY>, newNamespace: Namespace<nmUE>): Table<tUE, nmUE, RUNTIME_KEY>
|
||||||
|
|
||||||
public fun <tUE : Any> keepTable(
|
public fun <tUE : Any> keepAndRenameTable(table: Table<tUE, omUE, RUNTIME_KEY>, newNamespace: Namespace<nmUE>, newName: String): Table<tUE, nmUE, RUNTIME_KEY>
|
||||||
table: Table<tUE, *>,
|
|
||||||
): Table<tUE, *>
|
|
||||||
|
|
||||||
public fun <tUE : Any> renameTable(
|
public fun <ntUE : Any, otUE : Any> upgradeTable(oldTable: Table<otUE, omUE, RUNTIME_KEY>, upgrade: TableUpgrade<ntUE, otUE, RUNTIME_KEY>): Table<ntUE, nmUE, RUNTIME_KEY>
|
||||||
table: Table<tUE, *>,
|
|
||||||
newNamespace: Namespace? = null,
|
|
||||||
newName: String? = null
|
|
||||||
): Table<tUE, *>
|
|
||||||
|
|
||||||
public fun <tnUE : Any, toUE : Any> upgradeTable(
|
public fun <ntUE : Any, otUE : Any> upgradeAndRenameTable(
|
||||||
oldTable: Table<toUE, *>,
|
table: Table<otUE, omUE, RUNTIME_KEY>,
|
||||||
upgrade: TableUpgrade<tnUE, toUE>
|
newName: String,
|
||||||
): Table<tnUE, toUE>
|
upgrade: TableUpgrade<ntUE, otUE, RUNTIME_KEY>
|
||||||
|
): Table<ntUE, nmUE, RUNTIME_KEY>
|
||||||
|
|
||||||
|
public fun <ntUE : Any, otUE : Any> upgradeAndRenameTable(
|
||||||
|
table: Table<otUE, omUE, RUNTIME_KEY>,
|
||||||
|
newNamespace: Namespace<nmUE>,
|
||||||
|
upgrade: TableUpgrade<ntUE, otUE, RUNTIME_KEY>
|
||||||
|
): Table<ntUE, nmUE, RUNTIME_KEY>
|
||||||
|
|
||||||
public fun <tnUE : Any, toUE : Any> upgradeAndRenameTable(
|
public fun <ntUE : Any, otUE : Any> upgradeAndRenameTable(
|
||||||
oldTable: Table<tnUE, toUE>,
|
table: Table<otUE, omUE, RUNTIME_KEY>,
|
||||||
newNamespace: Namespace? = null,
|
newNamespace: Namespace<nmUE>,
|
||||||
newName: String? = null,
|
upgrade: TableUpgrade<ntUE, otUE, RUNTIME_KEY>,
|
||||||
upgrade: TableUpgrade<tnUE, toUE>
|
newName: String
|
||||||
): Table<tnUE, toUE>
|
): Table<ntUE, nmUE, RUNTIME_KEY>
|
||||||
|
|
||||||
public fun deleteTable(table: Table<*, *>)
|
public fun deleteTable(table: Table<*, omUE, RUNTIME_KEY>)
|
||||||
|
|
||||||
public fun deleteTableAfterModuleUpgraded(table: Table<*, *>)
|
public fun <tUE : Any> deleteTableAfterModuleUpgraded(table: Table<tUE, omUE, RUNTIME_KEY>): Table<tUE, nmUE, RUNTIME_KEY>
|
||||||
|
|
||||||
public fun <smUE : Any> upgradeModule(oldModule: Module<*>, rootNs: Namespace, template: ModuleTemplate<smUE>): Module<smUE>
|
public fun exportTable(table: Table<*, omUE, RUNTIME_KEY>)
|
||||||
|
|
||||||
|
public fun <tUE : Any> importTable(
|
||||||
|
namespace: Namespace<nmUE> = this.rootNs, name: String,
|
||||||
|
table: Table<tUE, *, RUNTIME_KEY>
|
||||||
|
): Table<tUE, nmUE, RUNTIME_KEY>
|
||||||
|
|
||||||
|
public fun <ntUE : Any, otUE : Any> importAndUpgradeTable(
|
||||||
|
namespace: Namespace<nmUE> = this.rootNs, name: String,
|
||||||
|
table: Table<otUE, *, RUNTIME_KEY>,
|
||||||
|
upgrade: TableUpgrade<ntUE, otUE, RUNTIME_KEY>
|
||||||
|
): Table<ntUE, nmUE, RUNTIME_KEY>
|
||||||
|
|
||||||
|
public fun <smUE : Any> keepModule(module: Module<smUE>): Module<smUE>
|
||||||
|
public fun <smUE : Any> keepAndMoveModule(oldModule: Module<smUE>, newNs: Namespace<nmUE>): Module<smUE>
|
||||||
|
|
||||||
|
public fun <smUE : Any> upgradeModule(oldModule: Module<*>, template: ModuleTemplate<smUE>): Module<smUE>
|
||||||
|
public fun <smUE : Any> upgradeAndMoveModule(oldModule: Module<*>, newNs: Namespace<nmUE>, template: ModuleTemplate<smUE>): Module<smUE>
|
||||||
|
|
||||||
|
public fun removeModule(oldModule: Module<*>)
|
||||||
|
public fun <smUE : Any> removeModuleAfterUpgrade(oldModule: Module<smUE>): Module<smUE>
|
||||||
}
|
}
|
@ -1,51 +1,53 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.queries
|
package ru.landgrafhomyak.db.sql_skeleton_0.api.queries
|
||||||
|
|
||||||
public interface RawStatement<qUE : Any?> : _Statement<qUE> {
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.raw.DialectKey
|
||||||
|
|
||||||
|
public interface RawStatement<qUE : Any?, DIALECT : DialectKey<*, *, *, *, *, *, *, *, *>> : _Statement<qUE, DIALECT> {
|
||||||
public override val uExt: qUE
|
public override val uExt: qUE
|
||||||
|
|
||||||
public interface Void2Void<qUE : Any?> : RawStatement<qUE>, _Statement.Void2Void<qUE> {
|
public interface Void2Void<qUE : Any?, DIALECT : DialectKey<*, *, *, *, *, *, *, *, *>> : RawStatement<qUE, DIALECT>, _Statement.Void2Void<qUE, DIALECT> {
|
||||||
override val uExt: qUE
|
override val uExt: qUE
|
||||||
|
|
||||||
public interface Constructor<qUE: Any?>
|
public interface Constructor<qUE : Any?>
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface Void2Row<qUE : Any> : RawStatement<qUE>, _Statement.Void2Row<qUE> {
|
public interface Void2Row<qUE : Any, DIALECT : DialectKey<*, *, *, *, *, *, *, *, *>> : RawStatement<qUE, DIALECT>, _Statement.Void2Row<qUE, DIALECT> {
|
||||||
override val uExt: qUE
|
override val uExt: qUE
|
||||||
|
|
||||||
public interface Constructor<qUE : Any>
|
public interface Constructor<qUE : Any>
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface Void2RowOrNull<qUE : Any> : RawStatement<qUE>, _Statement.Void2RowOrNull<qUE> {
|
public interface Void2RowOrNull<qUE : Any, DIALECT : DialectKey<*, *, *, *, *, *, *, *, *>> : RawStatement<qUE, DIALECT>, _Statement.Void2RowOrNull<qUE, DIALECT> {
|
||||||
override val uExt: qUE
|
override val uExt: qUE
|
||||||
|
|
||||||
public interface Constructor<qUE : Any>
|
public interface Constructor<qUE : Any>
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface Void2Table<qUE : Any> : RawStatement<qUE>, _Statement.Void2Table<qUE> {
|
public interface Void2Table<qUE : Any, DIALECT : DialectKey<*, *, *, *, *, *, *, *, *>> : RawStatement<qUE, DIALECT>, _Statement.Void2Table<qUE, DIALECT> {
|
||||||
override val uExt: qUE
|
override val uExt: qUE
|
||||||
|
|
||||||
public interface Constructor<qUE : Any>
|
public interface Constructor<qUE : Any>
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface Params2Void<qUE : Any> : RawStatement<qUE>, _Statement.Params2Void<qUE> {
|
public interface Params2Void<qUE : Any, DIALECT : DialectKey<*, *, *, *, *, *, *, *, *>> : RawStatement<qUE, DIALECT>, _Statement.Params2Void<qUE, DIALECT> {
|
||||||
override val uExt: qUE
|
override val uExt: qUE
|
||||||
|
|
||||||
public interface Constructor<qUE : Any>
|
public interface Constructor<qUE : Any>
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface Params2Row<qUE : Any> : RawStatement<qUE>, _Statement.Params2Row<qUE> {
|
public interface Params2Row<qUE : Any, DIALECT : DialectKey<*, *, *, *, *, *, *, *, *>> : RawStatement<qUE, DIALECT>, _Statement.Params2Row<qUE, DIALECT> {
|
||||||
override val uExt: qUE
|
override val uExt: qUE
|
||||||
|
|
||||||
public interface Constructor<qUE : Any>
|
public interface Constructor<qUE : Any>
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface Params2RowOrNull<qUE : Any> : RawStatement<qUE>, _Statement.Params2RowOrNull<qUE> {
|
public interface Params2RowOrNull<qUE : Any, DIALECT : DialectKey<*, *, *, *, *, *, *, *, *>> : RawStatement<qUE, DIALECT>, _Statement.Params2RowOrNull<qUE, DIALECT> {
|
||||||
override val uExt: qUE
|
override val uExt: qUE
|
||||||
|
|
||||||
public interface Constructor<qUE : Any>
|
public interface Constructor<qUE : Any>
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface Params2Table<qUE : Any> : RawStatement<qUE>, _Statement.Params2Table<qUE> {
|
public interface Params2Table<qUE : Any, DIALECT : DialectKey<*, *, *, *, *, *, *, *, *>> : RawStatement<qUE, DIALECT>, _Statement.Params2Table<qUE, DIALECT> {
|
||||||
override val uExt: qUE
|
override val uExt: qUE
|
||||||
|
|
||||||
public interface Constructor<qUE : Any>
|
public interface Constructor<qUE : Any>
|
||||||
|
@ -1,20 +1,21 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.queries
|
package ru.landgrafhomyak.db.sql_skeleton_0.api.queries
|
||||||
|
|
||||||
import kotlin.jvm.JvmName
|
import kotlin.jvm.JvmName
|
||||||
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.raw.DialectKey
|
||||||
|
|
||||||
|
|
||||||
@Suppress("ClassName")
|
@Suppress("ClassName")
|
||||||
public interface _Statement<qUE : Any?> {
|
public interface _Statement<STATEMENT_USER_EXTENSION : Any?, DIALECT : DialectKey<*, *, *, *, *, *, *, *, *>> {
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
@Suppress("INAPPLICABLE_JVM_NAME")
|
||||||
@get:JvmName("uExt")
|
@get:JvmName("uExt")
|
||||||
public val uExt: qUE
|
public val uExt: STATEMENT_USER_EXTENSION
|
||||||
|
|
||||||
public interface Void2Void<qUE : Any?> : _Statement<qUE>
|
public interface Void2Void<qUE : Any?, DIALECT : DialectKey<*, *, *, *, *, *, *, *, *>> : _Statement<qUE, DIALECT>
|
||||||
public interface Void2Row<qUE : Any> : _Statement<qUE>
|
public interface Void2Row<qUE : Any, DIALECT : DialectKey<*, *, *, *, *, *, *, *, *>> : _Statement<qUE, DIALECT>
|
||||||
public interface Void2RowOrNull<qUE : Any> : _Statement<qUE>
|
public interface Void2RowOrNull<qUE : Any, DIALECT : DialectKey<*, *, *, *, *, *, *, *, *>> : _Statement<qUE, DIALECT>
|
||||||
public interface Void2Table<qUE : Any> : _Statement<qUE>
|
public interface Void2Table<qUE : Any, DIALECT : DialectKey<*, *, *, *, *, *, *, *, *>> : _Statement<qUE, DIALECT>
|
||||||
public interface Params2Void<qUE : Any> : _Statement<qUE>
|
public interface Params2Void<qUE : Any, DIALECT : DialectKey<*, *, *, *, *, *, *, *, *>> : _Statement<qUE, DIALECT>
|
||||||
public interface Params2Row<qUE : Any> : _Statement<qUE>
|
public interface Params2Row<qUE : Any, DIALECT : DialectKey<*, *, *, *, *, *, *, *, *>> : _Statement<qUE, DIALECT>
|
||||||
public interface Params2RowOrNull<qUE : Any> : _Statement<qUE>
|
public interface Params2RowOrNull<qUE : Any, DIALECT : DialectKey<*, *, *, *, *, *, *, *, *>> : _Statement<qUE, DIALECT>
|
||||||
public interface Params2Table<qUE : Any> : _Statement<qUE>
|
public interface Params2Table<qUE : Any, DIALECT : DialectKey<*, *, *, *, *, *, *, *, *>> : _Statement<qUE, DIALECT>
|
||||||
}
|
}
|
@ -5,115 +5,117 @@ import ru.landgrafhomyak.db.sql_skeleton_0.api.queries.RawStatement
|
|||||||
|
|
||||||
|
|
||||||
public interface DialectResolver {
|
public interface DialectResolver {
|
||||||
public fun interface Type<RUNTIME_TYPE> {
|
public fun interface Type<RUNTIME_TYPE> : DialectResolver {
|
||||||
public fun resolveByDialect_databaseType(selector: Selector<RUNTIME_TYPE>)
|
public fun resolveByDialect_databaseType(selector: Selector<RUNTIME_TYPE>)
|
||||||
|
|
||||||
public interface Selector<RUNTIME_TYPE> {
|
public interface Selector<RUNTIME_TYPE> {
|
||||||
@Suppress("BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER")
|
@Suppress("BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER")
|
||||||
public fun <DATABASE_TYPE, DATABASE_TYPE_UNBOUND> bind(
|
public fun <DATABASE_TYPE, DATABASE_TYPE_UNBOUND, DIALECT : DialectKey<DATABASE_TYPE_UNBOUND, *, *, *, *, *, *, *, *>> bind(
|
||||||
key: DialectKey<DATABASE_TYPE_UNBOUND, *, *, *, *, *, *, *, *>, type: DATABASE_TYPE
|
key: DIALECT, type: DATABASE_TYPE
|
||||||
) where DATABASE_TYPE_UNBOUND : DatabaseType<*>,
|
) where DATABASE_TYPE_UNBOUND : DatabaseType<*>,
|
||||||
DATABASE_TYPE : DatabaseType<RUNTIME_TYPE>,
|
DATABASE_TYPE : DatabaseType<RUNTIME_TYPE>,
|
||||||
DATABASE_TYPE : DATABASE_TYPE_UNBOUND
|
DATABASE_TYPE : DATABASE_TYPE_UNBOUND
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public fun interface Statement_Void2Void<USER_EXTENSION> {
|
public fun interface Statement_Void2Void<USER_EXTENSION : Any?> {
|
||||||
public fun resolveByDialect_statement_void2void(selector: Selector<USER_EXTENSION>)
|
public fun resolveByDialect_statement_void2void(selector: Selector<USER_EXTENSION>)
|
||||||
|
|
||||||
public interface Selector<USER_EXTENSION> {
|
public interface Selector<USER_EXTENSION : Any?> {
|
||||||
@Suppress("BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER")
|
@Suppress("BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER")
|
||||||
public fun <STATEMENT_CONSTRUCTOR, STATEMENT_CONSTRUCTOR_UNBOUND> bind(
|
public fun <STATEMENT_CONSTRUCTOR, STATEMENT_CONSTRUCTOR_UNBOUND, DIALECT : DialectKey<*, STATEMENT_CONSTRUCTOR_UNBOUND, *, *, *, *, *, *, *>> bind(
|
||||||
key: DialectKey<*, STATEMENT_CONSTRUCTOR_UNBOUND, *, *, *, *, *, *, *>, constructor: STATEMENT_CONSTRUCTOR
|
key: DIALECT, constructor: STATEMENT_CONSTRUCTOR
|
||||||
) where STATEMENT_CONSTRUCTOR_UNBOUND : RawStatement.Void2Void.Constructor<*>,
|
) where STATEMENT_CONSTRUCTOR_UNBOUND : RawStatement.Void2Void.Constructor<*>,
|
||||||
STATEMENT_CONSTRUCTOR : RawStatement.Void2Void.Constructor<USER_EXTENSION>,
|
STATEMENT_CONSTRUCTOR : RawStatement.Void2Void.Constructor<USER_EXTENSION>,
|
||||||
STATEMENT_CONSTRUCTOR : STATEMENT_CONSTRUCTOR_UNBOUND
|
STATEMENT_CONSTRUCTOR : STATEMENT_CONSTRUCTOR_UNBOUND
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public fun interface Statement_Void2Row<USER_EXTENSION> {
|
public fun interface Statement_Void2Row<USER_EXTENSION : Any> {
|
||||||
public fun resolveByDialect_statement_void2row(selector: Selector<USER_EXTENSION>)
|
public fun resolveByDialect_statement_void2row(selector: Selector<USER_EXTENSION>)
|
||||||
|
|
||||||
public interface Selector<USER_EXTENSION> {
|
public interface Selector<USER_EXTENSION : Any> {
|
||||||
@Suppress("BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER")
|
@Suppress("BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER")
|
||||||
public fun <STATEMENT_CONSTRUCTOR, STATEMENT_CONSTRUCTOR_UNBOUND> bind(
|
public fun <STATEMENT_CONSTRUCTOR, STATEMENT_CONSTRUCTOR_UNBOUND, DIALECT : DialectKey<*, *, STATEMENT_CONSTRUCTOR_UNBOUND, *, *, *, *, *, *>> bind(
|
||||||
key: DialectKey<*, *, STATEMENT_CONSTRUCTOR_UNBOUND, *, *, *, *, *, *>, constructor: STATEMENT_CONSTRUCTOR
|
key: DIALECT, constructor: STATEMENT_CONSTRUCTOR
|
||||||
) where STATEMENT_CONSTRUCTOR_UNBOUND : RawStatement.Void2Row.Constructor<*>,
|
) where STATEMENT_CONSTRUCTOR_UNBOUND : RawStatement.Void2Row.Constructor<*>,
|
||||||
STATEMENT_CONSTRUCTOR : RawStatement.Void2Row.Constructor<USER_EXTENSION>,
|
STATEMENT_CONSTRUCTOR : RawStatement.Void2Row.Constructor<USER_EXTENSION>,
|
||||||
STATEMENT_CONSTRUCTOR : STATEMENT_CONSTRUCTOR_UNBOUND
|
STATEMENT_CONSTRUCTOR : STATEMENT_CONSTRUCTOR_UNBOUND
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public fun interface Statement_Void2RowOrNull<USER_EXTENSION> {
|
public fun interface Statement_Void2RowOrNull<USER_EXTENSION : Any> {
|
||||||
public fun resolveByDialect_statement_void2rowOrNull(selector: Selector<USER_EXTENSION>)
|
public fun resolveByDialect_statement_void2rowOrNull(selector: Selector<USER_EXTENSION>)
|
||||||
|
|
||||||
public interface Selector<USER_EXTENSION> {
|
public interface Selector<USER_EXTENSION : Any> {
|
||||||
@Suppress("BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER")
|
@Suppress("BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER")
|
||||||
public fun <STATEMENT_CONSTRUCTOR, STATEMENT_CONSTRUCTOR_UNBOUND> bind(
|
public fun <STATEMENT_CONSTRUCTOR, STATEMENT_CONSTRUCTOR_UNBOUND, DIALECT : DialectKey<*, *, *, STATEMENT_CONSTRUCTOR_UNBOUND, *, *, *, *, *>> bind(
|
||||||
key: DialectKey<*, *, *, STATEMENT_CONSTRUCTOR_UNBOUND, *, *, *, *, *>, constructor: STATEMENT_CONSTRUCTOR
|
key: DIALECT, constructor: STATEMENT_CONSTRUCTOR
|
||||||
) where STATEMENT_CONSTRUCTOR_UNBOUND : RawStatement.Void2RowOrNull.Constructor<*>,
|
) where STATEMENT_CONSTRUCTOR_UNBOUND : RawStatement.Void2RowOrNull.Constructor<*>,
|
||||||
STATEMENT_CONSTRUCTOR : RawStatement.Void2RowOrNull.Constructor<USER_EXTENSION>,
|
STATEMENT_CONSTRUCTOR : RawStatement.Void2RowOrNull.Constructor<USER_EXTENSION>,
|
||||||
STATEMENT_CONSTRUCTOR : STATEMENT_CONSTRUCTOR_UNBOUND
|
STATEMENT_CONSTRUCTOR : STATEMENT_CONSTRUCTOR_UNBOUND
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public fun interface Statement_Void2Table<USER_EXTENSION> {
|
|
||||||
|
public fun interface Statement_Void2Table<USER_EXTENSION : Any> {
|
||||||
public fun resolveByDialect_statement_void2table(selector: Selector<USER_EXTENSION>)
|
public fun resolveByDialect_statement_void2table(selector: Selector<USER_EXTENSION>)
|
||||||
|
|
||||||
public interface Selector<USER_EXTENSION> {
|
public interface Selector<USER_EXTENSION : Any> {
|
||||||
@Suppress("BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER")
|
@Suppress("BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER")
|
||||||
public fun <STATEMENT_CONSTRUCTOR, STATEMENT_CONSTRUCTOR_UNBOUND> bind(
|
public fun <STATEMENT_CONSTRUCTOR, STATEMENT_CONSTRUCTOR_UNBOUND, DIALECT : DialectKey<*, *, *, *, STATEMENT_CONSTRUCTOR_UNBOUND, *, *, *, *>> bind(
|
||||||
key: DialectKey<*, *, *, *, STATEMENT_CONSTRUCTOR_UNBOUND, *, *, *, *>, constructor: STATEMENT_CONSTRUCTOR
|
key: DIALECT, constructor: STATEMENT_CONSTRUCTOR
|
||||||
) where STATEMENT_CONSTRUCTOR_UNBOUND : RawStatement.Void2Table.Constructor<*>,
|
) where STATEMENT_CONSTRUCTOR_UNBOUND : RawStatement.Void2Table.Constructor<*>,
|
||||||
STATEMENT_CONSTRUCTOR : RawStatement.Void2Table.Constructor<USER_EXTENSION>,
|
STATEMENT_CONSTRUCTOR : RawStatement.Void2Table.Constructor<USER_EXTENSION>,
|
||||||
STATEMENT_CONSTRUCTOR : STATEMENT_CONSTRUCTOR_UNBOUND
|
STATEMENT_CONSTRUCTOR : STATEMENT_CONSTRUCTOR_UNBOUND
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public fun interface Statement_Params2Void<USER_EXTENSION> {
|
public fun interface Statement_Params2Void<USER_EXTENSION : Any> {
|
||||||
public fun resolveByDialect_statement_params2void(selector: Selector<USER_EXTENSION>)
|
public fun resolveByDialect_statement_params2void(selector: Selector<USER_EXTENSION>)
|
||||||
|
|
||||||
public interface Selector<USER_EXTENSION> {
|
public interface Selector<USER_EXTENSION : Any> {
|
||||||
@Suppress("BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER")
|
@Suppress("BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER")
|
||||||
public fun <STATEMENT_CONSTRUCTOR, STATEMENT_CONSTRUCTOR_UNBOUND> bind(
|
public fun <STATEMENT_CONSTRUCTOR, STATEMENT_CONSTRUCTOR_UNBOUND, DIALECT : DialectKey<*, *, *, *, *, STATEMENT_CONSTRUCTOR_UNBOUND, *, *, *>> bind(
|
||||||
key: DialectKey<*, *, *, *, *, STATEMENT_CONSTRUCTOR_UNBOUND, *, *, *>, constructor: STATEMENT_CONSTRUCTOR
|
key: DIALECT, constructor: STATEMENT_CONSTRUCTOR
|
||||||
) where STATEMENT_CONSTRUCTOR_UNBOUND : RawStatement.Params2Void.Constructor<*>,
|
) where STATEMENT_CONSTRUCTOR_UNBOUND : RawStatement.Params2Void.Constructor<*>,
|
||||||
STATEMENT_CONSTRUCTOR : RawStatement.Params2Void.Constructor<USER_EXTENSION>,
|
STATEMENT_CONSTRUCTOR : RawStatement.Params2Void.Constructor<USER_EXTENSION>,
|
||||||
STATEMENT_CONSTRUCTOR : STATEMENT_CONSTRUCTOR_UNBOUND
|
STATEMENT_CONSTRUCTOR : STATEMENT_CONSTRUCTOR_UNBOUND
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public fun interface Statement_Params2Row<USER_EXTENSION> {
|
public fun interface Statement_Params2Row<USER_EXTENSION : Any> {
|
||||||
public fun resolveByDialect_statement_params2row(selector: Selector<USER_EXTENSION>)
|
public fun resolveByDialect_statement_params2row(selector: Selector<USER_EXTENSION>)
|
||||||
|
|
||||||
public interface Selector<USER_EXTENSION> {
|
public interface Selector<USER_EXTENSION : Any> {
|
||||||
@Suppress("BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER")
|
@Suppress("BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER")
|
||||||
public fun <STATEMENT_CONSTRUCTOR, STATEMENT_CONSTRUCTOR_UNBOUND> bind(
|
public fun <STATEMENT_CONSTRUCTOR, STATEMENT_CONSTRUCTOR_UNBOUND, DIALECT : DialectKey<*, *, *, *, *, *, STATEMENT_CONSTRUCTOR_UNBOUND, *, *>> bind(
|
||||||
key: DialectKey<*, *, *, *, *, *, STATEMENT_CONSTRUCTOR_UNBOUND, *, *>, constructor: STATEMENT_CONSTRUCTOR
|
key: DIALECT, constructor: STATEMENT_CONSTRUCTOR
|
||||||
) where STATEMENT_CONSTRUCTOR_UNBOUND : RawStatement.Params2Row.Constructor<*>,
|
) where STATEMENT_CONSTRUCTOR_UNBOUND : RawStatement.Params2Row.Constructor<*>,
|
||||||
STATEMENT_CONSTRUCTOR : RawStatement.Params2Row.Constructor<USER_EXTENSION>,
|
STATEMENT_CONSTRUCTOR : RawStatement.Params2Row.Constructor<USER_EXTENSION>,
|
||||||
STATEMENT_CONSTRUCTOR : STATEMENT_CONSTRUCTOR_UNBOUND
|
STATEMENT_CONSTRUCTOR : STATEMENT_CONSTRUCTOR_UNBOUND
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public fun interface Statement_Params2RowOrNull<USER_EXTENSION> {
|
public fun interface Statement_Params2RowOrNull<USER_EXTENSION : Any> {
|
||||||
public fun resolveByDialect_statement_params2rowOrNull(selector: Selector<USER_EXTENSION>)
|
public fun resolveByDialect_statement_params2rowOrNull(selector: Selector<USER_EXTENSION>)
|
||||||
|
|
||||||
public interface Selector<USER_EXTENSION> {
|
public interface Selector<USER_EXTENSION : Any> {
|
||||||
@Suppress("BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER")
|
@Suppress("BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER")
|
||||||
public fun <STATEMENT_CONSTRUCTOR, STATEMENT_CONSTRUCTOR_UNBOUND> bind(
|
public fun <STATEMENT_CONSTRUCTOR, STATEMENT_CONSTRUCTOR_UNBOUND, DIALECT : DialectKey<*, *, *, *, *, *, *, STATEMENT_CONSTRUCTOR_UNBOUND, *>> bind(
|
||||||
key: DialectKey<*, *, *, *, *, *, *, STATEMENT_CONSTRUCTOR_UNBOUND, *>, constructor: STATEMENT_CONSTRUCTOR
|
key: DIALECT, constructor: STATEMENT_CONSTRUCTOR
|
||||||
) where STATEMENT_CONSTRUCTOR_UNBOUND : RawStatement.Params2RowOrNull.Constructor<*>,
|
) where STATEMENT_CONSTRUCTOR_UNBOUND : RawStatement.Params2RowOrNull.Constructor<*>,
|
||||||
STATEMENT_CONSTRUCTOR : RawStatement.Params2RowOrNull.Constructor<USER_EXTENSION>,
|
STATEMENT_CONSTRUCTOR : RawStatement.Params2RowOrNull.Constructor<USER_EXTENSION>,
|
||||||
STATEMENT_CONSTRUCTOR : STATEMENT_CONSTRUCTOR_UNBOUND
|
STATEMENT_CONSTRUCTOR : STATEMENT_CONSTRUCTOR_UNBOUND
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public fun interface Statement_Params2Table<USER_EXTENSION> {
|
|
||||||
|
public fun interface Statement_Params2Table<USER_EXTENSION : Any> {
|
||||||
public fun resolveByDialect_statement_params2table(selector: Selector<USER_EXTENSION>)
|
public fun resolveByDialect_statement_params2table(selector: Selector<USER_EXTENSION>)
|
||||||
|
|
||||||
public interface Selector<USER_EXTENSION> {
|
public interface Selector<USER_EXTENSION : Any> {
|
||||||
@Suppress("BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER")
|
@Suppress("BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER")
|
||||||
public fun <STATEMENT_CONSTRUCTOR, STATEMENT_CONSTRUCTOR_UNBOUND> bind(
|
public fun <STATEMENT_CONSTRUCTOR, STATEMENT_CONSTRUCTOR_UNBOUND, DIALECT : DialectKey<*, *, *, *, *, *, *, *, STATEMENT_CONSTRUCTOR_UNBOUND>> bind(
|
||||||
key: DialectKey<*, *, *, *, *, *, *, *, STATEMENT_CONSTRUCTOR_UNBOUND>, constructor: STATEMENT_CONSTRUCTOR
|
key: DIALECT, constructor: STATEMENT_CONSTRUCTOR
|
||||||
) where STATEMENT_CONSTRUCTOR_UNBOUND : RawStatement.Params2Table.Constructor<*>,
|
) where STATEMENT_CONSTRUCTOR_UNBOUND : RawStatement.Params2Table.Constructor<*>,
|
||||||
STATEMENT_CONSTRUCTOR : RawStatement.Params2Table.Constructor<USER_EXTENSION>,
|
STATEMENT_CONSTRUCTOR : RawStatement.Params2Table.Constructor<USER_EXTENSION>,
|
||||||
STATEMENT_CONSTRUCTOR : STATEMENT_CONSTRUCTOR_UNBOUND
|
STATEMENT_CONSTRUCTOR : STATEMENT_CONSTRUCTOR_UNBOUND
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.runtime
|
package ru.landgrafhomyak.db.sql_skeleton_0.api.runtime
|
||||||
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.LowLevelApi
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.LowLevelApi
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.module.Module
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.table.RowId
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.table.RowId
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.table.Table
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.table.Table
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.queries._Query
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.queries._Statement
|
||||||
|
|
||||||
public interface Executor {
|
public interface Executor {
|
||||||
@Suppress("FunctionName")
|
@Suppress("FunctionName")
|
||||||
@ -13,19 +12,19 @@ public interface Executor {
|
|||||||
|
|
||||||
@Suppress("FunctionName")
|
@Suppress("FunctionName")
|
||||||
@LowLevelApi
|
@LowLevelApi
|
||||||
public suspend fun <QueryUserExtension : Any> _executeAutoTransactedQuery(compiledQuery: _Query.Void2Table<QueryUserExtension>): OutputRow._Iterator<QueryUserExtension, Unit>
|
public suspend fun <QueryUserExtension : Any> _executeAutoTransactedQuery(compiledQuery: _Statement.Void2Table<QueryUserExtension>): OutputRow._Iterator<QueryUserExtension, Unit>
|
||||||
|
|
||||||
@Suppress("FunctionName")
|
@Suppress("FunctionName")
|
||||||
@LowLevelApi
|
@LowLevelApi
|
||||||
public suspend fun <QueryUserExtension : Any> _executeAutoTransactedQuery(compiledQuery: _Query.Params2Table<QueryUserExtension>): InputRow._Scope<QueryUserExtension, OutputRow._Iterator<QueryUserExtension, Unit>>
|
public suspend fun <QueryUserExtension : Any> _executeAutoTransactedQuery(compiledQuery: _Statement.Params2Table<QueryUserExtension>): InputRow._Scope<QueryUserExtension, OutputRow._Iterator<QueryUserExtension, Unit>>
|
||||||
|
|
||||||
@Suppress("FunctionName")
|
@Suppress("FunctionName")
|
||||||
@LowLevelApi
|
@LowLevelApi
|
||||||
public suspend fun <QueryUserExtension : Any> _executeAutoTransactedQuery(compiledQuery: _Query.Table2Void<QueryUserExtension>): InputRow._Iterator<QueryUserExtension, Unit>
|
public suspend fun <QueryUserExtension : Any> _executeAutoTransactedQuery(compiledQuery: _Statement.Table2Void<QueryUserExtension>): InputRow._Iterator<QueryUserExtension, Unit>
|
||||||
|
|
||||||
@Suppress("FunctionName")
|
@Suppress("FunctionName")
|
||||||
@LowLevelApi
|
@LowLevelApi
|
||||||
public suspend fun <QueryUserExtension : Any> _executeAutoTransactedQuery(compiledQuery: _Query.Params2Void<QueryUserExtension>): InputRow._Scope<QueryUserExtension, Unit>
|
public suspend fun <QueryUserExtension : Any> _executeAutoTransactedQuery(compiledQuery: _Statement.Params2Void<QueryUserExtension>): InputRow._Scope<QueryUserExtension, Unit>
|
||||||
|
|
||||||
public fun <TableUserException : Any, V> mapOfRowIds(
|
public fun <TableUserException : Any, V> mapOfRowIds(
|
||||||
table: Table<TableUserException, *>,
|
table: Table<TableUserException, *>,
|
||||||
|
@ -2,7 +2,6 @@ package ru.landgrafhomyak.db.sql_skeleton_0.api.runtime
|
|||||||
|
|
||||||
import kotlin.jvm.JvmName
|
import kotlin.jvm.JvmName
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.LowLevelApi
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.LowLevelApi
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.misc.DatabaseType
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.misc.QueryParam
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.misc.QueryParam
|
||||||
|
|
||||||
public interface InputRow<qUE : Any> {
|
public interface InputRow<qUE : Any> {
|
||||||
@ -10,21 +9,21 @@ public interface InputRow<qUE : Any> {
|
|||||||
@get:JvmName("uExt")
|
@get:JvmName("uExt")
|
||||||
public val uExt: qUE
|
public val uExt: qUE
|
||||||
|
|
||||||
public operator fun <RuntimeType> set(c: QueryParam<RuntimeType, *, qUE>, value: RuntimeType)
|
public operator fun <RuntimeType> set(c: QueryParam<RuntimeType, qUE>, value: RuntimeType)
|
||||||
|
|
||||||
public operator fun set(c: QueryParam<Byte, *, qUE>, value: Byte): Unit = this.set<Byte>(c, value)
|
public operator fun set(c: QueryParam<Byte, qUE>, value: Byte): Unit = this.set<Byte>(c, value)
|
||||||
public operator fun set(c: QueryParam<UByte, *, qUE>, value: UByte): Unit = this.set<UByte>(c, value)
|
public operator fun set(c: QueryParam<UByte, qUE>, value: UByte): Unit = this.set<UByte>(c, value)
|
||||||
public operator fun set(c: QueryParam<Short, *, qUE>, value: Short): Unit = this.set<Short>(c, value)
|
public operator fun set(c: QueryParam<Short, qUE>, value: Short): Unit = this.set<Short>(c, value)
|
||||||
public operator fun set(c: QueryParam<UShort, *, qUE>, value: UShort): Unit = this.set<UShort>(c, value)
|
public operator fun set(c: QueryParam<UShort, qUE>, value: UShort): Unit = this.set<UShort>(c, value)
|
||||||
public operator fun set(c: QueryParam<Int, *, qUE>, value: Int): Unit = this.set<Int>(c, value)
|
public operator fun set(c: QueryParam<Int, qUE>, value: Int): Unit = this.set<Int>(c, value)
|
||||||
public operator fun set(c: QueryParam<UInt, *, qUE>, value: UInt): Unit = this.set<UInt>(c, value)
|
public operator fun set(c: QueryParam<UInt, qUE>, value: UInt): Unit = this.set<UInt>(c, value)
|
||||||
public operator fun set(c: QueryParam<Long, *, qUE>, value: Long): Unit = this.set<Long>(c, value)
|
public operator fun set(c: QueryParam<Long, qUE>, value: Long): Unit = this.set<Long>(c, value)
|
||||||
public operator fun set(c: QueryParam<ULong, *, qUE>, value: ULong): Unit = this.set<ULong>(c, value)
|
public operator fun set(c: QueryParam<ULong, qUE>, value: ULong): Unit = this.set<ULong>(c, value)
|
||||||
public operator fun set(c: QueryParam<Char, *, qUE>, value: Char): Unit = this.set<Char>(c, value)
|
public operator fun set(c: QueryParam<Char, qUE>, value: Char): Unit = this.set<Char>(c, value)
|
||||||
public operator fun set(c: QueryParam<Boolean, *, qUE>, value: Boolean): Unit = this.set<Boolean>(c, value)
|
public operator fun set(c: QueryParam<Boolean, qUE>, value: Boolean): Unit = this.set<Boolean>(c, value)
|
||||||
|
|
||||||
public interface WithRedirect<QueryUserExtension : Any, ParentQueryUserExtension : Any> : InputRow<QueryUserExtension> {
|
public interface WithRedirect<QueryUserExtension : Any, ParentQueryUserExtension : Any> : InputRow<QueryUserExtension> {
|
||||||
public fun <RT, DT : DatabaseType<RT>> redirect(c: QueryParam<RT, DT, QueryUserExtension>, value: QueryParam<RT, DT, ParentQueryUserExtension>)
|
public fun <RT> redirect(c: QueryParam<RT, QueryUserExtension>, value: QueryParam<RT, ParentQueryUserExtension>)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("ClassName")
|
@Suppress("ClassName")
|
||||||
|
@ -9,18 +9,18 @@ public interface OutputRow<qUE : Any> {
|
|||||||
@get:JvmName("uExt")
|
@get:JvmName("uExt")
|
||||||
public val uExt: qUE
|
public val uExt: qUE
|
||||||
|
|
||||||
public operator fun <RuntimeType> get(c: Column<RuntimeType, *, qUE>): RuntimeType
|
public operator fun <RuntimeType> get(c: Column<RuntimeType, qUE, *>): RuntimeType
|
||||||
|
|
||||||
public operator fun get(c: Column<Byte, *, qUE>): Byte = this.get<Byte>(c)
|
public operator fun get(c: Column<Byte, qUE, *>): Byte = this.get<Byte>(c)
|
||||||
public operator fun get(c: Column<UByte, *, qUE>): UByte = this.get<UByte>(c)
|
public operator fun get(c: Column<UByte, qUE, *>): UByte = this.get<UByte>(c)
|
||||||
public operator fun get(c: Column<Short, *, qUE>): Short = this.get<Short>(c)
|
public operator fun get(c: Column<Short, qUE, *>): Short = this.get<Short>(c)
|
||||||
public operator fun get(c: Column<UShort, *, qUE>): UShort = this.get<UShort>(c)
|
public operator fun get(c: Column<UShort, qUE, *>): UShort = this.get<UShort>(c)
|
||||||
public operator fun get(c: Column<Int, *, qUE>): Int = this.get<Int>(c)
|
public operator fun get(c: Column<Int, qUE, *>): Int = this.get<Int>(c)
|
||||||
public operator fun get(c: Column<UInt, *, qUE>): UInt = this.get<UInt>(c)
|
public operator fun get(c: Column<UInt, qUE, *>): UInt = this.get<UInt>(c)
|
||||||
public operator fun get(c: Column<Long, *, qUE>): Long = this.get<Long>(c)
|
public operator fun get(c: Column<Long, qUE, *>): Long = this.get<Long>(c)
|
||||||
public operator fun get(c: Column<ULong, *, qUE>): ULong = this.get<ULong>(c)
|
public operator fun get(c: Column<ULong, qUE, *>): ULong = this.get<ULong>(c)
|
||||||
public operator fun get(c: Column<Char, *, qUE>): Char = this.get<Char>(c)
|
public operator fun get(c: Column<Char, qUE, *>): Char = this.get<Char>(c)
|
||||||
public operator fun get(c: Column<Boolean, *, qUE>): Boolean = this.get<Boolean>(c)
|
public operator fun get(c: Column<Boolean, qUE, *>): Boolean = this.get<Boolean>(c)
|
||||||
|
|
||||||
@Suppress("ClassName")
|
@Suppress("ClassName")
|
||||||
@LowLevelApi
|
@LowLevelApi
|
||||||
|
@ -1,24 +1,24 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.runtime
|
package ru.landgrafhomyak.db.sql_skeleton_0.api.runtime
|
||||||
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.LowLevelApi
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.LowLevelApi
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.queries._Query
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.queries._Statement
|
||||||
|
|
||||||
public interface Transaction {
|
public interface Transaction {
|
||||||
@Suppress("FunctionName")
|
@Suppress("FunctionName")
|
||||||
@LowLevelApi
|
@LowLevelApi
|
||||||
public suspend fun <QueryUserExtension : Any> _executeQuery(compiledQuery: _Query.Void2Table<QueryUserExtension>): OutputRow._Iterator<QueryUserExtension, Unit>
|
public suspend fun <QueryUserExtension : Any> _executeQuery(compiledQuery: _Statement.Void2Table<QueryUserExtension>): OutputRow._Iterator<QueryUserExtension, Unit>
|
||||||
|
|
||||||
@Suppress("FunctionName")
|
@Suppress("FunctionName")
|
||||||
@LowLevelApi
|
@LowLevelApi
|
||||||
public suspend fun <QueryUserExtension : Any> _executeQuery(compiledQuery: _Query.Params2Table<QueryUserExtension>): InputRow._Scope<QueryUserExtension, OutputRow._Iterator<QueryUserExtension, Unit>>
|
public suspend fun <QueryUserExtension : Any> _executeQuery(compiledQuery: _Statement.Params2Table<QueryUserExtension>): InputRow._Scope<QueryUserExtension, OutputRow._Iterator<QueryUserExtension, Unit>>
|
||||||
|
|
||||||
@Suppress("FunctionName")
|
@Suppress("FunctionName")
|
||||||
@LowLevelApi
|
@LowLevelApi
|
||||||
public suspend fun <QueryUserExtension : Any> _executeQuery(compiledQuery: _Query.Table2Void<QueryUserExtension>): InputRow._Iterator<QueryUserExtension, Unit>
|
public suspend fun <QueryUserExtension : Any> _executeQuery(compiledQuery: _Statement.Table2Void<QueryUserExtension>): InputRow._Iterator<QueryUserExtension, Unit>
|
||||||
|
|
||||||
@Suppress("FunctionName")
|
@Suppress("FunctionName")
|
||||||
@LowLevelApi
|
@LowLevelApi
|
||||||
public suspend fun <QueryUserExtension : Any> _executeQuery(compiledQuery: _Query.Params2Void<QueryUserExtension>): InputRow._Scope<QueryUserExtension, Unit>
|
public suspend fun <QueryUserExtension : Any> _executeQuery(compiledQuery: _Statement.Params2Void<QueryUserExtension>): InputRow._Scope<QueryUserExtension, Unit>
|
||||||
|
|
||||||
public suspend fun rollback()
|
public suspend fun rollback()
|
||||||
|
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.table
|
|
||||||
|
|
||||||
import kotlin.jvm.JvmName
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.misc.RowExpression
|
|
||||||
|
|
||||||
public interface CheckConstraint<ttUE : Any> : RowExpression<ttUE, Boolean> {
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
@get:JvmName("getName")
|
|
||||||
public val name: String
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.table
|
|
||||||
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.misc.RowExpression
|
|
||||||
|
|
||||||
public interface ColumnDefaultValue<ttUE : Any, R> : RowExpression<ttUE, R> {
|
|
||||||
}
|
|
@ -1,24 +0,0 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.table
|
|
||||||
|
|
||||||
import kotlin.jvm.JvmName
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.misc.Column
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.misc.DatabaseType
|
|
||||||
|
|
||||||
public interface ForeignRowReference<ctUE : Any, ttUE : Any, RT, DT : DatabaseType<RT>> : Column<RT, DT, ctUE> {
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
@get:JvmName("fromTable")
|
|
||||||
public val fromTable: Table<ctUE, *>
|
|
||||||
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
@get:JvmName("toTable")
|
|
||||||
public val toTable: Table<ttUE, *>
|
|
||||||
|
|
||||||
|
|
||||||
public enum class OnDelete {
|
|
||||||
RESTRICT,
|
|
||||||
|
|
||||||
SET_NULL,
|
|
||||||
|
|
||||||
CASCADE
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.table
|
|
||||||
|
|
||||||
import kotlin.jvm.JvmName
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.misc.Column
|
|
||||||
|
|
||||||
public interface Index<OwnerTableUserExtension : Any> {
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
@get:JvmName("getName")
|
|
||||||
public val name: String
|
|
||||||
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
@get:JvmName("getTable")
|
|
||||||
public val table: Table<OwnerTableUserExtension, *>
|
|
||||||
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
@get:JvmName("getColumns")
|
|
||||||
public val columns: List<Column<*, *, OwnerTableUserExtension>>
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.table
|
|
||||||
|
|
||||||
|
|
||||||
public interface RowId<@Suppress("unused") OwnerTableUserExtension: Any>
|
|
@ -1,27 +1,29 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.table
|
package ru.landgrafhomyak.db.sql_skeleton_0.api.table
|
||||||
|
|
||||||
import kotlin.jvm.JvmName
|
import kotlin.jvm.JvmName
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.misc._Selectable
|
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.module.Module
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.module.Module
|
||||||
|
|
||||||
public interface Table<out UE : Any, pUE : Any> : _Selectable<UE> {
|
public interface Table<UE : Any, mUE : Any, RUNTIME_KEY : Any> {
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
@Suppress("INAPPLICABLE_JVM_NAME")
|
||||||
@get:JvmName("uExt")
|
@get:JvmName("uExt")
|
||||||
public override val uExt: UE
|
public val uExt: UE
|
||||||
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
@Suppress("INAPPLICABLE_JVM_NAME")
|
||||||
@get:JvmName("getName")
|
@get:JvmName("getName")
|
||||||
public val name: String
|
public val name: String
|
||||||
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
@Suppress("INAPPLICABLE_JVM_NAME")
|
||||||
@get:JvmName("getModule")
|
@get:JvmName("getModule")
|
||||||
public val module: Module<*>
|
public val module: Module<*>
|
||||||
|
|
||||||
public enum class TemporaryType {
|
public enum class LifeTime {
|
||||||
|
DATABASE_SCOPE,
|
||||||
TRANSACTION_SCOPE,
|
TRANSACTION_SCOPE,
|
||||||
CONNECTION_SCOPE,
|
CONNECTION_SCOPE,
|
||||||
MODULE_UPGRADE_SCOPE
|
MODULE_UPGRADE_SCOPE
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
@Suppress("INAPPLICABLE_JVM_NAME")
|
||||||
@get:JvmName("getTemporaryType")
|
@get:JvmName("getLifeTime")
|
||||||
public val temporaryType: TemporaryType?
|
public val lifeTime: LifeTime
|
||||||
}
|
}
|
@ -1,56 +1,23 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.table
|
package ru.landgrafhomyak.db.sql_skeleton_0.api.table
|
||||||
|
|
||||||
import kotlin.jvm.JvmName
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.LowLevelApi
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.misc.Column
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.misc.Column
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.misc.DatabaseType
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.raw.DialectResolver
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.misc.RowExpression
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.runtime.InputRow
|
||||||
|
|
||||||
|
|
||||||
public interface TableConstructor<tUE : Any> {
|
public interface TableConstructor<tUE : Any, RUNTIME_KEY: Any> {
|
||||||
public fun createTable(context: Scope<tUE>): tUE
|
public fun createTable(context: Scope<tUE, RUNTIME_KEY>): tUE
|
||||||
|
|
||||||
|
public interface Scope<tUE : Any, RUNTIME_KEY: Any> {
|
||||||
|
public fun <RT> column(name: String, type: DialectResolver.Type<RT>, manualCreate: Boolean = false): Column<RT, tUE, RUNTIME_KEY>
|
||||||
|
public fun <RT, ttUE : Any> columnWithBoundType(name: String, foreign: Column<RT, ttUE, RUNTIME_KEY>): Column<RT, tUE, RUNTIME_KEY>
|
||||||
|
|
||||||
public interface Scope<tUE : Any> {
|
public fun tableScopedObject(name: String): TableScopedObject<tUE, RUNTIME_KEY>
|
||||||
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
public fun addAlterStatement(stmt: DialectResolver.Statement_Void2Void<*>)
|
||||||
@get:JvmName("types")
|
|
||||||
public val types: DatabaseType.Provider
|
|
||||||
|
|
||||||
public fun <RT, DT : DatabaseType<RT>> column(name: String, type: DT): Column<RT, DT, tUE>
|
@LowLevelApi
|
||||||
|
public fun <sUE : Any> addAlterStatement(stmt: DialectResolver.Statement_Params2Void<sUE>): InputRow._Scope<sUE, Unit>
|
||||||
public fun index(name: String, vararg columns: Column<*, *, tUE>): Index<tUE>
|
|
||||||
|
|
||||||
public fun uniqueIndex(name: String, distinctNulls: Boolean, vararg columns: Column<*, *, tUE>): UniqueIndex<tUE>
|
|
||||||
public fun checkConstraint(name: String, constructor: RowExpression.Constructor<tUE, *, Boolean>, recheckExistingRows: Boolean = false): CheckConstraint<tUE>
|
|
||||||
public fun <RT : Any, DT : DatabaseType<RT>> defaultValue(c: Column<RT, DT, tUE>, value: RT): ColumnDefaultValue<tUE, RT>
|
|
||||||
public fun <RT : Any, DT : DatabaseType<RT>> defaultValue(c: Column<RT, DT, tUE>, creator: RowExpression.Constructor<tUE, *, RT>): ColumnDefaultValue<tUE, RT>
|
|
||||||
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
@get:JvmName("rowIdColumn")
|
|
||||||
public val rowIdColumn: Column<RowId<tUE>, DatabaseType.ROW_ID<tUE>, tUE>
|
|
||||||
|
|
||||||
public fun selfRowReference(
|
|
||||||
columnName: String,
|
|
||||||
onDelete: ForeignRowReference.OnDelete,
|
|
||||||
): ForeignRowReference<tUE, tUE, RowId<tUE>, DatabaseType.ROW_ID<tUE>>
|
|
||||||
|
|
||||||
public fun <RT, DT : DatabaseType<RT>> selfRowReference(
|
|
||||||
columnName: String,
|
|
||||||
type: DT,
|
|
||||||
onDelete: ForeignRowReference.OnDelete,
|
|
||||||
): ForeignRowReference<tUE, tUE, RT, DT>
|
|
||||||
|
|
||||||
public fun <ttUE : Any> foreignRowReference(
|
|
||||||
columnName: String,
|
|
||||||
toTable: Table<ttUE, *>,
|
|
||||||
onDelete: ForeignRowReference.OnDelete,
|
|
||||||
): ForeignRowReference<tUE, ttUE, RowId<ttUE>, DatabaseType.ROW_ID<ttUE>>
|
|
||||||
|
|
||||||
public fun <ttUE : Any, RT, DT : DatabaseType<RT>> foreignRowReference(
|
|
||||||
columnName: String,
|
|
||||||
type: DT,
|
|
||||||
toTable: Table<ttUE, *>,
|
|
||||||
onDelete: ForeignRowReference.OnDelete,
|
|
||||||
): ForeignRowReference<tUE, ttUE, RT, DT>
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -0,0 +1,5 @@
|
|||||||
|
package ru.landgrafhomyak.db.sql_skeleton_0.api.table
|
||||||
|
|
||||||
|
public interface TableScopedObject<tUE : Any, RUNTIME_KEY : Any> {
|
||||||
|
public val table: Table<tUE, RUNTIME_KEY>
|
||||||
|
}
|
@ -1,71 +1,35 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.table
|
package ru.landgrafhomyak.db.sql_skeleton_0.api.table
|
||||||
|
|
||||||
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.LowLevelApi
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.misc.Column
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.misc.Column
|
||||||
import ru.landgrafhomyak.db.sql_skeleton_0.api.misc.DatabaseType
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.raw.DialectResolver
|
||||||
|
import ru.landgrafhomyak.db.sql_skeleton_0.api.runtime.InputRow
|
||||||
|
|
||||||
|
|
||||||
public interface TableUpgrade<tnUE : Any, toUE : Any> {
|
public interface TableUpgrade<tnUE : Any, toUE : Any, RUNTIME_KEY : Any> {
|
||||||
public fun upgradeTable(context: Scope<tnUE, toUE>): tnUE
|
public fun upgradeTable(oldTable: toUE, context: Scope<tnUE, toUE, RUNTIME_KEY>): tnUE
|
||||||
|
|
||||||
public interface Scope<tnUE : Any, toUE : Any> : TableConstructor.Scope<tnUE> {
|
public interface Scope<tnUE : Any, toUE : Any, RUNTIME_KEY : Any> : TableConstructor.Scope<tnUE, RUNTIME_KEY> {
|
||||||
public fun <RT, DT : DatabaseType<RT>> keepColumn(c: Column<RT, DT, toUE>): Column<RT, DT, tnUE>
|
public fun <RT> keepColumn(c: Column<RT, toUE, RUNTIME_KEY>): Column<RT, tnUE, RUNTIME_KEY>
|
||||||
public fun <RT, DT : DatabaseType<RT>> keepColumnUntilUpgraded(c: Column<RT, DT, toUE>): Column<RT, DT, tnUE>
|
public fun <RT> renameColumn(c: Column<RT, toUE, RUNTIME_KEY>, newName: String): Column<RT, tnUE, RUNTIME_KEY>
|
||||||
public fun <RT, DT : DatabaseType<RT>> renameAndKeepColumn(c: Column<RT, DT, toUE>, newName: String): Column<RT, DT, tnUE>
|
public fun removeColumn(c: Column<*, toUE, RUNTIME_KEY>)
|
||||||
public fun deleteColumn(c: Column<*, *, toUE>)
|
public fun <RT> removeColumnAfterUpgrade(c: Column<RT, toUE, RUNTIME_KEY>): Column<RT, tnUE, RUNTIME_KEY>
|
||||||
|
|
||||||
public fun keepIndex(i: Index<toUE>): Index<tnUE>
|
public fun <RT> keepColumnWithBoundType(c: Column<RT, toUE, RUNTIME_KEY>): Column<RT, tnUE, RUNTIME_KEY>
|
||||||
public fun renameAndKeepIndex(i: Index<toUE>, newName: String): Index<tnUE>
|
public fun <RT> unbindAndKeepColumnWithBoundType(c: Column<RT, toUE, RUNTIME_KEY>): Column<RT, tnUE, RUNTIME_KEY>
|
||||||
public fun deleteIndex(i: Index<toUE>)
|
public fun <RT> renameColumnWithBoundType(c: Column<RT, toUE, RUNTIME_KEY>, newName: String): Column<RT, tnUE, RUNTIME_KEY>
|
||||||
|
public fun <RT> unbindAndRenameColumnWithBoundType(c: Column<RT, toUE, RUNTIME_KEY>, newName: String): Column<RT, tnUE, RUNTIME_KEY>
|
||||||
|
public fun removeColumnWithBoundType(c: Column<*, toUE, RUNTIME_KEY>)
|
||||||
|
public fun <RT> removeColumnWithBoundTypeAfterUpgrade(c: Column<RT, toUE, RUNTIME_KEY>): Column<RT, tnUE, RUNTIME_KEY>
|
||||||
|
|
||||||
public fun keepCheck(i: CheckConstraint<toUE>): CheckConstraint<tnUE>
|
public fun keepTableScopedObject(obj: TableScopedObject<toUE, RUNTIME_KEY>): TableScopedObject<tnUE, RUNTIME_KEY>
|
||||||
public fun renameAndKeepCheck(i: CheckConstraint<toUE>, newName: String): CheckConstraint<tnUE>
|
public fun renameTableScopedObject(obj: TableScopedObject<toUE, RUNTIME_KEY>, newName: String): TableScopedObject<tnUE, RUNTIME_KEY>
|
||||||
public fun deleteCheck(i: CheckConstraint<toUE>)
|
public fun removeTableScopedObject(obj: TableScopedObject<toUE, RUNTIME_KEY>): TableScopedObject<tnUE, RUNTIME_KEY>
|
||||||
|
|
||||||
public fun keepUniqueIndex(i: UniqueIndex<toUE>): UniqueIndex<tnUE>
|
|
||||||
public fun renameAndKeepUniqueIndex(i: UniqueIndex<toUE>, newName: String): UniqueIndex<tnUE>
|
|
||||||
public fun deleteUniqueIndex(i: UniqueIndex<toUE>)
|
|
||||||
|
|
||||||
public fun <RT, DT : DatabaseType<RT>> keepDefaultValue(c: Column<RT, DT, tnUE>, d: ColumnDefaultValue<toUE, RT>): ColumnDefaultValue<tnUE, RT>
|
public fun addAlterStatementAfterUpgrade(stmt: DialectResolver.Statement_Void2Void<*>)
|
||||||
public fun <RT, DT : DatabaseType<RT>> changeDefaultValue(c: Column<RT, DT, tnUE>, d: ColumnDefaultValue<toUE, RT>): ColumnDefaultValue<tnUE, RT>
|
|
||||||
public fun <RT, DT : DatabaseType<RT>> changeDefaultValue(c: Column<RT, DT, tnUE>, d: RT): ColumnDefaultValue<tnUE, RT>
|
|
||||||
public fun deleteDefaultValue(i: ColumnDefaultValue<toUE, *>)
|
|
||||||
|
|
||||||
public fun <ttUE : Any, RT, DT : DatabaseType<RT>> keepForeignRowReference(
|
@LowLevelApi
|
||||||
frr: ForeignRowReference<toUE, ttUE, RT, DT>,
|
public fun <sUE : Any> addAlterStatementAfterUpgrade(stmt: DialectResolver.Statement_Params2Void<sUE>): InputRow._Scope<sUE, Unit>
|
||||||
onDelete: ForeignRowReference.OnDelete? = null
|
|
||||||
): ForeignRowReference<toUE, ttUE, RT, DT>
|
|
||||||
|
|
||||||
public fun <ttoUE : Any, oRT, oDT : DatabaseType<oRT>, ttnUE : Any, nRT, nDT : DatabaseType<nRT>> keepForeignRowReferenceToUpdatedTable(
|
|
||||||
frr: ForeignRowReference<toUE, ttoUE, oRT, oDT>,
|
|
||||||
updatedType: nDT,
|
|
||||||
updatedTable: Table<ttnUE, ttoUE>,
|
|
||||||
onDelete: ForeignRowReference.OnDelete? = null
|
|
||||||
): ForeignRowReference<tnUE, ttnUE, nRT, nDT>
|
|
||||||
|
|
||||||
public fun <ttUE : Any, RT, DT : DatabaseType<RT>> renameAndKeepForeignRowReference(
|
|
||||||
frr: ForeignRowReference<toUE, ttUE, RT, DT>,
|
|
||||||
onDelete: ForeignRowReference.OnDelete? = null
|
|
||||||
): ForeignRowReference<tnUE, ttUE, RT, DT>
|
|
||||||
|
|
||||||
public fun <ttoUE : Any, oRT, oDT : DatabaseType<oRT>, ttnUE : Any, nRT, nDT : DatabaseType<nRT>> renameAndKeepForeignRowReferenceToUpdatedTable(
|
|
||||||
frr: ForeignRowReference<toUE, ttoUE, oRT, oDT>,
|
|
||||||
updatedType: nDT,
|
|
||||||
updatedTable: Table<ttnUE, ttoUE>,
|
|
||||||
onDelete: ForeignRowReference.OnDelete? = null
|
|
||||||
): ForeignRowReference<tnUE, ttnUE, nRT, nDT>
|
|
||||||
|
|
||||||
public fun deleteForeignRowReference(frr: ForeignRowReference<toUE, *, *, *>)
|
|
||||||
|
|
||||||
public fun <ttUE : Any, RT, DT : DatabaseType<RT>> keepForeignRowReferenceUntilUpgraded(
|
|
||||||
frr: ForeignRowReference<toUE, ttUE, RT, DT>,
|
|
||||||
onDelete: ForeignRowReference.OnDelete? = null
|
|
||||||
): ForeignRowReference<tnUE, ttUE, RT, DT>
|
|
||||||
|
|
||||||
public fun <ttoUE : Any, oRT, oDT : DatabaseType<oRT>, ttnUE : Any, nRT, nDT : DatabaseType<nRT>> keepForeignRowReferenceToUpdatedTableUntilUpgraded(
|
|
||||||
frr: ForeignRowReference<toUE, ttoUE, oRT, oDT>,
|
|
||||||
updatedType: nDT,
|
|
||||||
updatedTable: Table<ttnUE, ttoUE>,
|
|
||||||
onDelete: ForeignRowReference.OnDelete? = null
|
|
||||||
): ForeignRowReference<tnUE, ttnUE, nRT, nDT>
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,9 +0,0 @@
|
|||||||
package ru.landgrafhomyak.db.sql_skeleton_0.api.table
|
|
||||||
|
|
||||||
import kotlin.jvm.JvmName
|
|
||||||
|
|
||||||
public interface UniqueIndex<OwnerTableUserExtension : Any> : Index<OwnerTableUserExtension> {
|
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
@get:JvmName("areNullsDistinct")
|
|
||||||
public val areNullsDistinct: Boolean
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user