node-oracledb 5.0.0-dev code is being pushed to the master branch. It is a 'work in progress' and subject to change.
View the CHANGELOG.
Documentation is here.
Install by compiling. See Installing using GitHub branches and tags:
npm install oracle/node-oracledb#master
Some of the new features require Oracle Database 20c and/or Oracle Client 20c libraries. This version is currently now available as a cloud preview. (Check it out!) This is a hint that 5.0 will be released after 20c is available for "on-premise" use and Instant Client is downloadable.
Note that custom promises libraries are no longer supported. Yell out if this impacts you.
A couple of features are in progress and will land soon: DB startup/shutdown functions, and support for queries with nested cursors (now landed on the master branch).
What other features are top on your lists?
Queries with nested cursors has been high on my list, glad to see it on the roadmap for 5.0
@nicholas-ochoa the nested cursor code is pretty much ready but waiting for deeper testing. If you want to play with it immediately, I can push it GitHub. You would have to build the module binary yourself.
I鈥檇 love to give it a spin. We鈥檝e got quite a few nested cursors in our codebase and we鈥檙e currently wrapping all cursor output in XML to retrieve it properly. I should be able to give this a pretty good run through.
@nicholas-ochoa that would be great. I'll make some time later today to get it out.
@nicholas-ochoa I've pushed the nested cursor code to the master branch. Please hammer on it and check functionality and behavior. There is an example in the example directory, and doc is complete. One open question is how/whether/when to handle metadata of nested cursors.
@nicholas-ochoa I've pushed the additional support for metadata on non-ResultSet nested cursors to the master branch. (The metadata was already available off each RS, for that scenario).
I just pushed the next major feature for 5.0-dev: a new method that can help initialize the Oracle Client libraries, see the development doc.
In summary, though there are limitations on Linux, a new oracledb.initOracleClient() method can be a handy way on Windows or macOS to tell node-oracledb where to load the Oracle client libraries from. Secondly, on macOS you can optionally put the client libraries in node_modules/oracledb/build/Release (this was already possible on Windows).
Support for binding cursors IN was merged to the master branch, along with an extra tuning setting to adjust the 'prefetch rows' value - it's best to refer to the (development) doc here, which is part of a combined section on tuning.
Since we're at the end of the release cycle, now is the time to start testing 5.0. See here for building instructions.
Node-oracledb 5.0 is out: https://blogs.oracle.com/opal/node-oracledb-50-adds-nested-cursors-database-startup-and-prefetch-tuning