From 123fdbf6af5e3186251d48dd58ffa528ea2d4f07 Mon Sep 17 00:00:00 2001 From: chulanovskyi Date: Thu, 26 Feb 2026 15:24:56 +0200 Subject: [PATCH 1/2] feat: view annotations --- forward_engineering/ddlProvider/ddlProvider.js | 5 +++++ forward_engineering/ddlProvider/templates.js | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/forward_engineering/ddlProvider/ddlProvider.js b/forward_engineering/ddlProvider/ddlProvider.js index 54bf6b8..42ebae0 100644 --- a/forward_engineering/ddlProvider/ddlProvider.js +++ b/forward_engineering/ddlProvider/ddlProvider.js @@ -23,6 +23,7 @@ const { const { assignTemplates } = require('../utils/assignTemplates'); const { decorateType } = require('./ddlHelpers/columnDefinitionHelpers/decorateType'); const { getNotNullConstraints } = require('../alterScript/alterScriptHelpers/columnHelpers/nonNullConstraintHelper'); +const { getAnnotationsString } = require('../utils/getAnnotationsString'); /** * @param dbVersion {string} DB version in "21ai" format @@ -591,6 +592,7 @@ module.exports = (baseProvider, options, app) => { dbVersion: _.get(viewData, 'schemaData.dbVersion'), }, whereClause: detailsTab.whereClause, + viewAnnotations: detailsTab.viewAnnotations, }; }, @@ -654,6 +656,8 @@ module.exports = (baseProvider, options, app) => { const dbVersion = _.get(viewData, 'modelInfo.dbVersion', ''); const usingTryCatchWrapper = shouldUseTryCatchIfNotExistsWrapper(dbVersion); + const annotations = getAnnotationsString(prepareName)(viewData.viewAnnotations); + let createViewDdl = assignTemplates(templates.createView, { name: viewName, ifNotExists: !usingTryCatchWrapper && viewData.ifNotExist ? ' IF NOT EXISTS' : '', @@ -664,6 +668,7 @@ module.exports = (baseProvider, options, app) => { viewProperties: viewData.viewProperties ? ' \n' + tab(viewData.viewProperties) : '', sharing: viewData.sharing && !viewData.materialized ? ` SHARING=${viewData.sharing}` : '', selectStatement, + annotations: annotations ? `\n\t${annotations}` : '', }); if (usingTryCatchWrapper) { createViewDdl = wrapIfNotExists(createViewDdl, viewData.ifNotExist); diff --git a/forward_engineering/ddlProvider/templates.js b/forward_engineering/ddlProvider/templates.js index 82dce34..ddd0512 100644 --- a/forward_engineering/ddlProvider/templates.js +++ b/forward_engineering/ddlProvider/templates.js @@ -29,7 +29,7 @@ module.exports = { alterIndexRebuild: 'ALTER INDEX ${name} REBUILD ${options};', createView: - 'CREATE${orReplace}${force}${viewType}${materialized} VIEW${ifNotExists} ${name} ${sharing}${viewProperties}\n\tAS ${selectStatement}', + 'CREATE${orReplace}${force}${viewType}${materialized} VIEW${ifNotExists} ${name} ${sharing}${viewProperties}${annotations}\n\tAS ${selectStatement}', viewSelectStatement: 'SELECT ${keys}\n\tFROM ${tableName}', From a201b48c98a24d9f7250da1eeaa381cb8644b34b Mon Sep 17 00:00:00 2001 From: chulanovskyi Date: Thu, 26 Feb 2026 15:28:16 +0200 Subject: [PATCH 2/2] chore: duplicated import --- forward_engineering/ddlProvider/ddlProvider.js | 1 - 1 file changed, 1 deletion(-) diff --git a/forward_engineering/ddlProvider/ddlProvider.js b/forward_engineering/ddlProvider/ddlProvider.js index 56f9438..d4ae6e2 100644 --- a/forward_engineering/ddlProvider/ddlProvider.js +++ b/forward_engineering/ddlProvider/ddlProvider.js @@ -24,7 +24,6 @@ const { getAnnotationsString } = require('../utils/getAnnotationsString'); const { assignTemplates } = require('../utils/assignTemplates'); const { decorateType } = require('./ddlHelpers/columnDefinitionHelpers/decorateType'); const { getNotNullConstraints } = require('../alterScript/alterScriptHelpers/columnHelpers/nonNullConstraintHelper'); -const { getAnnotationsString } = require('../utils/getAnnotationsString'); /** * @param dbVersion {string} DB version in "21ai" format