mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 10:02:05 +00:00
fix(MySQL Node): Query to statements splitting fix (#9207)
This commit is contained in:
@@ -190,6 +190,14 @@ export function prepareOutput(
|
||||
|
||||
return returnData;
|
||||
}
|
||||
const END_OF_STATEMENT = /;(?=(?:[^'\\]|'[^']*?'|\\[\s\S])*?$)/g;
|
||||
export const splitQueryToStatements = (query: string, filterOutEmpty = true) => {
|
||||
const statements = query
|
||||
.replace(/\n/g, '')
|
||||
.split(END_OF_STATEMENT)
|
||||
.map((statement) => statement.trim());
|
||||
return filterOutEmpty ? statements.filter((statement) => statement !== '') : statements;
|
||||
};
|
||||
|
||||
export function configureQueryRunner(
|
||||
this: IExecuteFunctions,
|
||||
@@ -225,10 +233,15 @@ export function configureQueryRunner(
|
||||
|
||||
if (!response) return [];
|
||||
|
||||
const statements = singleQuery
|
||||
.replace(/\n/g, '')
|
||||
.split(';')
|
||||
.filter((statement) => statement !== '');
|
||||
let statements;
|
||||
if ((options?.nodeVersion as number) <= 2.3) {
|
||||
statements = singleQuery
|
||||
.replace(/\n/g, '')
|
||||
.split(';')
|
||||
.filter((statement) => statement !== '');
|
||||
} else {
|
||||
statements = splitQueryToStatements(singleQuery);
|
||||
}
|
||||
|
||||
if (Array.isArray(response)) {
|
||||
if (statements.length === 1) response = [response];
|
||||
@@ -261,7 +274,13 @@ export function configureQueryRunner(
|
||||
try {
|
||||
const { query, values } = queryWithValues;
|
||||
formatedQuery = connection.format(query, values);
|
||||
const statements = formatedQuery.split(';').map((q) => q.trim());
|
||||
|
||||
let statements;
|
||||
if ((options?.nodeVersion as number) <= 2.3) {
|
||||
statements = formatedQuery.split(';').map((q) => q.trim());
|
||||
} else {
|
||||
statements = splitQueryToStatements(formatedQuery, false);
|
||||
}
|
||||
|
||||
const responses: IDataObject[] = [];
|
||||
for (const statement of statements) {
|
||||
@@ -300,7 +319,13 @@ export function configureQueryRunner(
|
||||
try {
|
||||
const { query, values } = queryWithValues;
|
||||
formatedQuery = connection.format(query, values);
|
||||
const statements = formatedQuery.split(';').map((q) => q.trim());
|
||||
|
||||
let statements;
|
||||
if ((options?.nodeVersion as number) <= 2.3) {
|
||||
statements = formatedQuery.split(';').map((q) => q.trim());
|
||||
} else {
|
||||
statements = splitQueryToStatements(formatedQuery, false);
|
||||
}
|
||||
|
||||
const responses: IDataObject[] = [];
|
||||
for (const statement of statements) {
|
||||
|
||||
Reference in New Issue
Block a user