From 600c3e05c96d55f93d1af9cfd05d53cafcc5ae80 Mon Sep 17 00:00:00 2001 From: xevi Date: Tue, 4 Jul 2023 17:05:28 +0200 Subject: [PATCH 1/2] fix: run spanner relational queries sequential to prevent seqno errors --- package.json | 2 +- src/persistence/SubjectExecutor.ts | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index a7fa46db590..7826c9f120f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@streamyard/typeorm", "private": true, - "version": "0.3.16-1", + "version": "0.3.16-2", "description": "Data-Mapper ORM for TypeScript, ES7, ES6, ES5. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, MongoDB, Spanner databases.", "license": "MIT", "readmeFilename": "README.md", diff --git a/src/persistence/SubjectExecutor.ts b/src/persistence/SubjectExecutor.ts index e80333a9fea..1b910cd6c15 100644 --- a/src/persistence/SubjectExecutor.ts +++ b/src/persistence/SubjectExecutor.ts @@ -524,6 +524,9 @@ export class SubjectExecutor { * Updates all given subjects in the database. */ protected async executeUpdateOperations(): Promise { + const isSpanner = + this.queryRunner.connection.driver.options.type === "spanner" + const updateSubject = async (subject: Subject) => { if (!subject.identifier) throw new SubjectWithoutIdentifierError(subject) @@ -645,7 +648,7 @@ export class SubjectExecutor { const remainingSubjects: Subject[] = [] for (const subject of this.updateSubjects) { - if (subject.metadata.treeType === "nested-set") { + if (subject.metadata.treeType === "nested-set" || isSpanner) { nestedSetSubjects.push(subject) } else { remainingSubjects.push(subject) From d52a3e6af7f40b46449f69bd74d5bddbece22125 Mon Sep 17 00:00:00 2001 From: xevi Date: Tue, 4 Jul 2023 18:16:59 +0200 Subject: [PATCH 2/2] fix: update package-lock --- package-lock.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 484c635b773..b14943d1db0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@streamyard/typeorm", - "version": "0.3.16-1", + "version": "0.3.16-2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@streamyard/typeorm", - "version": "0.3.16-1", + "version": "0.3.16-2", "license": "MIT", "dependencies": { "@sqltools/formatter": "^1.2.5",