mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 18:12:04 +00:00
fix(Postgres Node): Arrays in query replacement fix (#6718)
This commit is contained in:
@@ -61,22 +61,44 @@ export async function execute(
|
||||
query = query.replace(resolvable, this.evaluateExpression(resolvable, i) as string);
|
||||
}
|
||||
|
||||
let values: IDataObject[] = [];
|
||||
let values: Array<IDataObject | string> = [];
|
||||
|
||||
let queryReplacement = this.getNodeParameter('options.queryReplacement', i, '');
|
||||
const queryReplacement = this.getNodeParameter('options.queryReplacement', i, '');
|
||||
|
||||
if (typeof queryReplacement === 'string') {
|
||||
queryReplacement = queryReplacement.split(',').map((entry) => entry.trim());
|
||||
}
|
||||
const node = this.getNode();
|
||||
|
||||
if (Array.isArray(queryReplacement)) {
|
||||
values = queryReplacement as IDataObject[];
|
||||
const rawReplacements = (node.parameters.options as IDataObject)?.queryReplacement as string;
|
||||
|
||||
if (rawReplacements) {
|
||||
const rawValues = rawReplacements
|
||||
.replace(/^=+/, '')
|
||||
.split(',')
|
||||
.filter((entry) => entry)
|
||||
.map((entry) => entry.trim());
|
||||
|
||||
for (const rawValue of rawValues) {
|
||||
const resolvables = getResolvables(rawValue);
|
||||
|
||||
if (resolvables.length) {
|
||||
for (const resolvable of resolvables) {
|
||||
values.push(this.evaluateExpression(`${resolvable}`, i) as IDataObject);
|
||||
}
|
||||
} else {
|
||||
values.push(rawValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
throw new NodeOperationError(
|
||||
this.getNode(),
|
||||
'Query Replacement must be a string of comma-separated values, or an array of values',
|
||||
{ itemIndex: i },
|
||||
);
|
||||
if (Array.isArray(queryReplacement)) {
|
||||
values = queryReplacement as IDataObject[];
|
||||
} else {
|
||||
throw new NodeOperationError(
|
||||
this.getNode(),
|
||||
'Query Parameters must be a string of comma-separated values or an array of values',
|
||||
{ itemIndex: i },
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
queries.push({ query, values });
|
||||
|
||||
Reference in New Issue
Block a user