From 759fb2df1e12ede636294b9bf354cccaf50ff815 Mon Sep 17 00:00:00 2001 From: chulanovskyi Date: Tue, 10 Feb 2026 16:03:19 +0200 Subject: [PATCH 1/2] feat: lookup views by full path --- shared/helpers/instanceHelper.js | 2 +- shared/helpers/queryHelper.js | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/shared/helpers/instanceHelper.js b/shared/helpers/instanceHelper.js index 65cf34c..cb36248 100644 --- a/shared/helpers/instanceHelper.js +++ b/shared/helpers/instanceHelper.js @@ -91,7 +91,7 @@ const getTableDdl = async ({ connection, schemaName, tableName, objectType, logg await connection.execute({ query: clearQuery, callable: true, inparam: opToken }); - return ddlResult.map(row => row.SQL_STMT + ';').join('\n'); + return ddlResult.map(row => queryHelper.ensureTerminator({ query: row.SQL_STMT })).join('\n'); } catch (error) { logger.error(error); diff --git a/shared/helpers/queryHelper.js b/shared/helpers/queryHelper.js index b7de0a3..2fb3e17 100644 --- a/shared/helpers/queryHelper.js +++ b/shared/helpers/queryHelper.js @@ -6,6 +6,8 @@ const { OBJECT_TYPE } = require('../../constants/constants'); */ const cleanUpQuery = ({ query = '' }) => query.replaceAll(/\s+/g, ' '); +const ensureTerminator = ({ query = '' }) => (query.trimEnd().endsWith(';') ? query : `${query};`); + /** * @param {{ query: string, schemaNameKeyword: string }} params * @returns {string} @@ -83,8 +85,8 @@ const getGenerateTableDdlQuery = ({ schemaName, tableName, objectType }) => { const getSelectTableDdlQuery = ({ opToken, schemaName, objectName, objectType }) => { const predicate = objectType === OBJECT_TYPE.view - ? `SQL_STMT LIKE 'CREATE%VIEW ${objectName}%' - OR SQL_STMT LIKE 'COMMENT ON TABLE ${objectName}%'` + ? `SQL_STMT LIKE 'CREATE%VIEW %"${schemaName}"."${objectName}"%' + OR SQL_STMT LIKE 'COMMENT ON TABLE %"${schemaName}"."${objectName}"%'` : `SQL_STMT LIKE '%"${schemaName}"."${objectName}"%'`; const query = ` @@ -114,6 +116,7 @@ const queryHelper = { getGenerateTableDdlQuery, getSelectTableDdlQuery, getClearTableDdlQuery, + ensureTerminator, }; module.exports = { From f7ce8de47af234e0284251b59238c132c500cb1d Mon Sep 17 00:00:00 2001 From: chulanovskyi Date: Tue, 10 Feb 2026 16:59:15 +0200 Subject: [PATCH 2/2] feat: handle forced fixed schema name length --- shared/helpers/queryHelper.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/shared/helpers/queryHelper.js b/shared/helpers/queryHelper.js index 2fb3e17..dd4f486 100644 --- a/shared/helpers/queryHelper.js +++ b/shared/helpers/queryHelper.js @@ -85,9 +85,9 @@ const getGenerateTableDdlQuery = ({ schemaName, tableName, objectType }) => { const getSelectTableDdlQuery = ({ opToken, schemaName, objectName, objectType }) => { const predicate = objectType === OBJECT_TYPE.view - ? `SQL_STMT LIKE 'CREATE%VIEW %"${schemaName}"."${objectName}"%' - OR SQL_STMT LIKE 'COMMENT ON TABLE %"${schemaName}"."${objectName}"%'` - : `SQL_STMT LIKE '%"${schemaName}"."${objectName}"%'`; + ? `SQL_STMT LIKE 'CREATE%VIEW %"${schemaName}%"."${objectName}"%' + OR SQL_STMT LIKE 'COMMENT ON TABLE %"${schemaName}%"."${objectName}"%'` + : `SQL_STMT LIKE '%"${schemaName}%"."${objectName}"%'`; const query = ` SELECT SQL_STMT