From 71ab027f19c5f65f4df6e2479c06e787371e93db Mon Sep 17 00:00:00 2001 From: Artem Danilov Date: Thu, 27 Mar 2025 10:44:41 +0300 Subject: [PATCH 1/3] not create triggers when sql param is null --- lib/DbLangPg.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/DbLangPg.js b/lib/DbLangPg.js index 0d29e2f..8217516 100644 --- a/lib/DbLangPg.js +++ b/lib/DbLangPg.js @@ -784,11 +784,14 @@ class DbLangPg extends DbLang { for (let i = 0; i < length; i ++) { - const {options, phase, action, sql} = triggers [i], glob = this.quoteName (name + '_trg_' + i.toString ().padStart (max, '0')) + const {options, phase, action, sql} = triggers [i], glob = this.quoteName (name + '_trg_' + i.toString ().padStart (max, '0')); + + if (sql !== null) { - yield `CREATE FUNCTION ${prefix}${glob} () RETURNS trigger AS ${QUOT}${sql}${QUOT} LANGUAGE plpgsql;` + yield `CREATE FUNCTION ${prefix}${glob} () RETURNS trigger AS ${QUOT}${sql}${QUOT} LANGUAGE plpgsql;` - yield `CREATE ${options} TRIGGER ${glob} ${phase} ON ${qName} ${action} EXECUTE PROCEDURE ${prefix}${glob} ();` + yield `CREATE ${options} TRIGGER ${glob} ${phase} ON ${qName} ${action} EXECUTE PROCEDURE ${prefix}${glob} ();` + } } From b9d6f2671b1f7021875538c7de4381a6c6f70c87 Mon Sep 17 00:00:00 2001 From: Artem Danilov Date: Thu, 27 Mar 2025 11:39:52 +0300 Subject: [PATCH 2/3] add test for trigger who need drop --- __tests__/data/root1/tb_1.js | 9 +++++++++ package-lock.json | 14 +++++++------- package.json | 2 +- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/__tests__/data/root1/tb_1.js b/__tests__/data/root1/tb_1.js index f949073..0ef7189 100644 --- a/__tests__/data/root1/tb_1.js +++ b/__tests__/data/root1/tb_1.js @@ -58,6 +58,15 @@ module.exports = { }, + { + + phase : 'AFTER INSERT OR UPDATE', + + action : 'FOR EACH ROW /*WHEN (TRUE)*/', + + sql : null, + + }, ], } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 619fa73..ec192c0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,7 @@ "string-normalize-space": "^1.0.1" }, "peerDependencies": { - "doix-db": "^1.0.66", + "doix-db": "^1.0.69", "protocol-agnostic-router": "^1.0.0" } }, @@ -1690,9 +1690,9 @@ } }, "node_modules/doix-db": { - "version": "1.0.66", - "resolved": "https://registry.npmjs.org/doix-db/-/doix-db-1.0.66.tgz", - "integrity": "sha512-vnIJJ/DACzFcBu5YFX6hF8+uU5B0RXNlDKQ4wDcfermc5AO81R1XuRTHeaRUjcu1WO3J9tBTlig4/ECgVVk2GA==", + "version": "1.0.69", + "resolved": "https://registry.npmjs.org/doix-db/-/doix-db-1.0.69.tgz", + "integrity": "sha512-5OBjB31fZtJy6+dPGQ7AOiM1KMMVrW+4CZ3//TiWBycpEs/RuqxBe7D8RvJSishQ1K95H19NiDf93aYAlC9y8A==", "peer": true, "dependencies": { "string-escape-map": "^1.0.0" @@ -5360,9 +5360,9 @@ } }, "doix-db": { - "version": "1.0.66", - "resolved": "https://registry.npmjs.org/doix-db/-/doix-db-1.0.66.tgz", - "integrity": "sha512-vnIJJ/DACzFcBu5YFX6hF8+uU5B0RXNlDKQ4wDcfermc5AO81R1XuRTHeaRUjcu1WO3J9tBTlig4/ECgVVk2GA==", + "version": "1.0.69", + "resolved": "https://registry.npmjs.org/doix-db/-/doix-db-1.0.69.tgz", + "integrity": "sha512-5OBjB31fZtJy6+dPGQ7AOiM1KMMVrW+4CZ3//TiWBycpEs/RuqxBe7D8RvJSishQ1K95H19NiDf93aYAlC9y8A==", "peer": true, "requires": { "string-escape-map": "^1.0.0" diff --git a/package.json b/package.json index 09cd857..65652b2 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ }, "homepage": "https://github.com/do-/node-doix-db-postgresql#readme", "peerDependencies": { - "doix-db": "^1.0.66", + "doix-db": "^1.0.69", "protocol-agnostic-router": "^1.0.0" }, "dependencies": { From dc5c91e106892c3fa6640cbbc2db25e78c92b3a8 Mon Sep 17 00:00:00 2001 From: Artem Danilov Date: Thu, 27 Mar 2025 11:41:05 +0300 Subject: [PATCH 3/3] ver++ --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index ec192c0..42f51fa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "doix-db-postgresql", - "version": "1.0.71", + "version": "1.0.72", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "doix-db-postgresql", - "version": "1.0.71", + "version": "1.0.72", "license": "MIT", "dependencies": { "pg": "^8.13.3", diff --git a/package.json b/package.json index 65652b2..7abc2ae 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "doix-db-postgresql", - "version": "1.0.71", + "version": "1.0.72", "description": "PostgreSQL support for doix", "main": "index.js", "files": [