From 2d8f25ee25cab638bf6f5307a4153ad9f48cdada Mon Sep 17 00:00:00 2001 From: fogelito Date: Mon, 21 Apr 2025 18:12:55 +0300 Subject: [PATCH 1/3] Delete by InternalId --- src/Database/Adapter/MariaDB.php | 7 ++++++- src/Database/Adapter/Postgres.php | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/Database/Adapter/MariaDB.php b/src/Database/Adapter/MariaDB.php index 72cec157f..75e108e00 100644 --- a/src/Database/Adapter/MariaDB.php +++ b/src/Database/Adapter/MariaDB.php @@ -1294,10 +1294,12 @@ public function updateDocument(string $collection, string $id, Document $documen $bindIndex++; } + $sqlInternalId = empty($document->getInternalId()) ? '' : ' and _id=:_internalId'; + $sql = " UPDATE {$this->getSQLTable($name)} SET {$columns} _uid = :_newUid - WHERE _uid = :_existingUid + WHERE _uid = :_existingUid {$sqlInternalId} {$this->getTenantQuery($collection)} "; @@ -1307,6 +1309,9 @@ public function updateDocument(string $collection, string $id, Document $documen $stmt->bindValue(':_existingUid', $id); $stmt->bindValue(':_newUid', $document->getId()); + if (!empty($document->getInternalId())) { + $stmt->bindValue(':_internalId', $document->getInternalId()); + } if ($this->sharedTables) { $stmt->bindValue(':_tenant', $this->tenant); diff --git a/src/Database/Adapter/Postgres.php b/src/Database/Adapter/Postgres.php index 4029f76c8..d5e6a4a89 100644 --- a/src/Database/Adapter/Postgres.php +++ b/src/Database/Adapter/Postgres.php @@ -1334,10 +1334,12 @@ public function updateDocument(string $collection, string $id, Document $documen $bindIndex++; } + $sqlInternalId = empty($document->getInternalId()) ? '' : ' and _id=:_internalId'; + $sql = " UPDATE {$this->getSQLTable($name)} SET {$columns} _uid = :_newUid - WHERE _uid = :_existingUid + WHERE _uid = :_existingUid {$sqlInternalId} {$this->getTenantQuery($collection)} "; @@ -1347,6 +1349,9 @@ public function updateDocument(string $collection, string $id, Document $documen $stmt->bindValue(':_existingUid', $id); $stmt->bindValue(':_newUid', $document->getId()); + if (!empty($document->getInternalId())) { + $stmt->bindValue(':_internalId', $document->getInternalId()); + } if ($this->sharedTables) { $stmt->bindValue(':_tenant', $this->tenant); From 20a3f71cdd8c9cdd9183c247502f772f1664c8d6 Mon Sep 17 00:00:00 2001 From: fogelito Date: Mon, 21 Apr 2025 18:25:29 +0300 Subject: [PATCH 2/3] Update by internalId --- src/Database/Adapter/MariaDB.php | 9 ++------- src/Database/Adapter/Postgres.php | 10 +++------- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/src/Database/Adapter/MariaDB.php b/src/Database/Adapter/MariaDB.php index 75e108e00..bf594d8e7 100644 --- a/src/Database/Adapter/MariaDB.php +++ b/src/Database/Adapter/MariaDB.php @@ -1294,12 +1294,10 @@ public function updateDocument(string $collection, string $id, Document $documen $bindIndex++; } - $sqlInternalId = empty($document->getInternalId()) ? '' : ' and _id=:_internalId'; - $sql = " UPDATE {$this->getSQLTable($name)} SET {$columns} _uid = :_newUid - WHERE _uid = :_existingUid {$sqlInternalId} + WHERE _id=:_internalId {$this->getTenantQuery($collection)} "; @@ -1307,11 +1305,8 @@ public function updateDocument(string $collection, string $id, Document $documen $stmt = $this->getPDO()->prepare($sql); - $stmt->bindValue(':_existingUid', $id); + $stmt->bindValue(':_internalId', $document->getInternalId()); $stmt->bindValue(':_newUid', $document->getId()); - if (!empty($document->getInternalId())) { - $stmt->bindValue(':_internalId', $document->getInternalId()); - } if ($this->sharedTables) { $stmt->bindValue(':_tenant', $this->tenant); diff --git a/src/Database/Adapter/Postgres.php b/src/Database/Adapter/Postgres.php index d5e6a4a89..3ed5f5a02 100644 --- a/src/Database/Adapter/Postgres.php +++ b/src/Database/Adapter/Postgres.php @@ -1334,12 +1334,10 @@ public function updateDocument(string $collection, string $id, Document $documen $bindIndex++; } - $sqlInternalId = empty($document->getInternalId()) ? '' : ' and _id=:_internalId'; - $sql = " UPDATE {$this->getSQLTable($name)} SET {$columns} _uid = :_newUid - WHERE _uid = :_existingUid {$sqlInternalId} + WHERE _id=:_internalId {$this->getTenantQuery($collection)} "; @@ -1347,11 +1345,9 @@ public function updateDocument(string $collection, string $id, Document $documen $stmt = $this->getPDO()->prepare($sql); - $stmt->bindValue(':_existingUid', $id); + $stmt->bindValue(':_internalId', $document->getInternalId()); + $stmt->bindValue(':_newUid', $document->getId()); - if (!empty($document->getInternalId())) { - $stmt->bindValue(':_internalId', $document->getInternalId()); - } if ($this->sharedTables) { $stmt->bindValue(':_tenant', $this->tenant); From 120769d4ae57250e489280fcc8fbc3eccc5ac394 Mon Sep 17 00:00:00 2001 From: fogelito Date: Mon, 21 Apr 2025 18:26:14 +0300 Subject: [PATCH 3/3] Linefeed --- src/Database/Adapter/Postgres.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Database/Adapter/Postgres.php b/src/Database/Adapter/Postgres.php index 3ed5f5a02..3d571e240 100644 --- a/src/Database/Adapter/Postgres.php +++ b/src/Database/Adapter/Postgres.php @@ -1346,7 +1346,6 @@ public function updateDocument(string $collection, string $id, Document $documen $stmt = $this->getPDO()->prepare($sql); $stmt->bindValue(':_internalId', $document->getInternalId()); - $stmt->bindValue(':_newUid', $document->getId()); if ($this->sharedTables) {