Releases: romanbalayan/oracledb-prebuilt-for-lambda
Releases · romanbalayan/oracledb-prebuilt-for-lambda
v5.0.0
Based from node-oracledb v5.0.0
v5.0.0 Release Notes
- Stated compatibility is now for Node.js 10.16+, 12 and 14.
- Installation Changes:
- Added an oracledb.initOracleClient() function to specify the directories that the Oracle Client libraries and optional Oracle configuration files are in, and to specify other configuration values, see Initializing Node-oracledb.
- macOS Instant Client installation instructions have necessarily changed to work with recent Node.js versions. Instant Client libraries in ~/lib will no longer be used. See INSTALL.
- Fixed how the module binary is found when using Webpack.
- Webpack users should copy the node-oracledb binary into a sub-directory of the output directory. For example if the output directory is dist, then the binary should be in dist/node_modules/oracledb/build/Release/oracledb-5.0.0-linux-x64.node. A copy plugin in webpack.config.js can do this by copying node_modules/oracledb/build to a directory of that same name. See Issue 1156.
- Updated Docker installation documentation for changes to the Node.js image (Issue #1201).
- Removed use of git in package/buildpackage.js making offline builds cleaner for self-hosting node-oracledb.
- Connection Pool changes:
- Added oracledb.queueMax and equivalent createPool() option attribute queueMax to limit the number of pending pool.getConnection() calls in the pool queue (Issue #514).
- Made an internal change to use an Oracle Client 20 Session Pool feature allowing node-oracledb connection pools to shrink to poolMin even when there is no pool activity.
- Added oracledb.prefetchRows and equivalent execute() option attribute prefetchRows for query row fetch tuning to optimize round-trips, or disable prefetching altogether. See Tuning Fetch Performance.
- Added support for queries containing cursor expressions that return nested cursors.
- Added database instance startup and shutdown functions oracledb.startup(), oracledb.shutdown(), connection.startup(), and connection.shutdown().
- Added a new constant oracledb.SYSPRELIM to allow preliminary database connections, such as required when starting a database.
- Added support for ResultSet IN binds to PL/SQL REF CURSOR parameters.
- Added support for PL/SQL Collection Associative Arrays "index-by tables" of the following types: oracledb.DB_TYPE_NVARCHAR, oracledb.DB_TYPE_CHAR, oracledb.DB_TYPE_NCHAR, oracledb.DB_TYPE_BINARY_FLOAT, oracledb.DB_TYPE_BINARY_DOUBLE, oracledb.DB_TYPE_DATE, oracledb.DB_TYPE_TIMESTAMP, oracledb.DB_TYPE_TIMESTAMP_LTZ, oracledb.DB_TYPE_TIMESTAMP_TZ and oracledb.DB_TYPE_RAW.
- Refactored the module's JavaScript code layer to use async/await.
- Removed support for custom Promise libraries. Use the native Node.js Promise implementation instead. This change was necessitated by the refactored JavaScript implementation.
- NJS-005 and NJS-009 are now passed through the callback (if one is used).
- Fixed a segfault that occurred when binding a database object IN/OUT without providing the database object class.
- Fixed OUT binds of type oracledb.DB_TYPE_DATE, oracledb.DB_TYPE_TIMESTAMP and oracledb.DB_TYPE_TIMESTAMP_TZ to correctly return Dates.
- SODA changes:
- The value of oracledb.fetchArraySize now tunes SODA getCursor() and getDocuments() performance when using Oracle Client 19.5. Added the SODA find() non-terminal function fetchArraySize() to tune individual find() operations.
-Added Oracle Database 20c SODA 'upsert' functions sodaCollection.save() and sodaCollection.saveAndGet().
-Added Oracle Database 20c SODA function sodaCollection.truncate().
- The value of oracledb.fetchArraySize now tunes SODA getCursor() and getDocuments() performance when using Oracle Client 19.5. Added the SODA find() non-terminal function fetchArraySize() to tune individual find() operations.
- Lob Changes:
-Fixed Lob class lob.type and metaData.fetchType when streaming NCLOB data. They are now oracledb.NCLOB instead of oracledb.CLOB.- Fixed Lob.destroy() so it does not call the old Lob.close() method, which emits a duplicate close event.
- Lobs being streamed to are now correctly destroyed on error.
- Made an internal change to use an Oracle Client 20 feature to avoid a round-trip when accessing oracledb.version for the first time.
- Updated examples and documentation to make more use of Node.js 8's Stream destroy() method, allowing resources to be freed early.
- Test and documentation improvements.
v4.2.0
Based from node-oracledb v4.2.0
v4.2.0 Release Notes
- Added support for binding using the node-oracledb Database Type Constants DB_TYPE_DATE, DB_TYPE_CHAR, DB_TYPE_NCHAR, DB_TYPE_NVARCHAR, DB_TYPE_NCLOB, DB_TYPE_BINARY_DOUBLE, DB_TYPE_BINARY_FLOAT, DB_TYPE_BINARY_INTEGER, DB_TYPE_TIMESTAMP, and DB_TYPE_TIMESTAMP_TZ.
- Added support for binding using DB_TYPE_BOOLEAN (Diego Arce).
- Added support for creating temporary NCLOBS with connection.createLob(oracledb.NCLOB).
- Added client initiated connection support for Continuous Query Notification (CQN) and other subscription based notifications.
- Added result.lastRowid to execute(). It contains the ROWID of the last row affected by an INSERT, UPDATE, DELETE or MERGE statement.
- Changed the Error object offset to be 32-bit, allowing the batchErrors mode of executeMany() to show row offset values up to (2^32)-1 (ODPI-C change).
- Avoid intermediate conversion from the database national character set to the database character set when querying NCLOB columns as String.
- Fixed various execution failures with Node.js 13.2 due to a Node.js NULL pointer behavior change (ODPI-C change).
- Fixed connection pooling so sharded pool.getConnection() requests respect queueTimeout when poolMaxPerShard has been reached.
- Added a directory to the binary module search to help Webpack use, though a copy plugin is still required, see here.
- Fixed some static code analysis warnings.
- Updated Lob streaming documentation and examples. Applications should use the end event (for readable streams) and finish event (for writeable streams) instead of the close event. The node-oracledb lob.close() method is now deprecated in favor of the more functional Node.js 8 Stream destroy() method.
- Test and documentation improvements.
v4.1.0
Based from node-oracledb v4.1.0
v4.1.0 Release Notes
- Added end-to-end tracing attributes connection.clientInfo and connection.dbOp.
- Added support for Oracle Sharding.
- Fixed a regression when binding dates with alternative JavaScript frameworks.
- Fixed "NJS-024: memory allocation failed" errors seen on AIX.
- Fixed a JavaScript memory leak when getting Oracle Database named type information, such as with getDbObjectClass().
- Corrected support for PLS_INTEGER and BINARY_INTEGER types when used in PL/SQL records (ODPI-C change).
- Corrected queryStream() documentation and examples to show the 'close' event should be received before closing connections. If connections are closed on the 'end' event, then significant C layer memory may be held open until the garbage collector frees the associated JavaScript resource.
- Reverted the events default back to pre-4.0 behavior due to connection creation timeouts in some environments. It is now false again.
- Error changes:
- Ensured that queryStream() errors raised during close are emitted in the 'error' event.
- Enforce only one of connectString or connectionString being used for connection.
- Improved some error messages.
-Refactored implementation of function argument checking.
- Test and documentation improvements.
v1.0.3
- Inspired by https://github.com/nalbion/node-oracledb-for-lambda and the scheduled AWS Lambda Nodev8 Runtime deprecation schedule
- Changes from node-oracledb-for-lambda
- oracledb libraries from https://github.com/oracle/node-oracledb v4.0.1
- compiled for AWS Lambda NodeJS Runtime 10.x (using NodeJS 10.16.3)