From 1b0990912627a3a4a4e8d62b4593f8a7aa3a7fe5 Mon Sep 17 00:00:00 2001 From: Fabio Di Stasio Date: Wed, 28 Apr 2021 11:50:07 +0200 Subject: [PATCH] fix: semicolon inside strings breaks queries, closes #59 --- package.json | 2 +- src/main/libs/clients/MySQLClient.js | 2 +- src/main/libs/clients/PostgreSQLClient.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 772e6f56..a0892f65 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,7 @@ "faker": "^5.3.1", "marked": "^2.0.2", "moment": "^2.29.1", - "mssql": "^6.2.3", + "mssql": "^6.3.1", "mysql2": "^2.2.5", "node-sql-parser": "^3.1.0", "pg": "^8.5.1", diff --git a/src/main/libs/clients/MySQLClient.js b/src/main/libs/clients/MySQLClient.js index 4e10078a..46c8f52b 100644 --- a/src/main/libs/clients/MySQLClient.js +++ b/src/main/libs/clients/MySQLClient.js @@ -1278,7 +1278,7 @@ export class MySQLClient extends AntaresCore { const nestTables = args.nest ? '.' : false; const resultsArr = []; let paramsArr = []; - const queries = args.split ? sql.split(';') : [sql]; + const queries = args.split ? sql.split(/(?!\B['"][^'"]*);(?![^'"]*['"]\B)/gm) : [sql]; if (process.env.NODE_ENV === 'development') this._logger(sql);// TODO: replace BLOB content with a placeholder diff --git a/src/main/libs/clients/PostgreSQLClient.js b/src/main/libs/clients/PostgreSQLClient.js index e59bab5b..1db08efb 100644 --- a/src/main/libs/clients/PostgreSQLClient.js +++ b/src/main/libs/clients/PostgreSQLClient.js @@ -1255,7 +1255,7 @@ export class PostgreSQLClient extends AntaresCore { const resultsArr = []; let paramsArr = []; - const queries = args.split ? sql.split(';') : [sql]; + const queries = args.split ? sql.split(/(?!\B'[^']*);(?![^']*'\B)/gm) : [sql]; if (process.env.NODE_ENV === 'development') this._logger(sql);// TODO: replace BLOB content with a placeholder