Added support of not-raw statements to table and module constructors

This commit is contained in:
Andrew Golovashevich 2025-05-07 20:09:28 +03:00
parent c13175445f
commit 0f3f32d7f3
4 changed files with 42 additions and 14 deletions

View File

@ -2,12 +2,11 @@ package ru.landgrafhomyak.db.sql_skeleton_0.api.module
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.queries.RawStatement
import ru.landgrafhomyak.db.sql_skeleton_0.api.queries._Statement
import ru.landgrafhomyak.db.sql_skeleton_0.api.raw.DialectResolver
import ru.landgrafhomyak.db.sql_skeleton_0.api.table.Table
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.TableScopedObject
public interface CreateModuleScope<mUE : Any, RUNTIME_KEY : Any> {
@ -27,8 +26,12 @@ public interface CreateModuleScope<mUE : Any, RUNTIME_KEY : Any> {
public fun namespace(parent: Namespace<mUE, RUNTIME_KEY>, name: String): Namespace<mUE, RUNTIME_KEY>
public fun addStatement(stmt: DialectResolver.Statement_Void2Void<*>)
public fun addStatement(stmt: RawStatement.Void2Void.ImplementationsProvider<*>)
public fun addStatement(stmt: _Statement.Void2Void<*, RUNTIME_KEY>)
@LowLevelApi
public fun <sUE : Any> _addStatement(stmt: DialectResolver.Statement_Params2Void<sUE>): InputRow._Scope<sUE, Unit>
public fun <sUE : Any> _addStatement(stmt: RawStatement.Params2Void.ImplementationsProvider<sUE>): InputRow._Scope<sUE, Unit>
@LowLevelApi
public fun <sUE : Any> _addStatement(stmt: _Statement.Params2Void<sUE, RUNTIME_KEY>): InputRow._Scope<sUE, Unit>
}

View File

@ -1,5 +1,9 @@
package ru.landgrafhomyak.db.sql_skeleton_0.api.module
import ru.landgrafhomyak.db.sql_skeleton_0.api.LowLevelApi
import ru.landgrafhomyak.db.sql_skeleton_0.api.queries.RawStatement
import ru.landgrafhomyak.db.sql_skeleton_0.api.queries._Statement
import ru.landgrafhomyak.db.sql_skeleton_0.api.runtime.InputRow
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.TableUpgrade
@ -57,4 +61,14 @@ public interface UpgradeModuleScope<nmUE : Any, omUE : Any, RUNTIME_KEY : Any> :
public fun removeModule(oldModule: Module<*, RUNTIME_KEY>)
public fun <smUE : Any> removeModuleAfterUpgrade(oldModule: Module<smUE, RUNTIME_KEY>): Module<smUE, RUNTIME_KEY>
public fun addStatementAfterUpgrade(stmt: RawStatement.Void2Void.ImplementationsProvider<*>)
public fun addStatementAfterUpgrade(stmt: _Statement.Void2Void<*, RUNTIME_KEY>)
@LowLevelApi
public fun <sUE : Any> _addStatementAfterUpgrade(stmt: RawStatement.Params2Void.ImplementationsProvider<sUE>): InputRow._Scope<sUE, Unit>
@LowLevelApi
public fun <sUE : Any> _addStatementAfterUpgrade(stmt: _Statement.Params2Void<sUE, RUNTIME_KEY>): InputRow._Scope<sUE, Unit>
}

View File

@ -2,7 +2,9 @@ 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.raw.DialectResolver
import ru.landgrafhomyak.db.sql_skeleton_0.api.misc.DatabaseType
import ru.landgrafhomyak.db.sql_skeleton_0.api.queries.RawStatement
import ru.landgrafhomyak.db.sql_skeleton_0.api.queries._Statement
import ru.landgrafhomyak.db.sql_skeleton_0.api.runtime.InputRow
@ -10,14 +12,18 @@ public interface TableConstructor<tUE : Any, RUNTIME_KEY: Any> {
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> column(name: String, type: DatabaseType.ImplementationsProvider<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 fun tableScopedObject(name: String): TableScopedObject<tUE, RUNTIME_KEY>
public fun addAlterStatement(stmt: DialectResolver.Statement_Void2Void<*>)
public fun addAlterStatement(stmt: _Statement.Void2Void<*, RUNTIME_KEY>)
public fun addAlterStatement(stmt: RawStatement.Void2Void.ImplementationsProvider<*>)
@LowLevelApi
public fun <sUE : Any> addAlterStatement(stmt: DialectResolver.Statement_Params2Void<sUE>): InputRow._Scope<sUE, Unit>
public fun <sUE : Any> _addAlterStatement(stmt: _Statement.Void2Void<sUE, RUNTIME_KEY>): InputRow._Scope<sUE, Unit>
@LowLevelApi
public fun <sUE : Any> _addAlterStatement(stmt: RawStatement.Params2Void.ImplementationsProvider<sUE>): InputRow._Scope<sUE, Unit>
}
}

View File

@ -2,7 +2,8 @@ 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.raw.DialectResolver
import ru.landgrafhomyak.db.sql_skeleton_0.api.queries.RawStatement
import ru.landgrafhomyak.db.sql_skeleton_0.api.queries._Statement
import ru.landgrafhomyak.db.sql_skeleton_0.api.runtime.InputRow
@ -27,9 +28,13 @@ public interface TableUpgrade<tnUE : Any, toUE : Any, RUNTIME_KEY : Any> {
public fun removeTableScopedObject(obj: TableScopedObject<toUE, RUNTIME_KEY>): TableScopedObject<tnUE, RUNTIME_KEY>
public fun addAlterStatementAfterUpgrade(stmt: DialectResolver.Statement_Void2Void<*>)
public fun addAlterStatementAfterUpgrade(stmt: _Statement.Void2Void<*, RUNTIME_KEY>)
public fun addAlterStatementAfterUpgrade(stmt: RawStatement.Void2Void.ImplementationsProvider<*>)
@LowLevelApi
public fun <sUE : Any> _addAlterStatementAfterUpgrade(stmt: DialectResolver.Statement_Params2Void<sUE>): InputRow._Scope<sUE, Unit>
public fun <sUE : Any> _addAlterStatementAfterUpgrade(stmt: _Statement.Params2Void<sUE, RUNTIME_KEY>): InputRow._Scope<sUE, Unit>
@LowLevelApi
public fun <sUE : Any> _addAlterStatementAfterUpgrade(stmt: RawStatement.Params2Void.ImplementationsProvider<sUE>): InputRow._Scope<sUE, Unit>
}
}