From 34b52e548e56690532dd64ed68157f7dc79350b4 Mon Sep 17 00:00:00 2001 From: Andrew Golovashevich Date: Wed, 26 Feb 2025 15:40:08 +0300 Subject: [PATCH] Nullable row references --- .../construction/row_reference.kt | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/user_commons/construction/row_reference.kt diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/user_commons/construction/row_reference.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/user_commons/construction/row_reference.kt new file mode 100644 index 0000000..1b990f0 --- /dev/null +++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/user_commons/construction/row_reference.kt @@ -0,0 +1,25 @@ +@file:JvmName("_RowReferenceKt") + +package ru.landgrafhomyak.db.serdha0.user_commons.construction + +import kotlin.jvm.JvmName +import ru.landgrafhomyak.db.serdha0.api.misc.DatabaseType +import ru.landgrafhomyak.db.serdha0.api.table.ForeignRowReference +import ru.landgrafhomyak.db.serdha0.api.table.RowId +import ru.landgrafhomyak.db.serdha0.api.table.Table +import ru.landgrafhomyak.db.serdha0.api.table.TableConstructor + +public fun TableConstructor.Scope.nullableSelfRowReference( + columnName: String, + onDelete: ForeignRowReference.OnDelete, +): ForeignRowReference?, DatabaseType.Nullable, DatabaseType.ROW_ID>> = + this.selfRowReference(columnName, this.types.nullableOf(this.rowIdColumn.type), onDelete) + + +public fun TableConstructor.Scope.nullableForeignRowReference( + columnName: String, + toTable: Table, + onDelete: ForeignRowReference.OnDelete, +): ForeignRowReference?, DatabaseType.Nullable, DatabaseType.ROW_ID>> = + this.foreignRowReference(columnName, this.types.nullableOf(this.types.ROW_ID(toTable)), toTable, onDelete) +