1 | # Change Log
|
2 |
|
3 | ## node-oracledb v5.4.0 (9 Jun 2022)
|
4 |
|
5 | - Stated compatibility is now for Node.js 14, 16 and 18. Older releases
|
6 | back to Node.js 10.16 should still work.
|
7 |
|
8 | - Added code to capture the [error
|
9 | stack](https://oracle.github.io/node-oracledb/doc/api.html#properrstack). PR #1467
|
10 | (Slawomir Osoba).
|
11 |
|
12 | - Added support for [token based
|
13 | authentication](https://oracle.github.io/node-oracledb/doc/api.html#tokenbasedauth)
|
14 | when establishing pool based connections and standalone connections.
|
15 |
|
16 | - Added code to keep the method name in internally bound functions.
|
17 | PR #1466 (Slawomir Osoba).
|
18 |
|
19 | - Added a
|
20 | [`connection.isHealthy()`](https://oracle.github.io/node-oracledb/doc/api.html#ishealthy)
|
21 | function to perform a local connection health check.
|
22 |
|
23 | - Added missing support for binding as `oracledb.DB_TYPE_BINARY_INTEGER`.
|
24 |
|
25 | - Fixed crash with multiple
|
26 | [DbObject](https://oracle.github.io/node-oracledb/doc/api.html#dbobjectclass)
|
27 | OUT binds ([Issue #1464](https://github.com/oracle/node-oracledb/issues/1464)).
|
28 |
|
29 | - Fixed calling `initOracleClient()` with TypeScript 4.4 ([Issue
|
30 | 1462](https://github.com/oracle/node-oracledb/issues/1462)).
|
31 |
|
32 | - Fixed numeric suffix feature (for duplicate SELECT column names when using
|
33 | `oracledb.OUT_FORMAT_OBJECT` mode) when the column name is also a JavaScript
|
34 | property or method name.
|
35 |
|
36 | - Fixed binding string or buffer data when explicitly specifying the type as
|
37 | `oracledb.DB_TYPE_BLOB`, `oracledb.DB_TYPE_CLOB` or `oracledb.DB_TYPE_NCLOB`.
|
38 |
|
39 | - Fixed a crash when certain errors occur during binding. ([ODPI-C
|
40 | change](https://github.com/oracle/odpi/commit/13899afcbdf51998863d48752debc3f239f3d655)).
|
41 |
|
42 | - Fixed a bug causing ORA-25263 when dequeuing a message with a specific
|
43 | message ID. ([ODPI-C
|
44 | change](https://github.com/oracle/odpi/commit/68c438dd3b779e8f5eb146a0762d6cd149cdf9f1)).
|
45 |
|
46 | ## node-oracledb v5.3.0 (22 Oct 2021)
|
47 |
|
48 | - Added a
|
49 | [`keepInStmtCache`](https://oracle.github.io/node-oracledb/doc/api.html#propexeckeepinstmtcache)
|
50 | option to `execute()`, `executeMany()`, and `queryStream()` to control
|
51 | whether executed statements are retained in the Statement Cache.
|
52 | ([Issue #182](https://github.com/oracle/node-oracledb/issues/182)).
|
53 |
|
54 | - Encapsulated the connection pool statistics in a [PoolStatistics
|
55 | Class](https://oracle.github.io/node-oracledb/doc/api.html#poolstatisticsclass).
|
56 | Added a
|
57 | [`poolstatistics.logStatistics()`](https://oracle.github.io/node-oracledb/doc/api.html#poolstatisticslogstatistics)
|
58 | function, equivalent to the existing `pool.logStatistics()` function. Exposed
|
59 | pool properties `user`, `connectString`, `edition`, `events`,
|
60 | `externalAuth`, and `homogeneous` on the Pool and PoolStatistics classes.
|
61 |
|
62 | - Added [Two-Phase Commit](https://oracle.github.io/node-oracledb/doc/api.html#twopc) support.
|
63 |
|
64 | - Fixed `queryStream()` logical error handling ([Issue
|
65 | 1391](https://github.com/oracle/node-oracledb/issues/1391)).
|
66 |
|
67 | - Prevent intermingling of `queryStream()` streaming and `getRow()`/`getRows()`
|
68 | calls.
|
69 |
|
70 | - Made an internal change for TypeScript 4.4's imported function behavior with
|
71 | 'this' ([Issue 1408](https://github.com/oracle/node-oracledb/issues/1408)).
|
72 |
|
73 | ## node-oracledb v5.2.0 (7 Jun 2021)
|
74 |
|
75 | - Connection pool changes:
|
76 |
|
77 | - Pool attributes can be changed during application runtime with
|
78 | [`pool.reconfigure()`](https://oracle.github.io/node-oracledb/doc/api.html#poolreconfigure).
|
79 | This lets properties such as the pool size be changed dynamically instead
|
80 | of having to restart the application or create a new pool.
|
81 |
|
82 | - Formalized pool statistics with the addition of a pool creation attribute
|
83 | [`enableStatistics`](https://oracle.github.io/node-oracledb/doc/api.html#createpoolpoolattrsstats),
|
84 | and with the functions
|
85 | [`pool.getStatistics()`](https://oracle.github.io/node-oracledb/doc/api.html#poolgetstatistics)
|
86 | and
|
87 | [`pool.logStatistics()`](https://oracle.github.io/node-oracledb/doc/api.html#poollogstatistics).
|
88 | Pool statistics can be be enabled, disabled, or reset with
|
89 | `pool.reconfigure()`. The older `_enableStats` attribute and
|
90 | `_logStats()` function are aliases for the new functionality but will be
|
91 | removed in a future version of node-oracledb.
|
92 |
|
93 | - Added `currentQueueLength` and `poolMaxPerShard` to the pool statistics.
|
94 |
|
95 | - Fixed connection pool statistics "minimum time in queue" and "maximum
|
96 | time in queue" calculations.
|
97 |
|
98 | - Fixed the statement cache size set for the initial `poolMin` connections
|
99 | created by `oracledb.createPool()`.
|
100 |
|
101 | - Fixed `queueTimeout` of 0 to allow pool connection requests to be queued
|
102 | indefinitely. See [Issue
|
103 | 1338](https://github.com/oracle/node-oracledb/issues/1338).
|
104 |
|
105 | - Concurrent operations on a single connection are now queued in the JavaScript
|
106 | layer, which can help reduce thread usage for applications that are unable to
|
107 | do their own queuing. A new
|
108 | [`oracledb.errorOnConcurrentExecute`](https://oracle.github.io/node-oracledb/doc/api.html#propdberrconexecute)
|
109 | property can be used during development to throw an error if concurrent
|
110 | operations are attempted on any single connection.
|
111 |
|
112 | - Enhanced dead connection detection. If an Oracle Database error indicates
|
113 | that a connection is no longer usable, the error `DPI-1080: connection was
|
114 | closed by ORA-%d` is now returned. The `%d` will be the Oracle error causing
|
115 | the connection to be closed. Using the connection after this will give
|
116 | `DPI-1010: not connected`. This behavior also applies for
|
117 | [`oracle.callTimeout`](https://oracle.github.io/node-oracledb/doc/api.html#propconncalltimeout)
|
118 | errors that result in an unusable connection. ([ODPI-C
|
119 | change](https://github.com/oracle/odpi/commit/072739355b8b9d5a4bba3583a79ed53deb15907e)).
|
120 |
|
121 | - Enhanced
|
122 | [`getRows()`](https://oracle.github.io/node-oracledb/doc/api.html#getrows) to
|
123 | be able to return all rows in one call.
|
124 |
|
125 | - Added `username` as an alias for `user` in connection properties.
|
126 |
|
127 | - Enhanced the numeric suffix feature (for duplicate SELECT column names when
|
128 | using `oracledb.OUT_FORMAT_OBJECT` mode) to also support nested cursors and
|
129 | REF CURSORS.
|
130 |
|
131 | - Added support for caching the database version number in pooled connections
|
132 | with Oracle Client 19 and earlier (later Oracle Clients handle this caching
|
133 | internally). This optimization eliminates a round-trip previously often
|
134 | required when reusing a pooled connection. ([ODPI-C
|
135 | change](https://github.com/oracle/odpi/commit/87268e832363083c1e228922ee11e2fa7aaf8880)).
|
136 |
|
137 | - [SODA](https://oracle.github.io/node-oracledb/doc/api.html#sodaoverview) changes:
|
138 |
|
139 | - Added [SODA metadata
|
140 | cache](https://oracle.github.io/node-oracledb/doc/api.html#sodamdcache)
|
141 | support to connection pools. This significantly improves the performance
|
142 | of opening collections. Caching is available when using Oracle Client
|
143 | version 21.3 (or later). It is also available in Oracle Client 19 from
|
144 | 19.11 onwards.
|
145 |
|
146 | - Added a SODA
|
147 | [`hint()`](https://oracle.github.io/node-oracledb/doc/api.html#sodaoperationclasshint)
|
148 | SodaOperation method and equivalent hint option to
|
149 | `sodaCollection.insertManyAndGet()`, `sodaCollection.insertOneAndGet()`,
|
150 | and `sodaCollection.saveAndGet()` to allow monitoring and passing hints.
|
151 |
|
152 | - Fixed crashes seen with Worker threads ([ODPI-C
|
153 | change](https://github.com/oracle/odpi/commit/09da0065409702cc28ba622951ca999a6b77d0e9)).
|
154 |
|
155 | - Fixed a failure when using JavaScript functions on OUT bind variables from
|
156 | `executeMany()` that require the connection, for example accessing database
|
157 | objects or streaming LOBs.
|
158 |
|
159 | - Fixed use of `oracledb.NCLOB` in `fetchAsString`. See [Issue
|
160 | 1351](https://github.com/oracle/node-oracledb/issues/1351).
|
161 |
|
162 | - Test and documentation improvements.
|
163 |
|
164 | ## node-oracledb v5.1.0 (8 Dec 2020)
|
165 |
|
166 | - Added
|
167 | [`oracledb.dbObjectAsPojo`](https://oracle.github.io/node-oracledb/doc/api.html#propdbobjpojo)
|
168 | and a `connection.execute()` option
|
169 | [`dbObjectAsPojo`](https://oracle.github.io/node-oracledb/doc/api.html#propexecobjpojo).
|
170 | These specify whether Oracle Database named objects or collections that are
|
171 | queried should be returned to the application as "plain old JavaScript
|
172 | objects" or kept as database-backed objects. This option also applies to
|
173 | output `BIND_OUT` bind variables.
|
174 |
|
175 | - Enhanced JSON support to work with Oracle Database 21's native JSON storage
|
176 | format. A new type `oracledb.DB_TYPE_JSON` was added.
|
177 |
|
178 | - Numeric suffixes are now added to duplicate SELECT column names when using
|
179 | `oracledb.OUT_FORMAT_OBJECT` mode, allowing all columns to be represented in
|
180 | the JavaScript object.
|
181 |
|
182 | - The value of `prefetchRows` set when getting a REF CURSOR as a BIND_OUT
|
183 | parameter is now used in the subsequent data retrieval from that cursor.
|
184 |
|
185 | - Fixed a compatibility regression affecting SODA "get" operations using older
|
186 | Oracle Client releases.
|
187 |
|
188 | - Fixed a memory leak getting attributes of objects or elements of collections
|
189 | that are themselves objects.
|
190 |
|
191 | ## node-oracledb v5.0.0 (29 Jun 2020)
|
192 |
|
193 | - Stated compatibility is now for Node.js 10.16+, 12 and 14.
|
194 |
|
195 | - Installation Changes:
|
196 |
|
197 | - Added an
|
198 | [`oracledb.initOracleClient()`](https://oracle.github.io/node-oracledb/doc/api.html#odbinitoracleclient)
|
199 | function to specify the directories that the Oracle Client libraries and
|
200 | optional Oracle configuration files are in, and to specify other
|
201 | configuration values, see [Initializing
|
202 | Node-oracledb](https://oracle.github.io/node-oracledb/doc/api.html#initnodeoracledb).
|
203 |
|
204 | - macOS Instant Client installation instructions have necessarily changed to
|
205 | work with recent Node.js versions. Instant Client libraries in `~/lib`
|
206 | will no longer be used. See
|
207 | [INSTALL](https://oracle.github.io/node-oracledb/INSTALL.html#instosx).
|
208 |
|
209 | - Fixed how the module binary is found when using Webpack.
|
210 |
|
211 | Webpack users should copy the node-oracledb binary into a sub-directory of
|
212 | the output directory. For example if the output directory is `dist`, then
|
213 | the binary should be in
|
214 | `dist/node_modules/oracledb/build/Release/oracledb-5.0.0-linux-x64.node`.
|
215 | A copy plugin in `webpack.config.js` can do this by copying
|
216 | `node_modules/oracledb/build` to a directory of that same name. See
|
217 | [Issue 1156](https://github.com/oracle/node-oracledb/issues/1156).
|
218 |
|
219 | - Updated [Docker installation
|
220 | documentation](https://oracle.github.io/node-oracledb/INSTALL.html#docker)
|
221 | for changes to the Node.js image ([Issue #1201](https://github.com/oracle/node-oracledb/issues/1201)).
|
222 |
|
223 | - Removed use of git in `package/buildpackage.js` making offline builds cleaner
|
224 | for self-hosting node-oracledb.
|
225 |
|
226 | - Connection Pool changes:
|
227 |
|
228 | - Added
|
229 | [`oracledb.queueMax`](https://oracle.github.io/node-oracledb/doc/api.html#propdbqueuemax)
|
230 | and equivalent `createPool()` option attribute
|
231 | [`queueMax`](https://oracle.github.io/node-oracledb/doc/api.html#createpoolpoolattrsqueuemax)
|
232 | to limit the number of pending `pool.getConnection()` calls in the pool
|
233 | queue ([Issue #514](https://github.com/oracle/node-oracledb/issues/514)).
|
234 |
|
235 | - Made an internal change to use an Oracle Client 20 Session Pool feature
|
236 | allowing node-oracledb connection pools to shrink to `poolMin` even when
|
237 | there is no pool activity.
|
238 |
|
239 | - Added
|
240 | [`oracledb.prefetchRows`](https://oracle.github.io/node-oracledb/doc/api.html#propdbprefetchrows)
|
241 | and equivalent `execute()` option attribute
|
242 | [`prefetchRows`](https://oracle.github.io/node-oracledb/doc/api.html#propexecprefetchrows)
|
243 | for query row fetch tuning to optimize round-trips, or disable prefetching
|
244 | altogether. See [Tuning Fetch
|
245 | Performance](https://oracle.github.io/node-oracledb/doc/api.html#rowfetching).
|
246 |
|
247 | - Added support for queries containing cursor expressions that return [nested
|
248 | cursors](https://oracle.github.io/node-oracledb/doc/api.html#nestedcursors).
|
249 |
|
250 | - Added database instance startup and shutdown functions
|
251 | [`oracledb.startup()`](https://oracle.github.io/node-oracledb/doc/api.html#odbstartup),
|
252 | [`oracledb.shutdown()`](https://oracle.github.io/node-oracledb/doc/api.html#odbshutdown),
|
253 | [`connection.startup()`](https://oracle.github.io/node-oracledb/doc/api.html#constartup),
|
254 | and
|
255 | [`connection.shutdown()`](https://oracle.github.io/node-oracledb/doc/api.html#conshutdown).
|
256 |
|
257 | - Added a new constant
|
258 | [`oracledb.SYSPRELIM`](https://oracle.github.io/node-oracledb/doc/api.html#oracledbconstantsprivilege)
|
259 | to allow preliminary database connections, such as required when starting a
|
260 | database.
|
261 |
|
262 | - Added support for ResultSet IN binds to PL/SQL REF CURSOR parameters.
|
263 |
|
264 | - Added support for PL/SQL Collection Associative Arrays "index-by tables" of
|
265 | the following types: `oracledb.DB_TYPE_NVARCHAR`, `oracledb.DB_TYPE_CHAR`,
|
266 | `oracledb.DB_TYPE_NCHAR`, `oracledb.DB_TYPE_BINARY_FLOAT`,
|
267 | `oracledb.DB_TYPE_BINARY_DOUBLE`, `oracledb.DB_TYPE_DATE`,
|
268 | `oracledb.DB_TYPE_TIMESTAMP`, `oracledb.DB_TYPE_TIMESTAMP_LTZ`,
|
269 | `oracledb.DB_TYPE_TIMESTAMP_TZ` and `oracledb.DB_TYPE_RAW`.
|
270 |
|
271 | - Refactored the module's JavaScript code layer to use async/await.
|
272 |
|
273 | - Removed support for custom Promise libraries. Use the native Node.js Promise
|
274 | implementation instead. This change was necessitated by the refactored
|
275 | JavaScript implementation.
|
276 |
|
277 | - NJS-005 and NJS-009 are now passed through the callback (if one is used).
|
278 |
|
279 | - Fixed a segfault that occurred when binding a database object IN/OUT without
|
280 | providing the database object class.
|
281 |
|
282 | - Fixed OUT binds of type `oracledb.DB_TYPE_DATE`, `oracledb.DB_TYPE_TIMESTAMP`
|
283 | and `oracledb.DB_TYPE_TIMESTAMP_TZ` to correctly return Dates.
|
284 |
|
285 | - [SODA](https://oracle.github.io/node-oracledb/doc/api.html#sodaoverview) changes:
|
286 |
|
287 | - The value of `oracledb.fetchArraySize` now tunes SODA `getCursor()` and
|
288 | `getDocuments()` performance when using Oracle Client 19.5. Added the
|
289 | SODA `find()` non-terminal function
|
290 | [`fetchArraySize()`](https://oracle.github.io/node-oracledb/doc/api.html#sodaoperationclassfetcharraysize)
|
291 | to tune individual `find()` operations.
|
292 |
|
293 | - Added Oracle Database 20c SODA 'upsert' functions
|
294 | [`sodaCollection.save()`](https://oracle.github.io/node-oracledb/doc/api.html#sodacollsave)
|
295 | and
|
296 | [`sodaCollection.saveAndGet()`](https://oracle.github.io/node-oracledb/doc/api.html#sodacollsaveandget).
|
297 |
|
298 | - Added Oracle Database 20c SODA function
|
299 | [`sodaCollection.truncate()`](https://oracle.github.io/node-oracledb/doc/api.html#sodacolltruncate).
|
300 |
|
301 | - Lob Changes:
|
302 |
|
303 | - Fixed Lob class
|
304 | [`lob.type`](https://oracle.github.io/node-oracledb/doc/api.html#proplobtype)
|
305 | and
|
306 | [`metaData.fetchType`](https://oracle.github.io/node-oracledb/doc/api.html#execmetadata)
|
307 | when streaming NCLOB data. They are now `oracledb.NCLOB` instead of
|
308 | `oracledb.CLOB`.
|
309 |
|
310 | - Fixed `Lob.destroy()` so it does not call the old `Lob.close()` method, which
|
311 | emits a duplicate close event.
|
312 |
|
313 | - Lobs being streamed to are now correctly destroyed on error.
|
314 |
|
315 | - Made an internal change to use an Oracle Client 20 feature to avoid a
|
316 | round-trip when accessing
|
317 | [`connection.oracleServerVersion`](https://oracle.github.io/node-oracledb/doc/api.html#propconnoracleserverversion)
|
318 | or [`connection.oracleServerVersionString`](https://oracle.github.io/node-oracledb/doc/api.html#propconnoracleserverversionstring)
|
319 | for the first time.
|
320 |
|
321 | - Updated examples and documentation to make more use of Node.js 8's Stream
|
322 | `destroy()` method, allowing resources to be freed early.
|
323 |
|
324 | - Test and documentation improvements.
|
325 |
|
326 | ## node-oracledb v4.2.0 (24 Jan 2020)
|
327 |
|
328 | - Added support for binding using the node-oracledb [Database Type
|
329 | Constants](https://oracle.github.io/node-oracledb/doc/api.html#oracledbconstantsdbtype)
|
330 | `DB_TYPE_DATE`, `DB_TYPE_CHAR`, `DB_TYPE_NCHAR`, `DB_TYPE_NVARCHAR`,
|
331 | `DB_TYPE_NCLOB`, `DB_TYPE_BINARY_DOUBLE`, `DB_TYPE_BINARY_FLOAT`,
|
332 | `DB_TYPE_BINARY_INTEGER`, `DB_TYPE_TIMESTAMP`, and `DB_TYPE_TIMESTAMP_TZ`.
|
333 |
|
334 | - Added support for binding using `DB_TYPE_BOOLEAN` (Diego Arce).
|
335 |
|
336 | - Added support for creating temporary NCLOBS with
|
337 | [`connection.createLob(oracledb.NCLOB)`](https://oracle.github.io/node-oracledb/doc/api.html#connectioncreatelob).
|
338 |
|
339 | - Added [client initiated
|
340 | connection](https://oracle.github.io/node-oracledb/doc/api.html#consubscribeoptclientinitiated)
|
341 | support for Continuous Query Notification (CQN) and other subscription based
|
342 | notifications.
|
343 |
|
344 | - Added
|
345 | [`result.lastRowid`](https://oracle.github.io/node-oracledb/doc/api.html#execlastrowid)
|
346 | to `execute()`. It contains the ROWID of the last row affected by an INSERT,
|
347 | UPDATE, DELETE or MERGE statement.
|
348 |
|
349 | - Changed the Error object
|
350 | [`offset`](https://oracle.github.io/node-oracledb/doc/api.html#properroffset)
|
351 | to be 32-bit, allowing the
|
352 | [`batchErrors`](https://oracle.github.io/node-oracledb/doc/api.html#executemanyoptbatcherrors)
|
353 | mode of `executeMany()` to show row `offset` values up to (2^32)-1 ([ODPI-C
|
354 | change](https://github.com/oracle/odpi/commit/294d5966cd513d0c29fdeec3bbbdfad376f81d4f)).
|
355 |
|
356 | - Avoid intermediate conversion from the database national character set to the
|
357 | database character set when querying NCLOB columns as String.
|
358 |
|
359 | - Fixed various execution failures with Node.js 13.2 due to a Node.js NULL pointer behavior change ([ODPI-C
|
360 | change](https://github.com/oracle/odpi/commit/7693865bb6a98568546aa319cc0fdb9e208cf9d4)).
|
361 |
|
362 | - Fixed connection pooling so sharded `pool.getConnection()` requests respect
|
363 | `queueTimeout` when `poolMaxPerShard` has been reached.
|
364 |
|
365 | - Added a directory to the binary module search to help Webpack use, though a
|
366 | copy plugin is still required, see
|
367 | [here](https://github.com/oracle/node-oracledb/issues/1156#issuecomment-571554125).
|
368 |
|
369 | - Fixed some static code analysis warnings.
|
370 |
|
371 | - Updated Lob streaming documentation and examples. Applications should use the
|
372 | `end` event (for readable streams) and `finish` event (for writeable streams)
|
373 | instead of the `close` event. The node-oracledb `lob.close()` method is now
|
374 | deprecated in favor of the more functional Node.js 8 Stream `destroy()`
|
375 | method.
|
376 |
|
377 | - Test and documentation improvements.
|
378 |
|
379 | ## node-oracledb v4.1.0 (26 Nov 2019)
|
380 |
|
381 | - Added end-to-end tracing attributes
|
382 | [`connection.clientInfo`](https://oracle.github.io/node-oracledb/doc/api.html#propconnclientinfo)
|
383 | and [`connection.dbOp`](https://oracle.github.io/node-oracledb/doc/api.html#propconndbop).
|
384 |
|
385 | - Added support for [Oracle
|
386 | Sharding](https://oracle.github.io/node-oracledb/doc/api.html#sharding).
|
387 |
|
388 | - Fixed a [regression](https://github.com/oracle/node-oracledb/issues/1152) when
|
389 | binding dates with alternative JavaScript frameworks.
|
390 |
|
391 | - Fixed "NJS-024: memory allocation failed" errors seen on AIX.
|
392 |
|
393 | - Fixed a JavaScript memory leak when getting Oracle Database named type
|
394 | information, such as with `getDbObjectClass()`.
|
395 |
|
396 | - Corrected support for PLS_INTEGER and BINARY_INTEGER types when used in PL/SQL
|
397 | records ([ODPI-C
|
398 | change](https://github.com/oracle/odpi/commit/4e80a81257ce6e1066f4f6242fed533eaed45753)).
|
399 |
|
400 | - Corrected `queryStream()` documentation and examples to show the `'close'`
|
401 | event should be received before closing connections. If connections are
|
402 | closed on the `'end'` event, then significant C layer memory may be [held
|
403 | open](https://github.com/oracle/node-oracledb/issues/1173) until the garbage
|
404 | collector frees the associated JavaScript resource.
|
405 |
|
406 | - Reverted the
|
407 | [`events`](https://oracle.github.io/node-oracledb/doc/api.html#propdbevents)
|
408 | default back to pre-4.0 behavior due to connection creation timeouts in some
|
409 | environments. It is now *false* again.
|
410 |
|
411 | - Error changes:
|
412 |
|
413 | - Ensured that `queryStream()` errors raised during close are emitted in the
|
414 | `'error'` event.
|
415 |
|
416 | - Enforce only one of `connectString` or `connectionString` being used for
|
417 | connection.
|
418 |
|
419 | - Improved some error messages.
|
420 |
|
421 | - Refactored implementation of function argument checking.
|
422 |
|
423 | - Test and documentation improvements.
|
424 |
|
425 | ## node-oracledb v4.0.1 (19 Aug 2019)
|
426 |
|
427 | - Fixed a regression causing a segfault when setting `oracledb.connectionClass`
|
428 | and not creating a pool ([ODPI-C change](https://github.com/oracle/odpi/commit/f945355f3e58e7337dd798cba0404ab5755f0692)).
|
429 |
|
430 | - Fixed a regression when enumerable properties were added to
|
431 | `Object.prototype`.
|
432 | ([#1129](https://github.com/oracle/node-oracledb/issues/1129)).
|
433 |
|
434 | - Fixed a regression with missing `metaData` from `connection.getStatementInfo()`
|
435 |
|
436 | - Fixed crashes with spurious subscription (e.g. CQN) notifications, and when
|
437 | unsubscribing an invalid subscription.
|
438 |
|
439 | - A more meaningful error is returned when calling `connection.subscribe()` with
|
440 | SQL that is not a SELECT statement ([ODPI-C
|
441 | change](https://github.com/oracle/odpi/commit/f95846bef6cf70e8114cbbb59ca04fbe2e7a3903))
|
442 |
|
443 | - Fixed passing DbObjects and JavaScript objects as the `payload` attribute for
|
444 | AQ message enqueues when using an object queue.
|
445 |
|
446 | - Made the error message for AQ `queue.deqMany(0)` the same NJS-005 given when a
|
447 | negative number is used.
|
448 |
|
449 | - Fixed a compilation warning seen on Windows.
|
450 |
|
451 | - Improve portability of buildbinary.js, a package creation script ([#1129](https://github.com/oracle/node-oracledb/issues/1129)).
|
452 |
|
453 | ## node-oracledb v4.0.0 (25 Jul 2019)
|
454 |
|
455 | - Refactored the node-oracledb implementation to use
|
456 | [N-API](https://nodejs.org/api/n-api.html) in place of
|
457 | [NAN](https://github.com/nodejs/nan).
|
458 | - Node-oracledb 4 requires Node.js 8.16 or Node.js 10.16, or higher. Node.js 8.16, 10.16, 11.12 and 12 contain an important N-API performance fix.
|
459 | - N-API allows node-oracledb binaries to be portable between Node.js versions on a given operating system, subject to N-API compatibility. Node-oracledb uses N-API version 4.
|
460 | - Oracle Client libraries are still required at runtime. These can be from Oracle Instant Client, the full Oracle Client, or an Oracle Database installation.
|
461 | - The string representation of classes has changed to `[object Object]` as a consequence of using N-API. Use `Object.getPrototypeOf()` to get class information.
|
462 | - The C compiler required for building from source code no longer needs C++11 compatibility. The node-oracledb source code is now pure C.
|
463 |
|
464 | - Added support for querying and binding [Oracle Database Objects and
|
465 | Collections](https://oracle.github.io/node-oracledb/doc/api.html#objects).
|
466 |
|
467 | - Added support for [Oracle Advanced Queuing (AQ)](https://oracle.github.io/node-oracledb/doc/api.html#aq):
|
468 |
|
469 | - Added support for "RAW" queues, allowing String and Buffer
|
470 | messages to be used.
|
471 |
|
472 | - Added support for object queues, allowing Oracle Database object
|
473 | messages to be used.
|
474 |
|
475 | - Added support for notifications with `oracledb.SUBSCR_NAMESPACE_AQ`.
|
476 |
|
477 | - Added support for [Implicit
|
478 | Results](https://oracle.github.io/node-oracledb/doc/api.html#implicitresults),
|
479 | allowing query results to be returned from PL/SQL without needing
|
480 | parameters or bind variables.
|
481 |
|
482 | - Added asynchronous method
|
483 | [`lob.getData()`](https://oracle.github.io/node-oracledb/doc/api.html#lobgetdata)
|
484 | to return all data from a Lob readable stream.
|
485 |
|
486 | - Added a new `dbTypeName` attribute to [`extendedMetaData`
|
487 | output](https://oracle.github.io/node-oracledb/doc/api.html#execmetadata).
|
488 | It contains the name of the type the column has in the database,
|
489 | such as "VARCHAR2".
|
490 |
|
491 | - Enhanced BIND_IN of PL/SQL Collection Associative Arrays (Index-by)
|
492 | so a bind definition object can be omitted (see
|
493 | [#1039](https://github.com/oracle/node-oracledb/issues/1039)).
|
494 |
|
495 | - Continuous Query Notification (CQN) Improvements:
|
496 |
|
497 | - Added support for getting the [registration
|
498 | id](https://oracle.github.io/node-oracledb/doc/api.html#consubscribecallback)
|
499 | for CQN subscriptions.
|
500 |
|
501 | - Added support and message type constants for database startup
|
502 | and shutdown events.
|
503 |
|
504 | - Fixed a crash that occurred when unsubscribing from CQN while
|
505 | notifications were ongoing ([ODPI-C
|
506 | change](https://github.com/oracle/odpi/commit/b96b11b7fe58f32f011c7f7419555e40268d5bf4)).
|
507 |
|
508 | - Added
|
509 | [`connection.currentSchema`](https://oracle.github.io/node-oracledb/doc/api.html#propconncurrentschema)
|
510 | for setting the schema qualifier to be used when a qualifier is
|
511 | omitted in SQL statements. This is an efficient alternative to
|
512 | `ALTER SESSION SET CURRENT_SCHEMA`.
|
513 |
|
514 | - Renumbered [node-oracledb Type
|
515 | Constants](https://oracle.github.io/node-oracledb/doc/api.html#oracledbconstantsnodbtype)
|
516 | and [Oracle Database Type
|
517 | Constants](https://oracle.github.io/node-oracledb/doc/api.html#oracledbconstantsdbtype)
|
518 | to allow for future enhancements.
|
519 |
|
520 | - Introduced [Query `outFormat`
|
521 | Constants](https://oracle.github.io/node-oracledb/doc/api.html#oracledbconstantsoutformat)
|
522 | `oracledb.OUT_FORMAT_ARRAY` and `oracledb.OUT_FORMAT_OBJECT`. The
|
523 | previous constants `oracledb.ARRAY` and `oracledb.OBJECT` are
|
524 | deprecated but still usable.
|
525 |
|
526 | - Improved the performance of [`oracledb.outFormat`](#propdboutformat) mode `oracledb.OUT_FORMAT_OBJECT`.
|
527 |
|
528 | - Improved the fetch performance of LOBs in some cases by reducing the
|
529 | number of round-trips required between node-oracledb and Oracle
|
530 | Database ([ODPI-C
|
531 | change](https://github.com/oracle/odpi/commit/58e6a07ff5bb428a09068456ef5231884fcb77db)).
|
532 |
|
533 | - Change the
|
534 | [`events`](https://oracle.github.io/node-oracledb/doc/api.html#propdbevents)
|
535 | default to *true*.
|
536 |
|
537 | - Updated the JavaScript syntax in class implementations.
|
538 |
|
539 | - Class methods are now configurable. For example via
|
540 | `Object.defineProperty`.
|
541 |
|
542 | - Error handling changes:
|
543 |
|
544 | - Corrected the error message returned when invalid types are used for
|
545 | boolean options.
|
546 |
|
547 | - Standardized error messages for incorrect function parameters. Now
|
548 | NJS-005 and NJS-007 are used in place of NJS-006 and NJS-008,
|
549 | respectively.
|
550 |
|
551 | - Exceptions from user getters for parameter object attribute access
|
552 | are now passed through the error callback.
|
553 |
|
554 | - The NJS-014 error when setting a read-only property was replaced
|
555 | with a standard JavaScript message.
|
556 |
|
557 | - When passing 0 or a negative value for the number of iterations to
|
558 | `connection.executeMany()`, errors now occur through the error callback.
|
559 |
|
560 | - Some error numbers may have changed due to code refactoring.
|
561 | Some message text was updated.
|
562 |
|
563 | - [SODA](https://oracle.github.io/node-oracledb/doc/api.html#sodaoverview) changes:
|
564 |
|
565 | - Added SODA bulk insert methods
|
566 | [`sodaCollection.insertMany()`](https://oracle.github.io/node-oracledb/doc/api.html#sodacollinsertmany)
|
567 | and
|
568 | [`sodaCollection.insertManyAndGet()`](https://oracle.github.io/node-oracledb/doc/api.html#sodacollinsertmanyandget).
|
569 |
|
570 | - Document that the general SODA API is out of Preview status when
|
571 | using Oracle Client 18.5 or Oracle Client 19.3, or later. The
|
572 | new node-oracledb 4.0 methods `sodaCollection.insertMany()` and
|
573 | `sodaCollection.insertManyAndGet()` are in Preview status and
|
574 | should not be used in production.
|
575 |
|
576 | - Corrected the type of
|
577 | [`sodaCollection.metaData`](https://oracle.github.io/node-oracledb/doc/api.html#sodacollectionpropmetadata).
|
578 | It is now an Object, as was documented.
|
579 |
|
580 | - Corrected processing of the `force` option in SODA [`sodaCollection.dropIndex()`](https://oracle.github.io/node-oracledb/doc/api.html#sodacolldropindex).
|
581 |
|
582 | - Corrected the error message parameter number for SODA
|
583 | [`sodaDatabase.getCollectionNames()`](https://oracle.github.io/node-oracledb/doc/api.html#sodadbgetcollectionnames).
|
584 |
|
585 | - Fixed writing of multi-byte characters to CLOBs when multiple writes
|
586 | are required.
|
587 |
|
588 | - Fixed a crash occurring when draining the connection pool ([ODPI-C
|
589 | change](https://github.com/oracle/odpi/commit/https://github.com/oracle/odpi/commit/7666dc3208087383f7f0f5e49c1ee423cb154997)).
|
590 |
|
591 | - Corrected `pool.status` to be read-only, as was documented.
|
592 |
|
593 | - Updated documentation.
|
594 |
|
595 | - Added new tests.
|
596 |
|
597 | - Added new examples. Updated existing examples to the Node.js 8 Async/Await style of programming.
|
598 |
|
599 | ## node-oracledb v3.1.2 (22 Feb 2019)
|
600 |
|
601 | - Fixed a bug causing CQN crashes when multiple queries are registered
|
602 | ([ODPI-C change](https://github.com/oracle/odpi/issues/96)).
|
603 |
|
604 | - Fixed a CQN race condition to prevent a crash when a multiple
|
605 | `connection.unsubscribe()` calls are made on the same subscription.
|
606 |
|
607 | - Improved validation of `executeMany()` arguments to prevent a crash.
|
608 |
|
609 | - Standardized error message for SODA `createCollection()` with
|
610 | invalid metadata.
|
611 |
|
612 | - Corrected the DPI-1050 error text displayed when the Oracle Client
|
613 | libraries are too old ([ODPI-C change](https://github.com/oracle/odpi/commit/d2fea3801286d054e18b0102e60a69907b7faa9a)).
|
614 |
|
615 | - Allow `npm run buildbinary` to succeed even if `git` is not
|
616 | available.
|
617 |
|
618 | - Use a relative URL for the ODPI-C submodule to make cloning from
|
619 | oss.oracle.com also use ODPI-C from oss.oracle.com
|
620 |
|
621 | ## node-oracledb v3.1.1 (25 Jan 2019)
|
622 |
|
623 | - Rebuild npm package to resolve Linux binary build issue.
|
624 |
|
625 | ## node-oracledb v3.1.0 (22 Jan 2019)
|
626 |
|
627 | - Support tagging of pooled connections when releasing them to the
|
628 | connection pool. When using Oracle Client libraries 12.2 or later,
|
629 | Oracle's multi-property tagging is used, and a PL/SQL "session"
|
630 | state fix-up procedure can be called when a requested connection tag
|
631 | does not match the actual tag. This removes the need to reset
|
632 | connection session state after every `pool.getConnection()` call.
|
633 |
|
634 | - Support a Node.js callback function for connection pools. It is
|
635 | called when a connection is newly created and has never been
|
636 | acquired from the pool before, or when a requested connection tag
|
637 | does not match the actual tag.
|
638 |
|
639 | - Support explicit dropping of connections from connection pools.
|
640 |
|
641 | - Support passing parameters in `oracledb.getConnection()` (such as
|
642 | `poolAlias`, `tag` and proxy authentication credentials) for use
|
643 | with the pool cache.
|
644 |
|
645 | - Support the combination of a user proxy and external authentication
|
646 | with standalone connections (ODPI-C change).
|
647 |
|
648 | - Defer initialization of the Oracle Client libraries until the first
|
649 | use of `oracledb.getConnection()`, `oracledb.createPool()`,
|
650 | `oracledb.oracleClientVersion`, or
|
651 | `oracledb.oracleClientVersionString`.
|
652 |
|
653 | If the Oracle Client cannot be loaded, `getConnection()` and
|
654 | `createPool()` will return an error via the callback. Accessing
|
655 | `oracledb.oracleClientVersion` or
|
656 | `oracledb.oracleClientVersionString` with throw an error.
|
657 |
|
658 | This change allows `require('oracledb')` to always succeed, allowing
|
659 | node-oracledb constants and other attributes to be accessed even if
|
660 | the Oracle Client is not installed.
|
661 |
|
662 | This makes it easier to include node-oracledb in multi-database
|
663 | applications where not all users will be accessing Oracle Database.
|
664 |
|
665 | It allows code generation tools to access node-oracledb constants
|
666 | without needing Oracle Client installed (see
|
667 | [#983](https://github.com/oracle/node-oracledb/issues/983)).
|
668 |
|
669 | Applications now have more scope to alter Oracle environment
|
670 | variables referenced by the Oracle Client layer. Note it is still
|
671 | recommended that the environment be set before Node.js is executed
|
672 | due to potential for confusion or unexpected behavior due to
|
673 | order-of-execution issues.
|
674 |
|
675 | - Support fetching XMLTYPE columns in queries. They will return as
|
676 | String limited to the VARCHAR2 length.
|
677 |
|
678 | - Updated install processes by bundling all pre-built binaries into
|
679 | the https://www.npmjs.com/package/oracledb package, removing the
|
680 | need for a separate binary package download from GitHub. At runtime
|
681 | an appropriate binary is loaded by `require()`, if it exists,
|
682 | allowing one `node_modules/oracledb` install to be usable in
|
683 | different environments.
|
684 |
|
685 | Source code is no longer included in the npm package. It is still
|
686 | available from GitHub and oss.oracle.com.
|
687 |
|
688 | The steps for self-hosting a node-oracledb package have changed, see
|
689 | [INSTALL](https://oracle.github.io/node-oracledb/INSTALL.html#selfhost).
|
690 |
|
691 | - Fixed a crash with high frequency notifications from CQN
|
692 | ([#1009](https://github.com/oracle/node-oracledb/issues/1009)).
|
693 |
|
694 | - Fixed `poolPingInterval` with Oracle client libraries 12.2 or later
|
695 | (ODPI-C change).
|
696 |
|
697 | - Fixed an issue with `poolPingInterval` that could cause usable
|
698 | pooled connections to be unnecessarily dropped by
|
699 | `connection.close()`. (ODPI-C change).
|
700 |
|
701 | - Fixed a memory leak under certain cirumstances when pooled
|
702 | connections are released back to the pool. (ODPI-C change)
|
703 |
|
704 | - Display correct error message for SODA `createIndex()` when no
|
705 | parameter is passed.
|
706 |
|
707 | - Fixed some SODA stability issues (node-oracledb and ODPI-C changes).
|
708 |
|
709 | - Improved the statement error Allow List to avoid unnecessarily
|
710 | dropping statements from the statement cache (ODPI-C change).
|
711 |
|
712 | - Made internal changes to fix V8 deprecation compilation warnings
|
713 | with Node.js 10.12, and fixed other static analysis warnings.
|
714 |
|
715 | ## node-oracledb v3.0.1 (15 Nov 2018)
|
716 |
|
717 | - Improve validation for SODA `createDocument()` arguments.
|
718 |
|
719 | - Stated compatibility is now for Node.js 6, 8, 10, and 11.
|
720 |
|
721 | - Upgraded NAN dependency from 2.10 to 2.11.1.
|
722 |
|
723 | ## node-oracledb v3.0.0 (1 Oct 2018)
|
724 |
|
725 | - Added new APIs for Simple Oracle Document Access
|
726 | ([SODA](https://oracle.github.io/node-oracledb/doc/api.html#sodaoverview)),
|
727 | available when using Oracle Database 18.3 and Oracle client
|
728 | libraries version 18.3, or later.
|
729 |
|
730 | - Added a `drainTime` argument to
|
731 | [`pool.close()`](https://oracle.github.io/node-oracledb/doc/api.html#poolclose),
|
732 | allowing pools to be force-closed after a specified number of
|
733 | seconds. PR #950 (Danilo Silva).
|
734 |
|
735 | - Added a
|
736 | [`connection.callTimeout`](https://oracle.github.io/node-oracledb/doc/api.html#propconncalltimeout)
|
737 | property to interrupt long running database calls, available when
|
738 | using Oracle client libraries version 18.1, or later.
|
739 |
|
740 | - Added support for specifying the number of iterations to
|
741 | `executeMany()` instead of always requiring an input binds array.
|
742 | This is useful when there are no binds, or only OUT binds.
|
743 |
|
744 | - Added binary installer basic proxy authentication support. Reuse
|
745 | `npm config` proxy. PR #919 (Cemre Mengu).
|
746 |
|
747 | - Additionally enable `poolPingInterval` functionality when using
|
748 | Oracle client libraries 12.2, or later, to aid silent pool
|
749 | connection re-establishment after connections exceed database
|
750 | session resource limits (e.g. ORA-02396), or are explicitly closed
|
751 | by DBAs (e.g. ORA-00028). (ODPI-C change).
|
752 |
|
753 | - Removed the connection pool
|
754 | [`queueRequests`](https://oracle.github.io/node-oracledb/doc/api.html#propdbqueuerequests)
|
755 | property. Now `pool.getConnection()` calls are always queued if the
|
756 | pool is fully in use.
|
757 |
|
758 | - Altered the internal `pool.getConnection()` logic to work better
|
759 | with Oracle client 18 library pool changes and retain backward
|
760 | compatibility with older Oracle clients. This prevents
|
761 | `pool.getConnection()` returning ORA-24418 when the connection pool
|
762 | needs to grow and Oracle client 18 libraries are being used.
|
763 |
|
764 | - Unused properties in objects such as the `execute()` result are no
|
765 | longer set. Previously some were set to `undefined`.
|
766 |
|
767 | - On Windows, Oracle Client libraries in
|
768 | `node_modules\oracledb\build\Release` adjacent to the oracledb.node
|
769 | binary will now be used in preference to those in PATH. (ODPI-C
|
770 | change).
|
771 |
|
772 | - Change the binary package filename format from '...-node-vXX...' to
|
773 | to '...-node-abiXX...' to reduce Node version and ABI confusion.
|
774 |
|
775 | - Eliminated a memory leak when fetching LOBs and more than one
|
776 | internal fetch occurs.
|
777 |
|
778 | - Test updates.
|
779 |
|
780 | - Documentation updates, including an attribute type correction from
|
781 | PR #970 (Cemre Mengu)
|
782 |
|
783 | - Examples were added and updated.
|
784 |
|
785 | ## node-oracledb v2.3.0 (7 Jun 2018)
|
786 |
|
787 | - The stated compatibility is now for Node.js 6, 8, and 10 due to EOL
|
788 | of Node.js 4, and the release of Node 10.
|
789 |
|
790 | - Added support for heterogeneous connection pooling and for proxy
|
791 | support in connection pools. This allows each connection in the
|
792 | pool to use different database credentials.
|
793 |
|
794 | - Added support for Oracle Database Continuous Query Notifications
|
795 | (CQN), allowing JavaScript methods to be called when database
|
796 | changes are committed.
|
797 |
|
798 | - Added support to `fetchAsString` and `fetchInfo` for fetching RAW
|
799 | columns as STRING (hex-encoded).
|
800 |
|
801 | - Added Windows support for building binary packages for self-hosting
|
802 | on internal networks. PR #891 (Danilo Silva).
|
803 |
|
804 | - Eliminated a memory leak when binding LOBs as `oracledb.BIND_INOUT`.
|
805 |
|
806 | - Added an error message indicating that `batchErrors` and
|
807 | `dmlRowCounts` can only be used with INSERT, UPDATE, DELETE and
|
808 | MERGE statements.
|
809 |
|
810 | - Fixed a bug that caused `queryStream()` to emit multiple close
|
811 | events in Node.js 10.
|
812 |
|
813 | - Fixed a crash when getting the list of names for an undefined object
|
814 | with Node.js 6.
|
815 |
|
816 | - Remove deprecated `Buffer()` function in tests in order to eliminate
|
817 | a deprecation warning with Node.js 10.
|
818 |
|
819 | - Upgraded NAN dependency from 2.8 to 2.10.
|
820 |
|
821 | - Made some internal changes to fix NAN 2.10 deprecations: Replaced
|
822 | `v8::String::Utf8Value` with `Nan::Uft8String`. Replaced
|
823 | `MakeCallback()` with `runInAsyncScope()`.
|
824 |
|
825 | - Mention that `queueRequests` is deprecated and will be removed in a
|
826 | future version; connection pool queuing will always be enabled in
|
827 | that future version.
|
828 |
|
829 | ## node-oracledb v2.2.0 (3 Apr 2018)
|
830 |
|
831 | - Added
|
832 | [`oracledb.oracleClientVersionString`](https://oracle.github.io/node-oracledb/doc/api.html#propdboracleclientversionstring)
|
833 | and
|
834 | [`connection.oracleServerVersionString`](https://oracle.github.io/node-oracledb/doc/api.html#propconnoracleserverversionstring)
|
835 | to complement the existing numeric properties.
|
836 |
|
837 | - Added
|
838 | [`oracledb.edition`](https://oracle.github.io/node-oracledb/doc/api.html#propdbedition)
|
839 | to support Edition-Based Redefinition. This removes the need to use
|
840 | an `ALTER SESSION` command or `ORA_EDITION` environment variable.
|
841 |
|
842 | - Added
|
843 | [`oracledb.events`](https://oracle.github.io/node-oracledb/doc/api.html#propdbevents)
|
844 | to allow the Oracle client library to receive Oracle Database
|
845 | service events, such as FAN and RLB events. This removes the need
|
846 | to use an `oraaccess.xml` file to enable event handling.
|
847 |
|
848 | - Added
|
849 | [`connection.changePassword()`](https://oracle.github.io/node-oracledb/doc/api.html#changingpassword)
|
850 | for changing passwords, and also added support for changing the
|
851 | password during `oracledb.getConnection()`.
|
852 |
|
853 | - Added
|
854 | [`connection.executeMany()`](https://oracle.github.io/node-oracledb/doc/api.html#executemany)
|
855 | for efficient batch DML (e.g. INSERT, UPDATE and DELETE) and PL/SQL
|
856 | execution with multiple records.
|
857 |
|
858 | - Added
|
859 | [`connection.getStatementInfo()`](https://oracle.github.io/node-oracledb/doc/api.html#getstmtinfo)
|
860 | to find information about a SQL statement without executing it.
|
861 |
|
862 | - Added
|
863 | [`connection.ping()`](https://oracle.github.io/node-oracledb/doc/api.html#connectionping)
|
864 | to support system health checks.
|
865 |
|
866 | - Added support for binding RAW types into Buffers in DML RETURNING statements.
|
867 |
|
868 | - Created GitHub 'pages' for hosting documentation. See:
|
869 | - https://oracle.github.io/node-oracledb
|
870 | - https://oracle.github.io/node-oracledb/INSTALL.html
|
871 | - https://oracle.github.io/node-oracledb/doc/api.html
|
872 |
|
873 | - Simplified the binary installer messages to reduce user uncertainty.
|
874 |
|
875 | - Improved the text for the NJS-045 runtime loader failure error.
|
876 |
|
877 | - Made the implementations of `connection.close()` and `pool.close()`
|
878 | the primary code paths in place of their respective aliases
|
879 | `connection.release()` and `pool.terminate()`.
|
880 |
|
881 | - An empty object for `fetchInfo` no longer produces an error.
|
882 |
|
883 | - Updated database abstraction layer to ODPI-C 2.3
|
884 |
|
885 | - Fixed compilation warnings on Windows.
|
886 |
|
887 | - Updated the node-oracledb implementation to replace V8 deprecations.
|
888 |
|
889 | ## node-oracledb v2.1.2 (21 Feb 2018)
|
890 |
|
891 | - Fixed regression with end-to-end tracing attributes not being set.
|
892 |
|
893 | - Fix binary installer proxy 403 (Bruno Jouhier)
|
894 |
|
895 | ## node-oracledb v2.1.1 (16 Feb 2018)
|
896 |
|
897 | - Fixed regression with `queryStream()` in Node 4 & 6
|
898 | ([#847](https://github.com/oracle/node-oracledb/issues/847)).
|
899 |
|
900 | ## node-oracledb v2.1.0 (15 Feb 2018)
|
901 |
|
902 | - Added support for [privileged standalone
|
903 | connections](https://oracle.github.io/node-oracledb/doc/api.html#privconn):
|
904 | SYSDBA, SYSOPER, SYSASM, SYSBACKUP, SYSDG, SYSKM, and SYSRAC
|
905 |
|
906 | - Improved the
|
907 | [Error](https://oracle.github.io/node-oracledb/doc/api.html#properror)
|
908 | object with new `errorNum` and `offset` properties for Oracle
|
909 | errors.
|
910 |
|
911 | - Added new
|
912 | [`versionString`](https://oracle.github.io/node-oracledb/doc/api.html#propdbversionstring)
|
913 | and
|
914 | [`versionSuffix`](https://oracle.github.io/node-oracledb/doc/api.html#propdbversionsuffix)
|
915 | attributes to aid showing node-oracledb version and release status.
|
916 |
|
917 | - Added
|
918 | [`connectionString`](https://oracle.github.io/node-oracledb/doc/api.html#createpoolpoolattrsconnectstring)
|
919 | as an alias for `connectString` in `oracledb.createPool()` and
|
920 | `oracledb.getConnection()` (Sagie Gur-Ari).
|
921 |
|
922 | - Updated the ODPI-C layer:
|
923 | - Eliminate DPI-1054 errors, allowing connections to be closed when ResultSets and Lobs are open.
|
924 | - Avoid unnecessary roundtrips for rollbacks at connection close.
|
925 |
|
926 | - Replaced obsolete [NAN](https://github.com/nodejs/nan) API calls in
|
927 | internal implementation and fixed other static analysis warnings.
|
928 | This means node-oracledb 2.1 no longer builds with Node.js 0.10 or
|
929 | Node.js 0.12.
|
930 |
|
931 | - Improved [`queryStream()`](https://oracle.github.io/node-oracledb/doc/api.html#querystream) streaming:
|
932 |
|
933 | - Add support for the Stream `destroy()` method available with Node 8.
|
934 |
|
935 | - Simplified the internal implementation by reusing `ResultSet.getRow()`.
|
936 |
|
937 | - Fixed some timing and race issues.
|
938 |
|
939 | - Made sure the 'close' event is emitted after the 'end' event.
|
940 |
|
941 | - Simplified query direct fetch implementation and improved
|
942 | performance by reusing ResultSet code.
|
943 |
|
944 | - Exceptions are no longer raised when accessing attributes on closed
|
945 | Connections, Pools, Lobs or ResultSets.
|
946 |
|
947 | - ResultSets are now closed on error to free resources earlier.
|
948 |
|
949 | - Improved NJS-010 message content by adding the position and invalid
|
950 | data type number.
|
951 |
|
952 | - Fixed support for integers that are larger than Node.js's 32-bit
|
953 | integer is capable of handling.
|
954 |
|
955 | - Updated [INSTALL](https://oracle.github.io/node-oracledb/INSTALL.html)
|
956 | to mention:
|
957 | - The [yum.oracle.com](http://yum.oracle.com/oracle-linux-nodejs.html) Node.js RPM Packages for Oracle Linux
|
958 | - The [Oracle mirror](oss.oracle.com/git/oracle) of [github.com/oracle](https://github.com/oracle).
|
959 |
|
960 | - Correct the error message text when attempting to set `oracledb.oracleClientVersion`.
|
961 |
|
962 | ## node-oracledb v2.0.15 (15 Dec 2017) changes since node-oracledb version 1
|
963 |
|
964 | - Release testing is now done for Node.js 4, 6, 8 and 9.
|
965 |
|
966 | - Node-oracledb now uses the [ODPI-C](https://github.com/oracle/odpi)
|
967 | database abstraction library.
|
968 |
|
969 | - Upgraded [NAN](https://github.com/nodejs/nan) build dependency to 2.8.
|
970 |
|
971 | - Installation has significantly improved. Some pre-built binaries
|
972 | are available for convenience, or the add-on can be continue to built
|
973 | from source code. Refer to
|
974 | [INSTALL](https://oracle.github.io/node-oracledb/INSTALL.html).
|
975 |
|
976 | - Added utilities to /package for building binaries for
|
977 | distribution, and for installing them.
|
978 |
|
979 | - When building from source code:
|
980 | - Oracle header files are no longer needed.
|
981 | - The `OCI_LIB_DIR` and `OCI_INC_DIR` environment variables are not needed.
|
982 |
|
983 | - A single node-oracledb binary now works with any of the Oracle
|
984 | 11.2, 12.1 or 12.2 clients. This improves portability when the
|
985 | node-oracledb add-on is copied between machines. Applications
|
986 | should be tested with their target environment to make sure
|
987 | expected Oracle functionality is available.
|
988 |
|
989 | - At run time, users of macOS must put the Oracle client libraries
|
990 | in `~/lib` or `/usr/local/lib`. Linux users of Instant Client
|
991 | RPMs must always set `LD_LIBRARY_PATH` or use ldconfig - the
|
992 | previous RPATH linking option is not available. Other Linux users
|
993 | should continue to use `LD_LIBRARY_PATH` or ldconfig. Windows
|
994 | users should continue to put Oracle client libraries in `PATH`.
|
995 |
|
996 | - On non-Windows platforms, if Oracle client libraries are not
|
997 | located in the system library search path
|
998 | (e.g. `LD_LIBRARY_PATH`), then node-oracledb attempts to use
|
999 | libraries in `$ORACLE_HOME/lib`.
|
1000 |
|
1001 | - A new [Troubleshooting
|
1002 | section](https://oracle.github.io/node-oracledb/INSTALL.html#troubleshooting)
|
1003 | was add to INSTALL.
|
1004 |
|
1005 | - Improvements were made to `require('oracledb')` failure messages
|
1006 | to help users resolve problems.
|
1007 |
|
1008 | - Changed the installation message prefix in binding.gyp from
|
1009 | 'node-oracledb' to 'oracledb'.
|
1010 |
|
1011 | - Improved query handling:
|
1012 |
|
1013 | - Enhanced direct fetches to allow an unlimited number of rows to be
|
1014 | fetched. This occurs when `oracledb.maxRows = 0`
|
1015 |
|
1016 | - Changed the default value of `oracledb.maxRows` to 0, meaning
|
1017 | unlimited.
|
1018 |
|
1019 | - Replaced `prefetchRows` (used for internal fetch buffering and
|
1020 | tuning) with a new property `fetchArraySize`. This affects direct
|
1021 | fetches, ResultSet `getRow()` and `queryStream()`.
|
1022 |
|
1023 | - `getRows(numRows,...)` internal fetch buffering is now only tuned
|
1024 | by the `numRows` value.
|
1025 |
|
1026 | - Implemented `getRow()` in JavaScript for better performance.
|
1027 |
|
1028 | - Tightened up checking on in-use ResultSets and Lobs to avoid leaks
|
1029 | and threading issues by making sure the application has closed them
|
1030 | before connections can be closed. The error DPI-1054 may now be
|
1031 | seen if connections are attempted to be closed too early.
|
1032 |
|
1033 | - Added support for fetching columns types LONG (as String) and LONG
|
1034 | RAW (as Buffer). There is no support for streaming these types, so
|
1035 | the value stored in the database may not be able to be completely
|
1036 | fetched if Node.js and V8 memory limits are reached.
|
1037 |
|
1038 | - Added support for TIMESTAMP WITH TIME ZONE date type. These are
|
1039 | mapped to a Date object in node-oracledb using LOCAL TIME ZONE.
|
1040 | The TIME ZONE component is not available in the Date object.
|
1041 |
|
1042 | - Added support for ROWID data type. Data is fetched as a String.
|
1043 |
|
1044 | - Added support for UROWID data type. Data is fetched as a String.
|
1045 |
|
1046 | - Added query support for NCHAR and NVARCHAR2 columns. Note binding
|
1047 | these types for DML may not insert data correctly, depending on the
|
1048 | database character set and the database national character set.
|
1049 |
|
1050 | - Added query support for NCLOB columns. NCLOB data can be streamed
|
1051 | or fetched as String. Note binding NCLOB for DML may not insert
|
1052 | data correctly, depending on the database character set and the
|
1053 | database national character set.
|
1054 |
|
1055 | - Removed node-oracledb size restrictions on LOB `fetchAsString` and
|
1056 | `fetchAsBuffer` queries, and also on LOB binds. Node.js memory
|
1057 | restrictions will still prevent large LOBs being manipulated in
|
1058 | single chunks.
|
1059 |
|
1060 | - In LOB binds, the bind `val` can now be a String when `type` is
|
1061 | CLOB, and `val` can now be a Buffer when `type` is BLOB.
|
1062 |
|
1063 | - Improved validation for invalid attribute and parameter values.
|
1064 |
|
1065 | - The error parameter of function callbacks is now always null if no
|
1066 | error occurred.
|
1067 |
|
1068 | - Database error messages no longer have an extra newline.
|
1069 |
|
1070 | - Statements that generate errors are now dropped from the statement
|
1071 | cache. Applications running while table definitions change will no
|
1072 | longer end up with unusable SQL statements due to stale cache
|
1073 | entries. Note that Oracle best-practice is never to change table
|
1074 | definitions while applications are executing.
|
1075 |
|
1076 | - Prevent use of NaN with Oracle numbers to avoid data corruption.
|
1077 |
|
1078 | - For LOB streaming, make sure 'close' is the very last event, and
|
1079 | doesn't occur before an 'error' event.
|
1080 |
|
1081 | - Fix duplicate 'close' event for error conditions when streaming LOBs
|
1082 | in Node 8.
|
1083 |
|
1084 | - `connection.createLob()` now uses Oracle Call Interface's (OCI)
|
1085 | underlying 'cache' mode.
|
1086 |
|
1087 | - `Lob.close()` now marks LOBs invalid immediately rather than during
|
1088 | the asynchronous portion of the `close()` method, so that all other
|
1089 | attempts are no-ops.
|
1090 |
|
1091 | - Relaxed the restriction preventing `oracledb.connectionClass` being
|
1092 | used with dedicated connections; it previously gave ORA-56609. Now
|
1093 | DRCP can now be used with dedicated connections but the
|
1094 | `CLIENT_DRIVER` value in `V$SESSION_CONNECT_INFO` will not be set in
|
1095 | this case. The recommendation is still to use a session pool when
|
1096 | using DRCP.
|
1097 |
|
1098 | - Fixed a crash with LOB out binds in DML RETURNING statements when the
|
1099 | number of rows returned exceeds the number of rows originally
|
1100 | allocated internally.
|
1101 |
|
1102 | - Empty arrays can now be used in PL/SQL Collection Associative Array
|
1103 | (Index-by) binds.
|
1104 |
|
1105 | - Some NJS and DPI error messages and numbers have changed. This is
|
1106 | particularly true of DPI errors due to the use of ODPI-C.
|
1107 |
|
1108 | - Many new tests have been created.
|
1109 |
|
1110 | - Updated examples for new functionality.
|
1111 |
|
1112 | - Documentation has been updated and improved.
|
1113 |
|
1114 | ## node-oracledb v2.0.15 (15 Dec 2017)
|
1115 |
|
1116 | - The stated compatibility is now for Node.js 4, 6, 8 and 9.
|
1117 |
|
1118 | - Improved query handling:
|
1119 |
|
1120 | - Enhanced direct fetches to allow an unlimited number of rows to be
|
1121 | fetched. This occurs when `oracledb.maxRows = 0`
|
1122 |
|
1123 | - Changed the default value of `oracledb.maxRows` to 0, meaning
|
1124 | unlimited.
|
1125 |
|
1126 | - Replaced `prefetchRows` (used for internal fetch buffering and
|
1127 | tuning) with a new property `fetchArraySize`. This affects direct
|
1128 | fetches, ResultSet `getRow()` and `queryStream()`.
|
1129 |
|
1130 | - `getRows(numRows,...)` internal fetch buffering is now only tuned
|
1131 | by the `numRows` value.
|
1132 |
|
1133 | - Implemented `getRow()` in JavaScript for better performance.
|
1134 |
|
1135 | - Moved operations on REF CURSORS out of the main thread in order to
|
1136 | improve performance and memory usage.
|
1137 |
|
1138 | - Fixed proxy support in the binary installer.
|
1139 |
|
1140 | - Ensured the callback error parameter is null, not undefined, when no
|
1141 | error occurred.
|
1142 |
|
1143 | - Improvements were made to `require('oracledb')` failure messages to
|
1144 | help users resolve installation and usage problems.
|
1145 |
|
1146 | - Fixed compiler deprecation warnings regarding `Nan::ForceSet`.
|
1147 |
|
1148 | ## node-oracledb v2.0.14 Development (20 Nov 2017)
|
1149 |
|
1150 | - Added infrastructure to /package for creating binary installs.
|
1151 | Updated INSTALL.md.
|
1152 |
|
1153 | - Improved validation for invalid attribute and parameter values.
|
1154 |
|
1155 | - In LOB binds, the bind "val" can now be a String when "type" is
|
1156 | CLOB, and "val" can now be a Buffer when "type" is BLOB.
|
1157 |
|
1158 | - Changed binding.gyp message prefix from 'node-oracledb' to 'oracledb'.
|
1159 |
|
1160 | - Fix compiler warning with va_start
|
1161 |
|
1162 | - Eliminate memory leak when processing result sets containing LOBs
|
1163 | that require more than one fetch operation (regression from v1).
|
1164 |
|
1165 | - Move fetch buffer allocation to reduce memory use for Result Sets
|
1166 | (regression from v1).
|
1167 |
|
1168 | - Upgraded NAN dependency from 2.5 to 2.8.
|
1169 |
|
1170 | - Updated ODPI-C submodule:
|
1171 | - Reinstate safe size limit for LOB bind to PL/SQL (node-oracledb regression from v1).
|
1172 | - Fix valgrind byte overrun when loading `libclntsh` from `$ORACLE_HOME`.
|
1173 | - Do not prevent connections from being explicitly closed when a fatal error has taken place.
|
1174 | - Eliminate race condition on initialization. Add finalization code.
|
1175 | - Eliminate use of OCI wrappers for use of mutexes, which improves performance (now uses native threading, e.g. pthreads).
|
1176 | - Prevent use of NaN with Oracle numbers to avoid data corruption.
|
1177 | - Prevent ORA-1010 during connection ping to pre 10g Oracle Database.
|
1178 | - Improve debug trace output format.
|
1179 | - Prevent crash for DML RETURNING of variables that require dynamic binding.
|
1180 |
|
1181 | - Updated examples to avoid "DPI-1054: connection cannot be closed
|
1182 | when open statements or LOBs exist" and to avoid duplicate callbacks
|
1183 | on stream errors.
|
1184 |
|
1185 | - Check for JavaScript exceptions and if one is found, ensure that the
|
1186 | error is passed correctly to the callback and is not raised when the
|
1187 | C++ method has finished.
|
1188 |
|
1189 | - Added code to handle invalid object properties.
|
1190 |
|
1191 | - Make sure 'close' is the very last event, and doesn't occur before
|
1192 | an 'error' event. Also emit 'close' after 'error' event for
|
1193 | `queryStream()`
|
1194 |
|
1195 | - Changed default sample connect string to `"localhost/orclpdb"` which
|
1196 | is the Oracle Database 12.2 default for pluggable databases.
|
1197 |
|
1198 | - Moved NJS code from `/src/njs/src` to `/src` to remove obsolete
|
1199 | directory nesting.
|
1200 |
|
1201 | - Perform error cleanup as soon as possible in order to avoid possible
|
1202 | race conditions when errors take place.
|
1203 |
|
1204 | - Move operations on REF CURSORS out of the main thread in order to
|
1205 | improve performance and memory usage.
|
1206 |
|
1207 | - Relaxed the restriction preventing `oracledb.connectionClass` being
|
1208 | used with dedicated connections; it previously gave ORA-56609. Now
|
1209 | DRCP can now be used with dedicated connections but the
|
1210 | `CLIENT_DRIVER` value in `V$SESSION_CONNECT_INFO` will not be set in
|
1211 | this case. The recommendation is still to use a session pool when
|
1212 | using DRCP.
|
1213 |
|
1214 | - Tighten up checking on in-use ResultSets and Lobs to avoid leaks and
|
1215 | threading issues by making sure the application has closed them
|
1216 | before connections can be closed. The error DPI-1054 may now be
|
1217 | seen if connections are attempted to be closed too early.
|
1218 |
|
1219 | - On Windows, disable ODPI-C thread cleanup to resolve a thread timing
|
1220 | issue, since Node.js creates all threads at startup and never
|
1221 | terminates them.
|
1222 |
|
1223 | - Added extra message text to NJS-045 to give potential causes for
|
1224 | `require('oracledb')` failures when the ODPI-C layer can't detect
|
1225 | the issue.
|
1226 |
|
1227 | - Updated ODPI-C submodule: various changes including improved
|
1228 | initialization error messages, and runtime-enabled debug tracing.
|
1229 |
|
1230 | - Fix duplicate 'close' event for error conditions when streaming Lobs
|
1231 | in Node 8.
|
1232 |
|
1233 | - Fix LOB streaming 'close' and 'end' event order (regression from v1).
|
1234 |
|
1235 | - Fixed crash with LOB out binds in DML RETURNING statements when the
|
1236 | number of rows returned exceeds the number of rows originally
|
1237 | allocated internally.
|
1238 |
|
1239 | - Improve handling of invalid `externalAuth`, `fetchAsString`, and
|
1240 | `fetchAsBuffer` attribute values.
|
1241 |
|
1242 | - Fix support for `connectionClass` (regression from v1).
|
1243 |
|
1244 | ## node-oracledb v2.0.13 Development (19 Jun 2017)
|
1245 |
|
1246 | - Node-oracledb now uses the [ODPI-C](https://github.com/oracle/odpi)
|
1247 | database abstraction library.
|
1248 |
|
1249 | - Installation instructions have changed. Refer to
|
1250 | [INSTALL](https://oracle.github.io/node-oracledb/INSTALL.html).
|
1251 | Distribution is still via source code.
|
1252 |
|
1253 | Oracle header files are no longer needed. The `OCI_LIB_DIR` and
|
1254 | `OCI_INC_DIR` environment variables are not needed.
|
1255 |
|
1256 | At run time, Oracle 11.2, 12.1 or 12.2 client libraries should still
|
1257 | be in `PATH` (for Windows) or `LD_LIBRARY_PATH` (for Linux) or
|
1258 | similar platform library loading path. Users of macOS must put the
|
1259 | Oracle client libraries in `~/lib` or `/usr/local/lib`. Linux users
|
1260 | of Instant Client RPMs must always set `LD_LIBRARY_PATH` or use
|
1261 | ldconfig - the previous RPATH linking option is not available.
|
1262 |
|
1263 | On non-Windows platforms, if Oracle client libraries are not located
|
1264 | in the system library search path (e.g. `LD_LIBRARY_PATH`), then
|
1265 | node-oracledb attempts to use libraries in `$ORACLE_HOME/lib`.
|
1266 |
|
1267 | A single node-oracledb binary now works with any of the Oracle
|
1268 | client 11.2, 12.1 or 12.2 libraries. This improves portability when
|
1269 | node-oracledb builds are copied between machines.
|
1270 |
|
1271 | - `Lob.close()` now marks LOBs invalid immediately rather than during
|
1272 | the asynchronous portion of the `close()` method, so that all other
|
1273 | attempts are no-ops.
|
1274 |
|
1275 | - Incorrect application logic in version 1 that attempted to close a
|
1276 | connection while certain LOB, ResultSet or other database operations
|
1277 | were still occurring gave an NJS-030, NJS-031 or NJS-032 "connection
|
1278 | cannot be released" error. Now in version 2 the connection will be
|
1279 | closed but any operation that relied on the connection being open
|
1280 | will fail.
|
1281 |
|
1282 | - Some NJS and DPI error messages and numbers have changed. This is
|
1283 | particularly true of DPI errors due to the use of ODPI-C.
|
1284 |
|
1285 | - Stated compatibility is now for Node.js 4, 6 and 8.
|
1286 |
|
1287 | - Added support for fetching columns types LONG (as String) and LONG
|
1288 | RAW (as Buffer). There is no support for streaming these types, so
|
1289 | the value stored in the DB may not be able to be completely fetched
|
1290 | if Node.js and V8 memory limits are reached.
|
1291 |
|
1292 | - Added support for TIMESTAMP WITH TIME ZONE date type. These are
|
1293 | mapped to a Date object in node-oracledb using LOCAL TIME ZONE.
|
1294 | The TIME ZONE component is not available in the Date object.
|
1295 |
|
1296 | - Added support for ROWID data type. Data is fetched as a String.
|
1297 |
|
1298 | - Added support for UROWID data type. Data is fetched as a String.
|
1299 |
|
1300 | - Added query support for NCHAR and NVARCHAR2 columns. Binding for
|
1301 | DML may not insert data correctly, depending on the database
|
1302 | character set and the database national character set.
|
1303 |
|
1304 | - Added query support for NCLOB columns. NCLOB data can be streamed
|
1305 | or fetched as String. Binding for DML may not insert data
|
1306 | correctly, depending on the database character set and the database
|
1307 | national character set.
|
1308 |
|
1309 | - Removed node-oracledb size restrictions on LOB `fetchAsString` and
|
1310 | `fetchAsBuffer` queries, and also on LOB binds. Node.js and V8
|
1311 | memory restrictions will still prevent large LOBs being manipulated
|
1312 | in single chunks.
|
1313 |
|
1314 | - Statements that generate errors are now dropped from the statement
|
1315 | cache. Applications running while table definitions change will no
|
1316 | longer end up with unusable SQL statements due to stale cache
|
1317 | entries. Note that Oracle best-practice is never to change table
|
1318 | definitions while applications are executing.
|
1319 |
|
1320 | - Empty arrays can now be used in PL/SQL Collection Associative Array
|
1321 | (Index-by) binds.
|
1322 |
|
1323 | - `connection.createLob()` now uses OCI's underlying 'cache' mode.
|
1324 |
|
1325 | - Database errors no longer have an extra newline.
|
1326 |
|
1327 | - Upgraded NAN dependency from 2.5 to 2.6.
|
1328 |
|
1329 | ## node-oracledb v1.13.1 (12 Apr 2017)
|
1330 |
|
1331 | - Fix regression with NULL values to PL/SQL procedures with multiple parameters.
|
1332 |
|
1333 | ## node-oracledb v1.13.0 (15 Mar 2017)
|
1334 |
|
1335 | - Added support for fetching BLOBs as Buffers, using `fetchAsBuffer` and `fetchInfo`.
|
1336 |
|
1337 | - Improved PL/SQL Index-by array binding error messages based on PR #470 (Hariprasad Kulkarni).
|
1338 |
|
1339 | - Fixed several crashes and a memory leak using CLOBs with `fetchAsString`.
|
1340 |
|
1341 | - Fixed several issues including a crash using NULLs and empty strings for LOB `BIND_INOUT` binds.
|
1342 |
|
1343 | - Automatically clean up sessions in the connection pool when they become unusable after an ORA-56600 occurs.
|
1344 |
|
1345 | - Updated NAN dependency from 2.4 to 2.5.
|
1346 |
|
1347 | ## node-oracledb v1.12.2 (21 Dec 2016)
|
1348 |
|
1349 | - Fix memory allocation with Oracle 11g client libraries when querying CLOBs using `fetchAsString` and `fetchInfo`.
|
1350 |
|
1351 | ## node-oracledb v1.12.1 Development (16 Dec 2016)
|
1352 |
|
1353 | - Added support for fetching CLOBs as Strings, using `fetchAsString` and `fetchInfo`.
|
1354 |
|
1355 | - Added `BIND_INOUT` support for temporary LOBs.
|
1356 |
|
1357 | ## node-oracledb v1.12.0 Development (3 Dec 2016)
|
1358 |
|
1359 | - Significantly enhanced LOB support:
|
1360 | - Added `BIND_IN` support for DML
|
1361 | - Added `BIND_IN`, `BIND_OUT`, `BIND_INOUT` support for PL/SQL
|
1362 | - Added a `connection.createLob()` method to create temporary LOBs
|
1363 | - Added a `lob.close()` method
|
1364 | - Made enhancements to allow binding String or Buffer data as `STRING` or `BUFFER` to LOB database types
|
1365 | - Writeable LOB Streams now conclude with a 'close' event
|
1366 |
|
1367 | - Added a connection pool 'ping' feature controlled with
|
1368 | `oracledb.poolPingInterval` and a corresponding `createPool()`
|
1369 | option. This validates pooled connections when they are returned
|
1370 | from a `getConnection()` call. Values are:
|
1371 | - zero: always ping for every pooled `getConnection()`
|
1372 | - negative: never ping
|
1373 | - positive: time in seconds the connection must be idle in the pool before `getConnection()` does a ping. Default is 60 seconds
|
1374 |
|
1375 | The setting is a no-op when node-oracledb is built with Oracle
|
1376 | Database 12.2 client libraries, where a new, lower-level OCI feature
|
1377 | provides an always-on, lightweight connection check.
|
1378 |
|
1379 | - Upgraded NAN dependency from 2.3 to 2.4.
|
1380 |
|
1381 | - Stated compatibility is now for Node.js 0.12, 4, 6 and 7.
|
1382 |
|
1383 | - Fixed return value of the DATE type bound as `BIND_INOUT`.
|
1384 |
|
1385 | - Fixed passing NULL values bound as `BIND_INOUT` for several data types.
|
1386 |
|
1387 | - Fixed compilation warnings with newer Node.js versions due to V8 deprecations.
|
1388 |
|
1389 | - Fixed some Windows and OS X compilation warnings.
|
1390 |
|
1391 | - Linted JavaScript files, standardizing code, example and test files.
|
1392 |
|
1393 | - Updated various examples and created new ones.
|
1394 |
|
1395 | - Updated README.md and api.md introductory examples, based on a patch proposed by [Leigh Schrandt](https://github.com/stealthybox).
|
1396 |
|
1397 | - Updated README.md thanks to [Nick Heiner](https://github.com/NickHeiner).
|
1398 |
|
1399 | - Updated documentation links to point to the Oracle Database 12.2 documentation.
|
1400 |
|
1401 | - Made some internal changes to the DPI layer to avoid name space collisions
|
1402 | and fix session tagging. These are not visible / exposed through
|
1403 | node-oracledb.
|
1404 |
|
1405 | ## node-oracledb v1.11.0 (19 Aug 2016)
|
1406 |
|
1407 | - Added a connection pool cache feature allowing pools to have aliases and be more easily used.
|
1408 |
|
1409 | - Improved the bootstrap error message when the node-oracledb binary cannot be loaded.
|
1410 |
|
1411 | - Fixed memory leaks with `DATE` and `TIMESTAMP` bind values.
|
1412 |
|
1413 | - Fixed external authentication which broke in 1.10.
|
1414 |
|
1415 | - Fixed metadata `scale` and `precision` values on AIX.
|
1416 |
|
1417 | - Made an internal change to replace `std::string.data()` with `std::string.c_str()`.
|
1418 |
|
1419 | - Made an internal change to remove an unused parameter from the `NJS_SET_EXCEPTION` macro.
|
1420 |
|
1421 | ## node-oracledb v1.10.1 (21 Jul 2016)
|
1422 |
|
1423 | - Fixed a bug that prevented a null value being passed from JavaScript into an IN OUT bind.
|
1424 |
|
1425 | - Fixed a memory leak introduced in 1.10 with REF CURSORs.
|
1426 |
|
1427 | - Fixed a memory leak in error handling paths when using REF CURSORs.
|
1428 |
|
1429 | - Made an internal change for queries selecting unsupported column types allowing them to report an error earlier.
|
1430 |
|
1431 | - Made an internal change to use `std::string&` for string lengths.
|
1432 |
|
1433 | - Fixed a compilation warning on Windows.
|
1434 |
|
1435 | - Added a mocha configuration file for the test suite.
|
1436 |
|
1437 | ## node-oracledb v1.10.0 (8 Jul 2016)
|
1438 |
|
1439 | - Enhanced query and REF CURSOR metadata is available when a new
|
1440 | `oracledb.extendedMetaData` or `execute()` option `extendedMetaData`
|
1441 | property is `true`. (Leonardo Olmi).
|
1442 |
|
1443 | - Fixed an issue preventing the garbage collector cleaning up when a
|
1444 | query with LOBs is executed but LOB data isn't actually streamed.
|
1445 |
|
1446 | - Fixed a bug where an error event could have been emitted on a
|
1447 | QueryStream instance prior to the underlying ResultSet having been
|
1448 | closed. This would cause problems if the user tried to close the
|
1449 | connection in the error event handler as the ResultSet could have
|
1450 | prevented it.
|
1451 |
|
1452 | - Fixed a bug where the public `close()` method was invoked on the
|
1453 | ResultSet instance that underlies the QueryStream instance if an
|
1454 | error occurred during a call to `getRows()`. The public method would
|
1455 | have thrown an error had the QueryStream instance been created from
|
1456 | a ResultSet instance via the `toQueryStream()` method. Now the
|
1457 | underlying C++ layer's `close()` method is invoked directly.
|
1458 |
|
1459 | - Updated `Pool._logStats()` to throw an error instead of printing to
|
1460 | the console if the pool is not valid.
|
1461 |
|
1462 | - Report an error earlier when a named bind object is used in a
|
1463 | bind-by-position context. A new error NJS-044 is returned.
|
1464 | Previously errors like ORA-06502 were given.
|
1465 |
|
1466 | - Added GitHub Issue and Pull Request templates.
|
1467 |
|
1468 | - Some enhancements were made to the underlying DPI data access layer.
|
1469 | **These are not exposed to node-oracledb users.**
|
1470 |
|
1471 | - Allow SYSDBA connections
|
1472 | - Allow session tagging
|
1473 | - Allow the character set and national character set to be specified via parameters to the DPI layer.
|
1474 | - Support heterogeneous pools (in addition to existing homogeneous pools)
|
1475 |
|
1476 | ## node-oracledb v1.9.3 (24 May 2016)
|
1477 |
|
1478 | - Fix error with `OCI_ERROR_MAXMSG_SIZE2` when building with Oracle client 11.2.0.1 and 11.2.0.2.
|
1479 |
|
1480 | ## node-oracledb v1.9.2 (23 May 2016)
|
1481 |
|
1482 | - Fix `results.metaData` for queries with `{resultSet: true}`.
|
1483 |
|
1484 | ## node-oracledb v1.9.1 (18 May 2016)
|
1485 |
|
1486 | - Upgraded to NAN 2.3 for Node 6 support.
|
1487 |
|
1488 | - Added a persistent reference to JavaScript objects during Async
|
1489 | operations to prevent crashes due to premature garbage collection.
|
1490 |
|
1491 | - Added a persistent reference to the internal Lob buffer to prevent
|
1492 | premature garbage collection.
|
1493 |
|
1494 | - Fixed memory leaks when using ResultSets.
|
1495 |
|
1496 | - Fixed memory leak with the Pool queue timer map.
|
1497 |
|
1498 | - Fixed memory release logic when querying LOBs and an error occurs.
|
1499 |
|
1500 | - Improved some null pointer checking.
|
1501 |
|
1502 | - Altered some node-oracledb NJS-xyz error message text for consistency.
|
1503 |
|
1504 | - Improved validation for `fetchInfo` usage.
|
1505 |
|
1506 | - Increased the internal buffer size for Oracle Database error messages.
|
1507 |
|
1508 | - Call `pause()` internally when closing a query Stream with `_close()`.
|
1509 |
|
1510 | - Fixed a symbol redefinition warning for `DATA_BLOB` when compiling on Windows.
|
1511 |
|
1512 | - The test suite is no longer installed with `npm install oracledb`.
|
1513 | The tests remain available in GitHub.
|
1514 |
|
1515 | ## node-oracledb v1.9.0 Development (19 Apr 2016)
|
1516 |
|
1517 | - Added Promise support. All asynchronous functions can now return
|
1518 | promises. By default the standard Promise library is used for Node
|
1519 | 0.12, 4 and 5. This can be overridden.
|
1520 |
|
1521 | - Added a `toQueryStream()` method for ResultSets, letting REF CURSORS
|
1522 | be transformed into Readable Streams.
|
1523 |
|
1524 | - Added an experimental query Stream `_close()` method. It allows query
|
1525 | streams to be closed without needing to fetch all the data. It is
|
1526 | not for production use.
|
1527 |
|
1528 | - Added aliases `pool.close()` and `connection.close()` for
|
1529 | `pool.terminate()` and `connection.release()` respectively.
|
1530 |
|
1531 | - Some method parameter validation checks, such as the number or types
|
1532 | of parameters, will now throw errors synchronously instead of
|
1533 | returning errors via the callback.
|
1534 |
|
1535 | - Removed an extra call to `getRows()` made by `queryStream()` at
|
1536 | end-of-fetch.
|
1537 |
|
1538 | - Some random crashes caused by connections being garbage collected
|
1539 | while still in use should no longer occur.
|
1540 |
|
1541 | - Regularized NJS error message capitalization.
|
1542 |
|
1543 | ## node-oracledb v1.8.0 (24 Mar 2016)
|
1544 |
|
1545 | - Added `connection.queryStream()` for returning query results using a
|
1546 | Node Readable Stream (Sagie Gur-Ari).
|
1547 |
|
1548 | - Connection strings requesting DRCP server can now only be used with
|
1549 | a node-oracledb connection pool. They will give *ORA-56609* when
|
1550 | used with `oracledb.getConnection()`.
|
1551 |
|
1552 | - Set the internal driver name to `node-oracledb : 1.8.0`. This is
|
1553 | visible to DBAs, for example in `V$SESSION_CONNECT_INFO`.
|
1554 |
|
1555 | - Added up-time to pool queue statistics.
|
1556 |
|
1557 | - Fixed creation of Windows debug builds.
|
1558 |
|
1559 | - Bumped NAN dependency to NAN 2.2.
|
1560 |
|
1561 | - Added .editorconfig file (Sagie Gur-Ari).
|
1562 |
|
1563 | - Improved test date and time checks (Antonio Bustos).
|
1564 |
|
1565 | - Improved some parameter checks for `maxArraySize` and `maxSize`.
|
1566 |
|
1567 | ## node-oracledb v1.7.1 (1 Mar 2016)
|
1568 |
|
1569 | - Made public methods over-writable in the new JavaScript layer
|
1570 |
|
1571 | ## node-oracledb v1.7.0 (29 Feb 2016)
|
1572 |
|
1573 | - Added a JavaScript wrapper around the C++ API to allow for easier
|
1574 | extension.
|
1575 |
|
1576 | - Added a connection pool queue configured with `queueRequests` and
|
1577 | `queueTimeout` attributes. The queue is enabled by default.
|
1578 |
|
1579 | - Added connection pool option attribute `_enableStats` and method
|
1580 | `pool._logStats()` to display pool and queue statistics. Note: these may
|
1581 | change in future.
|
1582 |
|
1583 | - Added "bind by position" syntax for PL/SQL Index-by array binds (Dieter Oberkofler).
|
1584 |
|
1585 | - Allowed node-oracledb class instances to be tested with 'instanceof'.
|
1586 |
|
1587 | - Fixed some bind issues when bind values are not set by the database.
|
1588 |
|
1589 | - Replaced internal usage of `info.This()` with `info.Holder()` for Node.js 0.10.
|
1590 |
|
1591 | - Fixed some compilation warnings with some Windows compilers.
|
1592 |
|
1593 | ## node-oracledb v1.6.0 (30 Jan 2016)
|
1594 |
|
1595 | - Added support for binding PL/SQL Collection Associative Array
|
1596 | (Index-by) types containing numbers and strings (Dieter Oberkofler).
|
1597 |
|
1598 | - Fixed a LOB problem causing an uncaught error to be generated.
|
1599 |
|
1600 | - Removed the 'close' event that was incorrectly emitted for LOB Writable
|
1601 | Streams. The Node.js Streams documentation specifies it only for
|
1602 | Readable Streams.
|
1603 |
|
1604 | - Updated the LOB examples to show connection release.
|
1605 |
|
1606 | - Updated README so first-time users see pre-requisites earlier.
|
1607 |
|
1608 | - Extended the OS X install instructions with a way to install that doesn't
|
1609 | need root access for Instant Client 11.2 on El Capitan.
|
1610 |
|
1611 | - Added RPATH link option when building on OS X in preparation for future client.
|
1612 |
|
1613 | - README updates (Kevin Sheedy)
|
1614 |
|
1615 | ## node-oracledb v1.5.0 (21 Dec 2015)
|
1616 |
|
1617 | - Treat Oracle Database 'Success With Info' warnings as success (Francisco Trevino).
|
1618 |
|
1619 | - Extend rollback-on-connection-release with 11g Oracle Clients to occur for all non-query executions. (Not needed with 12c clients).
|
1620 |
|
1621 | - Updated OS X install instructions to work on El Capitan.
|
1622 |
|
1623 | - Display an error and prevent connection release while database calls are in progress.
|
1624 |
|
1625 | - Fixed intermittent crash while selecting data from CLOB column.
|
1626 |
|
1627 | - Fixed crash when trying to set invalid values for connection properties.
|
1628 |
|
1629 | ## node-oracledb v1.4.0 (17 Nov 2015)
|
1630 |
|
1631 | - Upgraded NAN dependency to version 2 allowing node-oracledb to build
|
1632 | with Node 0.10, 0.12, 4 and 5 (Richard Natal). Note: a compiler supporting C++11 is required to build with Node 4 and 5.
|
1633 |
|
1634 | - Fixed a cursor leak when statement execution fails.
|
1635 |
|
1636 | - Fixed a crash when accessing Pool properties on Windows.
|
1637 |
|
1638 | - Added a run-script 'testWindows' target for Windows testing. See [test/README.md](test/README.md)
|
1639 |
|
1640 | - Fixed compilation warnings with recent compilers.
|
1641 |
|
1642 | ## node-oracledb v1.3.0 (15 Oct 2015)
|
1643 |
|
1644 | - Added a `oracledb.oracleClientVersion` property giving the version of the Oracle
|
1645 | client library, and a `connection.oracleServerVersion` property giving the Oracle
|
1646 | Database version.
|
1647 |
|
1648 | - Fixed `result.outBinds` corruption after PL/SQL execution.
|
1649 |
|
1650 | - Fixed null output from DML RETURNING with Oracle Database 11.2 when the string is of size 4000.
|
1651 |
|
1652 | - Fixed default bind direction to be `BIND_IN`.
|
1653 |
|
1654 | ## node-oracledb v1.2.0 (25 Sep 2015)
|
1655 |
|
1656 | - Added support for RAW data type (Bruno Jouhier).
|
1657 |
|
1658 | - Added a `type` property to the Lob class to distinguish CLOB and BLOB types.
|
1659 |
|
1660 | - Changed write-only attributes of Connection objects to work with `console.log()`. Note the attribute values will show as `null`. Refer to the documentation.
|
1661 |
|
1662 | - Added a check to make sure `maxRows` is greater than zero for non-ResultSet queries.
|
1663 |
|
1664 | - Improved installer messages for Oracle client header and library detection on Linux, OS X and Solaris.
|
1665 |
|
1666 | - Optimized CLOB memory allocation to account for different database-to-client character set expansions.
|
1667 |
|
1668 | - Fixed a crash while reading a LOB from a closed connection.
|
1669 |
|
1670 | - Fixed a crash when selecting multiple rows with LOB values (Bruno Jouhier).
|
1671 |
|
1672 | - Corrected the order of Stream 'end' and 'close' events when reading a LOB (Bruno Jouhier).
|
1673 |
|
1674 | - Fixed AIX-specific REF CURSOR related failures.
|
1675 |
|
1676 | - Fixed intermittent crash while setting `fetchAsString`, and incorrect output while reading the value.
|
1677 |
|
1678 | - Added a check to return an NJS error when an invalid DML RETURN statement does not give an ORA error.
|
1679 |
|
1680 | - Removed non-portable memory allocation for queries that return NULL.
|
1681 |
|
1682 | - Fixed encoding issues with several files that caused compilation warnings in some Windows environments.
|
1683 |
|
1684 | - Made installation halt sooner for Node.js versions currently known to be unusable.
|
1685 |
|
1686 | - Fixed a typo in `examples/dbmsoutputgetline.js`
|
1687 |
|
1688 | - Windows install instruction updates (Bill Christo)
|
1689 |
|
1690 | ## node-oracledb v1.1.0 (3 Sep 2015)
|
1691 |
|
1692 | - Enhanced pool.release() to drop the session if it is known to be unusable, allowing a new session to be created.
|
1693 |
|
1694 | - Optimized query memory allocation to account for different database-to-client character set expansions.
|
1695 |
|
1696 | - Fixed build warnings on Windows with VS 2015.
|
1697 |
|
1698 | - Fixed truncation issue while fetching numbers as strings.
|
1699 |
|
1700 | - Fixed AIX-specific failures with queries and RETURNING INTO clauses.
|
1701 |
|
1702 | - Fixed a crash with NULL or uninitialized REF CURSOR OUT bind variables.
|
1703 |
|
1704 | - Fixed potential memory leak when connecting throws an error.
|
1705 |
|
1706 | - Added a check to throw an error sooner when a CURSOR type is used for IN or IN OUT binds. (Support is pending).
|
1707 |
|
1708 | - Temporarily disabling setting lobPrefetchSize
|
1709 |
|
1710 | ## node-oracledb v1.0.0 (17 Aug 2015)
|
1711 |
|
1712 | - Implemented Stream interface for CLOB and BLOB types, adding support for
|
1713 | LOB queries, inserts, and PL/SQL LOB bind variables
|
1714 |
|
1715 | - Added `fetchAsString` and `execute()` option `fetchInfo` properties to allow numbers, dates and ROWIDs to be fetched as strings.
|
1716 |
|
1717 | - Added support for binding DATE, TIMESTAMP and TIMESTAMP WITH LOCAL TIME ZONE as `DATE` to DML RETURNING (aka RETURNING INTO) `type`.
|
1718 |
|
1719 | - The internal Oracle client character set is now always set to AL32UTF8.
|
1720 |
|
1721 | - The test suite and example scripts database credentials can now be set via environment variables.
|
1722 |
|
1723 | - Fixed issues with database-to-client character set conversion by allocating extra memory to allow for character expansion.
|
1724 |
|
1725 | - Fixed a crash with `ResultSet` and unsupported column data types.
|
1726 |
|
1727 | - Fixed a crash allocating memory for large `maxRows` values.
|
1728 |
|
1729 | - Fixed a bug preventing closing of a `ResultSet` when `getRow()` or `getRows()` returned an error.
|
1730 |
|
1731 | - Fixed date precision issues affecting insert and query.
|
1732 |
|
1733 | - Fixed `BIND_OUT` bind `type` not defaulting to `STRING`.
|
1734 |
|
1735 | - Fixed INSERT of a date when the SQL has a RETURNING INTO clause and the bind style is array format.
|
1736 |
|
1737 | - Improved RETURNING INTO handling of unsupported types and sizes.
|
1738 |
|
1739 | - Correctly throw an error when array and named bind syntaxes are mixed together.
|
1740 |
|
1741 | ## node-oracledb v0.7.0 (20 Jul 2015)
|
1742 |
|
1743 | - Added result set support for fetching large data sets.
|
1744 |
|
1745 | - Added REF CURSOR support for returning query results from PL/SQL.
|
1746 |
|
1747 | - Added row prefetching support.
|
1748 |
|
1749 | - Added a test suite.
|
1750 |
|
1751 | - Fixed error handling for SQL statements using RETURNING INTO.
|
1752 |
|
1753 | - Fixed INSERT of a date when the SQL has a RETURNING INTO clause.
|
1754 |
|
1755 | - Renumbered the values used by the Oracledb Constants.
|
1756 |
|
1757 | ## node-oracledb v0.6.0 (26 May 2015)
|
1758 |
|
1759 | - Node-oracledb now builds with Node.js 0.10, Node.js 0.12 and io.js (Richard Natal).
|
1760 |
|
1761 | - Fixed naming of `autoCommit` in examples.
|
1762 |
|
1763 | ## node-oracledb v0.5.0 (5 May 2015)
|
1764 |
|
1765 | - Changed the `isAutoCommit` attribute name to `autoCommit`.
|
1766 |
|
1767 | - Changed the `isExternalAuth` attribute name to `externalAuth`.
|
1768 |
|
1769 | - Fixed `outBinds` array counting to not give empty array entries for IN binds.
|
1770 |
|
1771 | - Added support for DML RETURNING bind variables.
|
1772 |
|
1773 | - Rectified the error message for invalid type properties.
|
1774 |
|
1775 | ## node-oracledb v0.4.2 (28 Mar 2015)
|
1776 |
|
1777 | - node-oracledb is now officially installable from https://www.npmjs.com/package/oracledb (Tim Branyen)
|
1778 |
|
1779 | - Added metadata support. Query column names are now provided in the `execute()` callback result object.
|
1780 |
|
1781 | - Require a more recent version of Node.js 0.10.
|
1782 |
|
1783 | - Changed the default Instant Client directory on AIX from /opt/oracle/instantclient_12_1 to /opt/oracle/instantclient.
|
1784 |
|
1785 | ## node-oracledb v0.4.1 (13 Mar 2015)
|
1786 |
|
1787 | - Added support for External Authentication.
|
1788 |
|
1789 | - The `isAutoCommit` flags now works with query execution. This is useful in cases where multiple DML statements are executed followed by a SELECT statement. This can be used to avoid a round trip to the database that an explicit call to `commit()` would add.
|
1790 |
|
1791 | - Added AIX build support to package.json (Hannes Prirschl).
|
1792 |
|
1793 | - Improved errors messages when setting out of range property values.
|
1794 |
|
1795 | - Fixed a bug: When `terminate()` of a connection pool fails because connections have not yet been closed, subsequent use of `release()` to close those connections no longer gives an error "ORA-24550: Signal Received".
|
1796 |
|
1797 | - Some code refactoring (Krishna Narasimhan).
|
1798 |
|
1799 | ## node-oracledb v0.3.1 (16 Feb 2015)
|
1800 |
|
1801 | - Added Windows build configuration (Rinie Kervel).
|
1802 |
|
1803 | - Added Database Resident Connection Pooling (DRCP) support.
|
1804 |
|
1805 | - Made an explicit connection `release()` do a rollback, to be consistent with the implicit release behavior.
|
1806 |
|
1807 | - Made install on Linux look for Oracle libraries in a search order.
|
1808 |
|
1809 | - Added RPATH support on Linux.
|
1810 |
|
1811 | - Changed default Oracle Instant client paths to /opt/oracle/instantclient and C:\oracle\instantclient
|
1812 |
|
1813 | - Added a compile error message "Oracle 11.2 or later client libraries are required for building" if attempting to build with older Oracle client libraries.
|
1814 |
|
1815 | - Fixed setting the `isAutoCommit` property.
|
1816 |
|
1817 | - Fixed a crash using pooled connections on Windows.
|
1818 |
|
1819 | - Fixed a crash querying object types.
|
1820 |
|
1821 | - Fixed a crash doing a release after a failed terminate. (The Pool is still unusable - this will be fixed later)
|
1822 |
|
1823 | ## node-oracledb v0.2.4 (20 Jan 2015 - initial release)
|
1824 |
|
1825 | **Initial Features include**:
|
1826 |
|
1827 | - SQL and PL/SQL Execution
|
1828 |
|
1829 | - Binding using JavaScript objects or arrays
|
1830 |
|
1831 | - Query results as JavaScript objects or array
|
1832 |
|
1833 | - Conversion between JavaScript and Oracle types
|
1834 |
|
1835 | - Transaction Management
|
1836 |
|
1837 | - Connection Pooling
|
1838 |
|
1839 | - Statement Caching
|
1840 |
|
1841 | - Client Result Caching
|
1842 |
|
1843 | - End-to-end tracing
|
1844 |
|
1845 | - High Availability Features
|
1846 |
|
1847 | - Fast Application Notification (FAN)
|
1848 |
|
1849 | - Runtime Load Balancing (RLB)
|
1850 |
|
1851 | - Transparent Application Failover (TAF)
|