From 6a2482fbdf8695be0facb441595827b6e61002da Mon Sep 17 00:00:00 2001 From: Vitalii Bedletskyi Date: Tue, 28 Oct 2025 15:57:46 +0200 Subject: [PATCH] HCK-13213: fix issue with replacing query statement with env vars and add query to error log --- constants/constants.js | 3 ++ reverse_engineering/api.js | 5 ++- shared/Db2Client/build.sh | 2 +- shared/Db2Client/pom.xml | 36 +++++++++++------- shared/Db2Client/readme.md | 8 +--- .../Db2Client/src/main/java/org/db2/App.java | 3 +- shared/addons/Db2Client.jar | Bin 4299777 -> 4300990 bytes shared/helpers/queryHelper.js | 22 ++++++----- 8 files changed, 48 insertions(+), 31 deletions(-) diff --git a/constants/constants.js b/constants/constants.js index 44ab6ad..7a75406 100644 --- a/constants/constants.js +++ b/constants/constants.js @@ -13,8 +13,11 @@ const TABLE_TYPE = { const INLINE_COMMENT = '--'; +const PERSENT = '__PERCENT__'; + module.exports = { ERROR_MESSAGE, TABLE_TYPE, INLINE_COMMENT, + PERSENT, }; diff --git a/reverse_engineering/api.js b/reverse_engineering/api.js index 70c0f42..cfa704e 100644 --- a/reverse_engineering/api.js +++ b/reverse_engineering/api.js @@ -101,10 +101,13 @@ const getDbCollectionsNames = async (connectionInfo, appLogger, callback, app) = }); try { + const connection = await connectionHelper.connect({ connectionInfo, logger }); + const dbVersion = await instanceHelper.getDbVersion({ connection }); + logger.info('Db version: ' + dbVersion); + logger.info('Get table and schema names'); logger.info(connectionInfo); - const connection = await connectionHelper.connect({ connectionInfo, logger }); const tableNames = await instanceHelper.getDatabasesWithTableNames({ connection, tableType: TABLE_TYPE.table, diff --git a/shared/Db2Client/build.sh b/shared/Db2Client/build.sh index 963bad6..9fc1709 100644 --- a/shared/Db2Client/build.sh +++ b/shared/Db2Client/build.sh @@ -1,3 +1,3 @@ #!/bin/bash -mvn clean compile assembly:single \ No newline at end of file +mvn clean package diff --git a/shared/Db2Client/pom.xml b/shared/Db2Client/pom.xml index 505f0f3..d595eca 100644 --- a/shared/Db2Client/pom.xml +++ b/shared/Db2Client/pom.xml @@ -18,19 +18,29 @@ - - maven-assembly-plugin - - - - org.db2.App - - - - jar-with-dependencies - - - + + maven-assembly-plugin + 3.7.1 + + + + org.db2.App + + + + jar-with-dependencies + + + + + make-assembly + package + + single + + + + diff --git a/shared/Db2Client/readme.md b/shared/Db2Client/readme.md index 6692cac..bfb3f23 100644 --- a/shared/Db2Client/readme.md +++ b/shared/Db2Client/readme.md @@ -19,13 +19,9 @@ For compiling client Using Maven plugin execute: Lifecycle methods: - `mvn clean` -- `mvn compile` - -Plugins: - -- `mvn assembly:single` +- `mvn package` ### Built artifacts -The built JAR file you can find following by `./target/Db2Client-1.0-jar-with-dependencies.jar` +The built JAR file you can find following by `./target/Db2Client-1.0-jar-with-dependencies.jar`, **NOT `Db2Client-1.0.jar`!!!** For use in Db2 plugin rename this JAR file to `Db2Client.jar` and put to `shared/addons/Db2Client.jar` diff --git a/shared/Db2Client/src/main/java/org/db2/App.java b/shared/Db2Client/src/main/java/org/db2/App.java index 4998419..b08abfc 100644 --- a/shared/Db2Client/src/main/java/org/db2/App.java +++ b/shared/Db2Client/src/main/java/org/db2/App.java @@ -37,6 +37,7 @@ public static void main(String[] args) { JSONObject errorObj = new JSONObject(); errorObj.put("message", e.getMessage()); errorObj.put("stack", e.getStackTrace()); + errorObj.put("query", query); result.put("error", errorObj); } finally { @@ -46,7 +47,7 @@ public static void main(String[] args) { } private static String cleanStringValue(String value) { - return value.replace("<\\$>", "\""); + return value.replace("__PERCENT__", "%"); } private static String findArgument(String[] args, Argument argument) { diff --git a/shared/addons/Db2Client.jar b/shared/addons/Db2Client.jar index 00d7b66ce8267c0ca2cf1c142adda353c61ef5c1..55670cb5be0343208af38172eae11fa14d859fd2 100644 GIT binary patch delta 65853 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%0A)eoM2Qo`6ol8mFb8Q%tk^Y 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%0Aglo(G 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 QT~#)enrK>`*5R-J1C_cip#T5? diff --git a/shared/helpers/queryHelper.js b/shared/helpers/queryHelper.js index 9c0debc..006b352 100644 --- a/shared/helpers/queryHelper.js +++ b/shared/helpers/queryHelper.js @@ -1,4 +1,4 @@ -const { TABLE_TYPE } = require('../../constants/constants'); +const { TABLE_TYPE, PERSENT } = require('../../constants/constants'); /** * @param {{ query: string }} @@ -11,14 +11,18 @@ const cleanUpQuery = ({ query = '' }) => query.replaceAll(/\s+/g, ' '); * @returns {string} */ const getNonSystemSchemaWhereClause = ({ query, schemaNameKeyword }) => { - const whereClause = ` - WHERE ${schemaNameKeyword} NOT LIKE 'SYS%' - AND ${schemaNameKeyword} NOT LIKE '%SYSCAT%' - AND ${schemaNameKeyword} NOT LIKE '%SYSIBM%' - AND ${schemaNameKeyword} NOT LIKE '%SYSSTAT%' - AND ${schemaNameKeyword} NOT LIKE '%SYSTOOLS%' - AND ${schemaNameKeyword} NOT LIKE '%NULLID%' - AND ${schemaNameKeyword} NOT LIKE '%SQLJ%';`; + // On Windows (cmd.exe), environment variables can be referenced using syntax like %PATH%. + // When a command contains such patterns, cmd.exe automatically replaces them with the corresponding environment variable values. + // To prevent this automatic substitution, a placeholder string (PERSENT) is used here instead, + // which will later be replaced with the % symbol inside the Db2Client Java client. + const whereClause = ` + WHERE ${schemaNameKeyword} NOT LIKE 'SYS${PERSENT}' + AND ${schemaNameKeyword} NOT LIKE '${PERSENT}SYSCAT${PERSENT}' + AND ${schemaNameKeyword} NOT LIKE '${PERSENT}SYSIBM${PERSENT}' + AND ${schemaNameKeyword} NOT LIKE '${PERSENT}SYSSTAT${PERSENT}' + AND ${schemaNameKeyword} NOT LIKE '${PERSENT}SYSTOOLS${PERSENT}' + AND ${schemaNameKeyword} NOT LIKE '${PERSENT}NULLID${PERSENT}' + AND ${schemaNameKeyword} NOT LIKE '${PERSENT}SQLJ${PERSENT}';`; const clause = query.includes('WHERE') ? whereClause.replace('WHERE', 'AND') : whereClause;