Skip to content

Releases: romanbalayan/oracledb-prebuilt-for-lambda

v6.3.0

28 Jan 04:24
Compare
Choose a tag to compare

Based from node-oracledb v6.3.0

v6.3.0 Release Notes

Common Changes

  1. Added a warning property to the result object for database warnings (such as PL/SQL compilation warnings) that are generated by calls to connection.execute().
  2. Added a connection.warning property for warnings (such as the password being in the grace period) that are generated during connection.
  3. VARCHAR2 and LOB columns which contain JSON, and have the “IS JSON” check constraint enabled, can now be fetched in the same way as columns of type JSON. In node-oracledb Thick mode this requires Oracle Client 19 or higher. Applications can get this new fetch behaviour by setting the new oracledb property oracledb.future.oldJsonColumnAsObj to true. The default value for this property is false which retains the existing fetch behaviour. In a future version, the new fetch behaviour will become default and setting this property will no longer be needed.
  4. Added constant oracledb.DB_TYPE_XMLTYPE to represent data of type SYS.XMLTYPE in metadata fetchType and dbType attributes. Previously the constant used was oracledb.DB_TYPE_LONG in Thick mode and oracledb.DB_TYPE_OBJECT in Thin mode.
  5. Added support for using the Azure and Oracle Cloud Infrastructure (OCI) Software Development Kits (SDKs) to generate authentication tokens.
  6. Added new connection properties connection.dbDomain, connection.dbName, connection.maxOpenCursors, connection.serviceName and connection.transactionInProgress that provide the database domain name, database instance name, maximum number of cursors that can be opened per connection, database service name and status of any ongoing transactions on the connection respectively.
  7. Added new extended metadata information attributes annotations, domainName, domainSchema and isJson for a fetched column.
  8. Added support for using an unformatted private key when the connection token callback is invoked due to expiry of an Identity Access Management (IAM) token after successful pool creation and connection establishment.
  9. Added new environment variable NODE_ORACLEDB_CLIENT_LIB_DIR to set an optional Oracle Client library path for the files in the examples directory on Windows and macOS Intel platforms, when using node-oracledb Thick mode.
  10. Added functionality to create and drop user schemas for Advanced Queuing (AQ) sample files in the examples directory. Users can now simply run the AQ samples using Node.js without requiring any external setup of the AQ user schema, queues and tables.

Thin Mode Changes

  1. Added support for fetching SYS.XMLTYPE data as strings. Note that unlike in Thick mode, fetching longer values does not require using XMLTYPE.GETCLOBVAL().
  2. Fixed bug in parsing SQL statements containing multi-line comments with multiple asterisks before the closing slash. Issue #1625.
  3. Fixed bug that caused an ‘ORA-03120’ exception to be thrown when a string whose size is greater than “database initialization parameter”, MAX_STRING_SIZE is bound to a PL/SQL function.
  4. Fixed bug that caused an ‘ORA-00600’ exception to be thrown with DbObject Class objects binding that have attributes whose values exceed 252 bytes in length. Issue #1616.
  5. Improved overall pool connection creation time by caching information during the first connection establishment.
  6. Internal changes to improve protocol handling between the database and the client.

Thick Mode Changes

  1. Fixed bug that causes an ‘NJS-136’ exception to be thrown when a proxy user is used for external authentication. Issue #1628.
  2. Fixed bug resulting in a segfault on some platforms when using two-phase commit. (ODPI-C change).

v6.2.0

28 Jan 04:03
13ef091
Compare
Choose a tag to compare

Based from node-oracledb v6.2.0

v6.2.0 Release Notes

Common Changes

  1. Added packageName property to DbObject Class.

Thin Mode Changes

  1. Improved statement bind variable placeholder parser performance, handle statements which use the Alternative Quoting Mechanism (‘Q’ strings), and fix some issues identifying bind variable placeholders in embedded quotes and in JSON syntax. Issue #1605.
  2. Fixed bug that caused cursors to be leaked when calling connection.getStatementInfo().
  3. Fixed bug that caused an exception to be thrown unnecessarily when a connection was closed. Issue #1604.
  4. Fixed bug that prevented getting the value of a RAW attribute on a DbObject which is null.
  5. Fixed bug which caused a cursor leak while repeatedly executing a SQL statement that fails with an NJS-prefixed error.
  6. Ensure that the database port is passed as a number to the network connection. See Issue #1600 and PR #1601 (Daniel Rodrigues).
  7. Internal code refactoring to improve connection performance when using Easy Connect strings.
  8. Internal performance optimizations for network buffer and packet handling.

Thick Mode Changes

  1. Added new property binaryDir to the options passed to initOracleClient() which indicates the name of the directory that contains the node-oracledb Thick mode binary module. PR #1602 (Kwok Chun Man).
  2. Fixed a segfault while populating a collection with a BLOB property. See node-oracledb public Slack channel.
  3. Added sodaCollection.listIndexes() method to fetch all the current indexes from a SODA collection.
  4. Added sodaOperation.lock() method to disable modification of SODA documents by other connections.
  5. Fixed bug causing an ‘ORA-21525’ error with DbObject Class objects that have a NUMBER attribute with a scale of 0 and precision less than, or equal, to 18. Issue #1594.

v6.1.0

01 Oct 07:33
Compare
Choose a tag to compare

Based from node-oracledb v6.1.0

v6.1.0 Release Notes

Common Changes

  1. Added support for both formatted and un-formatted private keys as input for IAM Token-Based Authentication.
  2. Added new property connection.instanceName which provides the Oracle Database instance name associated with a connection. This returns the same value as the SQL expression sys_context('userenv', 'instance_name').
  3. Minor code refactoring.
  4. Test case and Documentation updates and improvements.

Thin Mode Changes

  1. Added support for an Oracle Database 23c feature that can improve the performance of connection creation by reducing the number of round trips required to create the second and subsequent connections to the same database.
  2. Added support for fetching RAW columns as strings using oracledb.fetchAsString = [ oracledb.DB_TYPE_RAW ]. Issue #1586.
  3. Added new sslAllowWeakDNMatch connection attribute in createPool() and getConnection() methods and support for SSL_WEAK_DN_MATCH (an Oracle Database 23c feature). If set, this enables sslServerDNMatch / SSL_SERVER_DN_MATCH to check the database server certificate (but not the listener) and enables the service name to be used for partial DN matching. The search order is: the host name, then the subject alternative name (SAN), and then the service name.
  4. Added support to include database error cause/action URLs (introduced from Oracle Database 23c onwards) for ORA error messages.
  5. Added network connection optimization for multiple database hosts. If a host is found to be unreachable during connection, the host is added to a cache (marked as ‘down’). Subsequent requests to get a connection will reorder the list of available hosts so that the hosts marked as down are at the end of the list.
  6. Fixed bug that throws unexpected ‘ORA-01002’ and ‘NJS-112’ errors when LOB columns are fetched after table recreation. Issue #1565.
  7. Fixed bug with oracledb.oracleClientVersion and connection.oracleServerVersionString. These attributes now return ‘undefined’ in Thin mode instead of throwing an error. Issue #1582.
  8. Fixed bug giving ‘Unexpected message type’ during connection authentication. Issue #1589.
  9. Fixed bug in handling unexpected pool growth that exceeds pool max limit due to improper handling of parallel connection requests. Issue #1591.
  10. Fixed bug to return proper error when an invalid database service name is configured in the database listener.
  11. Fixed bug when sslServerDNMatch is set and the connect string is in Easy Connect syntax, but a value for SSL_SERVER_DN_MATCH is not set in that connect string.
  12. Fixed bug in DN matching when both a remote and a local listener use the same certificate.
  13. Fixed bug with duplicate data for queries that exceed 2016 columns (only possible with Oracle Database 23c).

Thick Mode Changes

  1. Added msgId attribute in the message object passed onto the callback function registered during AQ subscription. The msgId attribute passed with the callback function can be compared with the msgId attribute returned by the dequeue function for proper validation of the returned message objects with message dequeue.
  2. Added support to return a message object from the queue.enqOne() and queue.enqMany() functions. This message object contains a msgId attribute identifying each message.
  3. Added support to enqueue and dequeue AQ messages as JSON.

v6.0.3

01 Oct 07:07
165cd42
Compare
Choose a tag to compare

Based from node-oracledb v6.0.3

v6.0.3 Release Notes

Common Changes

  1. Fixed bug to consistently use the DRCP oracledb.connectionClass in effect when the pool was created.
  2. Added more test cases for datetime objects and other test improvements.
  3. Documentation improvements.

Thin Mode Changes

  1. Fixed bug that throws the NJS-111 internal error, on the second SELECT SQL statement issued after the first SELECT SQL statement call on an empty table with LOBs.
  2. Avoid throwing errors when calls to os.userInfo() fail. Issue #1564.
  3. Persist in-band notifications after calls to connection.isHealthy().
  4. Improved memory usage by removing an unused network buffer.
  5. Fixed bug to handle breaks that occur in the middle of processing a database response that spans multiple packets. This break could occur due to a server error, the session being killed or a call to breakExecution().
  6. Fixed bug where NJS-112 is thrown intermittently with some connections.
  7. Fixed bug where DRCP connections from the application-side connection pool cause the NUM_MISSES values to increase instead of the NUM_HITS values in the V$CPOOL_STATS view by default. This fix optimizes the use of DRCP connections.
  8. Fixed the issue where dates with negative years are not inserted and fetched correctly.
  9. Error handling and message improvements:
    • Fixed error handling when invalid connect descriptor syntax is used.
    • Throws an error when https_proxy is given but the protocol is tcp.
    • Fixed bug to handle errors that occur while waiting for writes to drain on the network.
    • Improved the error message thrown when an internal error handler fails and a connection is no longer usable
    • Improved error message when an unsupported protocol is used in Easy Connect syntax.
    • Add packet number and position for network packets to provide improved diagnosability on some internal errors.

v6.0.1

24 Jun 11:07
Compare
Choose a tag to compare

Based from node-oracledb v6.0.1

v6.0.1 Release Notes

  • Node-oracledb is now a pure JavaScript ‘Thin’ driver by default that connects directly to Oracle Database. Optional use of Oracle Client libraries enables a ‘Thick’ mode with some additional functionality.

  • Bumped the minimum Node.js version required to 14.6 so Node-API version 6 and FinalizationRegistry can be used in the driver implementation.

  • Added a new oracledb.fetchTypeHandler and equivalent execution option allowing a user function to be specified that can make custom alterations to SQL query data before it is returned to the application.

  • Added a new error.code to fetch the error prefix and the error number, for example ORA-01017, DPI-1080, and NJS-500.

  • Deprecated execution option attribute fetchInfo. Use the new Using Fetch Type Handlers functionality instead.

  • Type and Metadata changes:

    • Query extended metadata is now always available. The oracledb.extendedMetaData and equivalent execution attribute values are ignored.
    • Query column metadata now always returns unique column names regardless of the value of the outFormat setting. Previously they were only unique when oracledb.OUT_FORMAT_OBJECT was used.
    • Changed oracledb.DB_TYPE_* constants to be DbType objects instead of numbers.
    • Added support for the Oracle Database 23c BOOLEAN SQL type.
    • Fixed type used when fetching NCLOB as a string.
    • Fixed query metadata fetchType value.
  • Package script changes:

    • Allow package/prunebinaries.js to optionally remove all the Thick mode binaries to enable a Thin-mode only installation.
    • Allow npm run buildpackage to create a package without Thick mode binaries.
  • Code refactoring:

    • Standardized and improved function parameter validation.
    • Show NJS prefixed error messages instead of DPI or ORA prefixed messages in some error scenarios.
    • Multiple calls to initOracleClient() no longer result in an error, as long as the same arguments are passed.
  • Oracle Database DATE and TIMESTAMP types are now returned as JavaScript date types in the application’s timezone, and no longer fetched or bound as TIMESTAMP WITH LOCAL TIME ZONE. The connection session time zone no longer impacts these types. This behavior aligns with other Oracle Database tools and drivers. Handling of TIMESTAMP WITH TIMEZONE and TIMESTAMP WITH LOCAL TIMEZONE has not changed.

  • The previously deprecated Token-Based Authentication accessTokenCallback attribute has been removed. Use accessToken instead.

  • Improved binding support:

    • Fixed NULL BOOLEAN OUT binds.
    • Fixed issues with ordering of binds in SQL when the database version is 12.1 and the maxSize of a bind variable exceeds 4000 bytes.
  • Fixed bug using colons in multiple single-line SQL comments in Thin mode. Issue #1561.

v5.5.0

30 Sep 14:23
966bbf8
Compare
Choose a tag to compare

Based from node-oracledb v5.5.0

v5.5.0 Release Notes

  • Token-based Authentication changes:

    • Added support for token-based
      authentication

      using Microsoft Azure Active Directory OAuth 2.0 tokens.
    • The accessToken attribute for connection and connection pool creation
      can now be a string, a callback function, or an object.
    • Fixed a bug that prevented async functions from being used in token callbacks.
    • Deprecated the connection pool creation attribute accessTokenCallback.
    • Deprecated pool.setAccessToken().
  • ResultSets now implement the asyncIterator() symbol to support asynchonous
    iteration.

  • Added support for Oracle Advanced Queuing (AQ) recipient
    lists
    .

  • Fixed a regression that could cause a pool alias to be recorded in the
    internal list of aliases even if pool creation failed.

v5.4.0

15 Jun 12:15
Compare
Choose a tag to compare

Based from node-oracledb v5.4.0

v5.4.0 Release Notes

  • Stated compatibility is now for Node.js 14, 16 and 18. Older releases back to Node.js 10.16 should still work.
  • Added support for token based authentication when establishing pool based connections and standalone connections.
  • Added code to capture the error stack. PR #1467 (Slawomir Osoba).
  • Added code to keep the method name in internally bound functions. PR #1466 (Slawomir Osoba).
  • Added a connection.isHealthy() function to perform a local connection health check.
  • Added missing support for binding as oracledb.DB_TYPE_BINARY_INTEGER.
  • Fixed a crash using multiple DbObject OUT binds (oracle/node-oracledb#1464).
  • Fixed calling initOracleClient() with TypeScript 4.4 (oracle/node-oracledb#1462).
  • Fixed the numeric suffix feature (for duplicate SELECT column names when using oracledb.OUT_FORMAT_OBJECT mode) when the column name is also a JavaScript property or method name.
  • Fixed binding string or buffer data when explicitly specifying the type as oracledb.DB_TYPE_BLOB, oracledb.DB_TYPE_CLOB or oracledb.DB_TYPE_NCLOB.
  • Fixed a crash when certain errors occur during binding. (ODPI-C change).
  • Fixed a bug causing ORA-25263 when dequeuing a message with a specific message ID. (ODPI-C change).

v5.3.0

04 Nov 11:06
Compare
Choose a tag to compare

Based from node-oracledb v5.3.0

v5.3.0 Release Notes

  • Added a keepInStmtCache option to execute(), executeMany(), and queryStream() to control whether executed statements are retained in the Statement Cache. (Issue #182).
  • Encapsulated the connection pool statistics in a PoolStatistics Class. Added a poolstatistics.logStatistics() function, equivalent to the existing pool.logStatistics() function. Exposed pool properties user, connectString, edition, events, externalAuth, and homogeneous on the Pool and PoolStatistics classes.
  • Added Two-Phase Commit support.
  • Fixed queryStream() logical error handling (Issue 1391).
  • Prevent intermingling of queryStream() streaming and getRow()/getRows() calls.
  • Made an internal change for TypeScript 4.4's imported function behavior with 'this' (Issue 1408).

v5.2.0

17 Jun 04:02
8c4acb5
Compare
Choose a tag to compare

Based from node-oracledb v5.2.0

v5.2.0 Release Notes

  • Connection pool changes:
    • Pool attributes can be changed during application runtime with pool.reconfigure(). This lets properties such as the pool size be changed dynamically instead of having to restart the application or create a new pool.
    • Formalized pool statistics with the addition of a pool creation attribute enableStatistics, and with the functions pool.getStatistics() and pool.logStatistics(). Pool statistics can be be enabled, disabled, or reset with pool.reconfigure(). The older _enableStats attribute and _logStats() function are aliases for the new functionality but will be removed in a future version of node-oracledb.
    • Added currentQueueLength and poolMaxPerShard to the pool statistics.
    • Fixed connection pool statistics "minimum time in queue" and "maximum time in queue" calculations.
    • Fixed the statement cache size set for the initial poolMin connections created by oracledb.createPool().
    • Fixed queueTimeout of 0 to allow pool connection requests to be queued indefinitely. See Issue 1338.
  • Concurrent operations on a single connection are now queued in the JavaScript layer, which can help reduce thread usage for applications that are unable to do their own queuing. A new oracledb.errorOnConcurrentExecute property can be used during development to throw an error if concurrent operations are attempted on any single connection.
  • Enhanced dead connection detection. If an Oracle Database error indicates that a connection is no longer usable, the error DPI-1080: connection was closed by ORA-%d is now returned. The %d will be the Oracle error causing the connection to be closed. Using the connection after this will give DPI-1010: not connected. This behavior also applies for oracle.callTimeout errors that result in an unusable connection. (ODPI-C change).
  • Enhanced getRows() to be able to return all rows in one call.
  • Added username as an alias for user in connection properties.
  • Enhanced the numeric suffix feature (for duplicate SELECT column names when using oracledb.OUT_FORMAT_OBJECT mode) to also support nested cursors and REF CURSORS.
  • Added support for caching the database version number in pooled connections with Oracle Client 19 and earlier (later Oracle Clients handle this caching internally). This optimization eliminates a round-trip previously often required when reusing a pooled connection. (ODPI-C change).
  • SODA changes:
  • Added SODA metadata cache support to connection pools. This significantly improves the performance of opening collections. Caching is available when using Oracle Client version 21.3 (or later). It is also available in Oracle Client 19 from 19.11 onwards.
  • Added a SODA hint() SodaOperation method and equivalent hint option to sodaCollection.insertManyAndGet(), sodaCollection.insertOneAndGet(), and sodaCollection.saveAndGet() to allow monitoring and passing hints.
  • Fixed crashes seen with Worker threads (ODPI-C change).
  • Fixed a failure when using JavaScript functions on OUT bind variables from executeMany() that require the connection, for example accessing database objects or streaming LOBs.
  • Fixed use of oracledb.NCLOB in fetchAsString. See Issue 1351.
  • Test and documentation improvements.

v5.1.0

08 Feb 01:45
Compare
Choose a tag to compare

Based from node-oracledb v5.1.0

v5.1.0 Release Notes

  • Added oracledb.dbObjectAsPojo and a connection.execute() option dbObjectAsPojo. These specify whether Oracle Database named objects or collections that are queried should be returned to the application as "plain old JavaScript objects" or kept as database-backed objects. This option also applies to output BIND_OUT bind variables.
  • Enhanced JSON support to work with Oracle Database 21's native JSON storage format. A new type oracledb.DB_TYPE_JSON was added.
  • Numeric suffixes are now added to duplicate SELECT column names when using oracledb.OUT_FORMAT_OBJECT mode, allowing all columns to be represented in the JavaScript object.
  • The value of prefetchRows set when getting a REF CURSOR as a BIND_OUT parameter is now used in the subsequent data retrieval from that cursor.
  • Fixed a compatibility regression affecting SODA "get" operations using older Oracle Client releases.
  • Fixed a memory leak getting attributes of objects or elements of collections that are themselves objects.