From eb77386f31e4f9f107d0fc12a5e0e8dba87b1926 Mon Sep 17 00:00:00 2001 From: Sylvie Paindeville Date: Thu, 29 Oct 2026 18:03:13 +0100 Subject: [PATCH 1/6] Fix template substitution for boolean default false. assignTemplates treated false as missing when filling placeholders, which broke SET DEFAULT false in separate FE statements. Co-authored-by: Cursor --- forward_engineering/utils/assignTemplates.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/forward_engineering/utils/assignTemplates.js b/forward_engineering/utils/assignTemplates.js index 4723175..408aa81 100644 --- a/forward_engineering/utils/assignTemplates.js +++ b/forward_engineering/utils/assignTemplates.js @@ -11,7 +11,11 @@ const assignTemplates = ({ template, templateData }) => { const templateName = parseTemplate(item); return result.replace(item, () => { - return templateData[templateName] || templateData[templateName] === 0 ? templateData[templateName] : ''; + const value = templateData[templateName]; + if (value === undefined || value === null) { + return ''; + } + return value; }); }, template); }; From 8238bf526b7f07ad8dd3d1039a65a1abbc8ddd37 Mon Sep 17 00:00:00 2001 From: Sylvie Paindeville Date: Thu, 29 Oct 2026 18:16:15 +0100 Subject: [PATCH 2/6] Fix inline CREATE defaults when boolean default is false. getColumnDefault skipped false because of a truthy check; separate ALTER was already fixed via assignTemplates. Co-authored-by: Cursor --- .../ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forward_engineering/ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js b/forward_engineering/ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js index 837d3d5..b48ac8f 100644 --- a/forward_engineering/ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js +++ b/forward_engineering/ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js @@ -49,7 +49,7 @@ const getColumnDefault = ({ default: defaultValue, identity, type }) => { return ` GENERATED ${identity.generated} AS IDENTITY (${identityOptions})`; } - if (defaultValue || defaultValue === 0) { + if (defaultValue === false || defaultValue === true || defaultValue || defaultValue === 0) { return ` WITH DEFAULT ${defaultValue}`; } return ''; From 3f3202c832f86f90adcf594baa8d103716b908be Mon Sep 17 00:00:00 2001 From: Sylvie Paindeville Date: Thu, 29 Oct 2026 18:20:18 +0100 Subject: [PATCH 3/6] Fix Sonar findings for boolean default handling in getColumnDefault. Document boolean in DefaultValue and use an explicit defined-value check instead of === true/false. Co-authored-by: Cursor --- .../ddlHelpers/columnDefinition/getColumnDefault.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/forward_engineering/ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js b/forward_engineering/ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js index b48ac8f..43f2a32 100644 --- a/forward_engineering/ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js +++ b/forward_engineering/ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js @@ -3,7 +3,7 @@ const { wrapInSingleQuotes } = require('../../../utils/general'); const { DATA_TYPES_WITH_IDENTITY, STRING_DATA_TYPES } = require('../../../../constants/types'); /** - * @typedef {string | number} DefaultValue + * @typedef {string | number | boolean} DefaultValue */ /** @@ -37,7 +37,7 @@ const getIdentityOptions = ({ start, increment, minValue, maxValue, cycle, cache }; /** - * @param {{ default?: DefaultValue, identity?: object }} + * @param {{ default?: DefaultValue, identity?: object, type: string }} * @returns {string} */ const getColumnDefault = ({ default: defaultValue, identity, type }) => { @@ -49,7 +49,9 @@ const getColumnDefault = ({ default: defaultValue, identity, type }) => { return ` GENERATED ${identity.generated} AS IDENTITY (${identityOptions})`; } - if (defaultValue === false || defaultValue === true || defaultValue || defaultValue === 0) { + const hasDefault = defaultValue !== undefined && defaultValue !== null && defaultValue !== ''; + + if (hasDefault) { return ` WITH DEFAULT ${defaultValue}`; } return ''; From c49d02e906dbaceab7814c975fea6f14ef1f7d55 Mon Sep 17 00:00:00 2001 From: Sylvie Paindeville Date: Thu, 29 Oct 2026 18:22:19 +0100 Subject: [PATCH 4/6] Fix Sonar false positive on empty-string default check. Use explicit boolean and zero checks instead of hasDefault chain. Co-authored-by: Cursor --- .../ddlHelpers/columnDefinition/getColumnDefault.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/forward_engineering/ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js b/forward_engineering/ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js index 43f2a32..72534e0 100644 --- a/forward_engineering/ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js +++ b/forward_engineering/ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js @@ -49,9 +49,7 @@ const getColumnDefault = ({ default: defaultValue, identity, type }) => { return ` GENERATED ${identity.generated} AS IDENTITY (${identityOptions})`; } - const hasDefault = defaultValue !== undefined && defaultValue !== null && defaultValue !== ''; - - if (hasDefault) { + if (defaultValue === false || defaultValue === true || defaultValue || defaultValue === 0) { return ` WITH DEFAULT ${defaultValue}`; } return ''; From 45fbfc7a9413c30cc14176f5d6d2150dd2d05bbc Mon Sep 17 00:00:00 2001 From: Sylvie Paindeville <146110625+Sylvie-P@users.noreply.github.com> Date: Fri, 30 Oct 2026 09:41:06 +0100 Subject: [PATCH 5/6] Update forward_engineering/ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js Co-authored-by: Taras Dubyk --- .../ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forward_engineering/ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js b/forward_engineering/ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js index 72534e0..bd4ce8c 100644 --- a/forward_engineering/ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js +++ b/forward_engineering/ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js @@ -49,7 +49,7 @@ const getColumnDefault = ({ default: defaultValue, identity, type }) => { return ` GENERATED ${identity.generated} AS IDENTITY (${identityOptions})`; } - if (defaultValue === false || defaultValue === true || defaultValue || defaultValue === 0) { + if (defaultValue !== undefined && defaultValue !== null) { return ` WITH DEFAULT ${defaultValue}`; } return ''; From 31ca9ff04aaa382fc0068d5c6d7124efcae1abbf Mon Sep 17 00:00:00 2001 From: Sylvie Paindeville Date: Fri, 30 Oct 2026 09:43:05 +0100 Subject: [PATCH 6/6] Use nullish check that satisfies Sonar for column defaults. Keep reviewer intent (treat only null/undefined as missing) via != null. Co-authored-by: Cursor --- .../ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forward_engineering/ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js b/forward_engineering/ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js index bd4ce8c..a8b7fd0 100644 --- a/forward_engineering/ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js +++ b/forward_engineering/ddlProvider/ddlHelpers/columnDefinition/getColumnDefault.js @@ -49,7 +49,7 @@ const getColumnDefault = ({ default: defaultValue, identity, type }) => { return ` GENERATED ${identity.generated} AS IDENTITY (${identityOptions})`; } - if (defaultValue !== undefined && defaultValue !== null) { + if (defaultValue != null) { return ` WITH DEFAULT ${defaultValue}`; } return '';