mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 10:02:05 +00:00
feat(Merge Node): Better pairedItem mapping in combineBySql operation if SELECT query (#13849)
Co-authored-by: Shireen Missi <94372015+ShireenMissi@users.noreply.github.com>
This commit is contained in:
@@ -386,3 +386,43 @@ export function getNodeInputsData(this: IExecuteFunctions) {
|
||||
|
||||
return returnData;
|
||||
}
|
||||
|
||||
export const rowToExecutionData = (data: IDataObject): INodeExecutionData => {
|
||||
const keys = Object.keys(data);
|
||||
const pairedItem: IPairedItemData[] = [];
|
||||
const json: IDataObject = {};
|
||||
|
||||
for (const key of keys) {
|
||||
if (key.startsWith('pairedItem')) {
|
||||
if (data[key] === undefined) continue;
|
||||
pairedItem.push(data[key] as IPairedItemData);
|
||||
} else {
|
||||
json[key] = data[key];
|
||||
}
|
||||
}
|
||||
|
||||
return { json, pairedItem };
|
||||
};
|
||||
|
||||
export function modifySelectQuery(userQuery: string, inputLength: number): string {
|
||||
const selectMatch = userQuery.match(/SELECT\s+(.+?)\s+FROM/i);
|
||||
if (!selectMatch) return userQuery;
|
||||
|
||||
let selectedColumns = selectMatch[1].trim();
|
||||
|
||||
if (selectedColumns === '*') {
|
||||
return userQuery;
|
||||
}
|
||||
|
||||
const pairedItemColumns = [];
|
||||
|
||||
for (let i = 1; i <= inputLength; i++) {
|
||||
if (userQuery.includes(`input${i}`)) {
|
||||
pairedItemColumns.push(`input${i}.pairedItem AS pairedItem${i}`);
|
||||
}
|
||||
}
|
||||
|
||||
selectedColumns += pairedItemColumns.length ? ', ' + pairedItemColumns.join(', ') : '';
|
||||
|
||||
return userQuery.replace(selectMatch[0], `SELECT ${selectedColumns} FROM`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user