Temp tables and enums support throw maps with rowid keys

This commit is contained in:
Andrew Golovashevich 2024-12-30 17:09:10 +03:00
parent 85a3d90aa0
commit 5efb3b1c0e
2 changed files with 11 additions and 0 deletions

View File

@ -15,6 +15,8 @@ public interface ModuleCreator {
}
public fun <TableUserExtension : Any> createTable(namespace: Namespace, name: String, initializer: CreateTable<TableUserExtension>): Table<TableUserExtension, Nothing>
public fun <TableUserExtension : Any> createTempSessionWideTable(initializer: CreateTable<TableUserExtension>): Table<TableUserExtension, Nothing>
public fun <TableUserExtension : Any> createTempTransactionWideTable(initializer: CreateTable<TableUserExtension>): Table<TableUserExtension, Nothing>
public interface UpdateTable<TableNewUserExtension : Any, TableOldUserExtension : Any> {
public fun updateTable(oldTable: Table<TableOldUserExtension, *>, updater: TableUpdater<TableNewUserExtension, TableOldUserExtension>): TableNewUserExtension

View File

@ -2,6 +2,8 @@ package ru.landgrafhomyak.serdha.api.v0.runtime
import ru.landgrafhomyak.serdha.api.v0.LowLevelApi
import ru.landgrafhomyak.serdha.api.v0.ddl.Module
import ru.landgrafhomyak.serdha.api.v0.ddl.RowId
import ru.landgrafhomyak.serdha.api.v0.ddl.Table
import ru.landgrafhomyak.serdha.api.v0.dml.Delete
import ru.landgrafhomyak.serdha.api.v0.dml.Insert
import ru.landgrafhomyak.serdha.api.v0.dml.InsertCreator
@ -42,4 +44,11 @@ public interface SynchronizedDatabase<DatabaseUserExtension : Any> : Module<Data
@Suppress("FunctionName")
@LowLevelApi
public suspend fun _close()
public fun <TableUserException : Any, V> mapOfRowIds(
table: Table<TableUserException, *>,
builder: (MutableMap<Row<TableUserException>, V>) -> Unit
): Map<RowId<TableUserException>, V>
public fun <TableUserException : Any, V> mutableMapOfRowIds(table: Table<TableUserException, *>): MutableMap<RowId<TableUserException>, V>
}