Oracle node stack overflow fixed for large result sets
The Oracle Database node no longer crashes when queries return tens of thousands of rows, fixing a stack overflow that plagued large result sets.
The Oracle Database node has been crashing with "Maximum call stack size exceeded" when executing queries that return large result sets. The root cause: JavaScript engines limit the number of arguments a function can accept, and the code was passing entire result arrays as arguments to push() via the .apply() method.
The fix replaces four instances of returnData.push.apply(returnData, ...) and returnData.push(...executionData) with returnData = returnData.concat(...). This approach builds a new array rather than passing thousands of items as individual function arguments, avoiding the stack limit entirely.
Users running SELECT statements or Execute SQL operations that return tens of thousands of rows—reportedly in the 10k–100k+ range—can now complete successfully. The fix follows an established pattern already applied to the MySQL, MongoDB, Microsoft SQL, FTP, and Google Sheets nodes.
View Original GitHub Description
Summary
As noted in issue #26985, querying large result sets triggers a RangeError: Maximum call stack size exceeded. This PR replaces Array.prototype.push.apply and spread operations with .concat(), following the established fix pattern used for other database nodes to handle high-volume data safely.
Previous similar fixes for this issue:
-
MySQL Node: #10965
-
MongoDB Node: #8530
-
Microsoft SQL Node: #8334
-
FTP Node: #8657
-
Google Sheets Node: #7384
Related tickets and issues
fixes #26985
Review / Merge checklist
- PR title and summary are descriptive.