oracledb 5.5.0 → 6.0.1

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