oracledb 2.1.0 → 2.3.0

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 (52) hide show
  1. package/CHANGELOG.md +174 -54
  2. package/LICENSE.md +52 -18
  3. package/README.md +35 -68
  4. package/binding.gyp +5 -4
  5. package/lib/connection.js +164 -14
  6. package/lib/oracledb.js +160 -11
  7. package/lib/pool.js +33 -22
  8. package/lib/querystream.js +3 -2
  9. package/lib/rel.txt +1 -1
  10. package/odpi/LICENSE.md +1 -1
  11. package/odpi/README.md +25 -84
  12. package/odpi/embed/README.md +1 -1
  13. package/odpi/include/dpi.h +51 -7
  14. package/odpi/src/dpiConn.c +78 -9
  15. package/odpi/src/dpiContext.c +24 -10
  16. package/odpi/src/dpiEnv.c +5 -1
  17. package/odpi/src/dpiError.c +4 -0
  18. package/odpi/src/dpiErrorMessages.h +6 -4
  19. package/odpi/src/dpiImpl.h +125 -68
  20. package/odpi/src/dpiMsgProps.c +33 -0
  21. package/odpi/src/dpiObject.c +17 -10
  22. package/odpi/src/dpiObjectType.c +1 -1
  23. package/odpi/src/dpiOci.c +55 -40
  24. package/odpi/src/dpiOracleType.c +2 -2
  25. package/odpi/src/dpiPool.c +88 -18
  26. package/odpi/src/dpiStmt.c +57 -36
  27. package/odpi/src/dpiSubscr.c +117 -9
  28. package/odpi/src/dpiUtils.c +20 -9
  29. package/odpi/src/dpiVar.c +504 -430
  30. package/package/MAKEPKG.BAT +64 -1
  31. package/package/README.md +9 -5
  32. package/package/createpackage.js +2 -2
  33. package/package/extractpackage.js +2 -1
  34. package/package/oracledbinstall.js +19 -19
  35. package/package/package.json +4 -4
  36. package/package.json +4 -4
  37. package/src/njsCommon.cpp +94 -10
  38. package/src/njsCommon.h +73 -21
  39. package/src/njsConnection.cpp +1425 -458
  40. package/src/njsConnection.h +68 -19
  41. package/src/njsIntLob.cpp +5 -1
  42. package/src/njsIntLob.h +1 -1
  43. package/src/njsMessages.cpp +9 -2
  44. package/src/njsMessages.h +9 -2
  45. package/src/njsOracle.cpp +213 -23
  46. package/src/njsOracle.h +18 -2
  47. package/src/njsPool.cpp +32 -14
  48. package/src/njsPool.h +4 -4
  49. package/src/njsResultSet.cpp +4 -3
  50. package/src/njsResultSet.h +1 -1
  51. package/src/njsSubscription.cpp +388 -0
  52. package/src/njsSubscription.h +111 -0
package/CHANGELOG.md CHANGED
@@ -1,19 +1,141 @@
1
1
  # Change Log
2
2
 
3
+ ## node-oracledb v2.3.0 (7 Jun 2018)
4
+
5
+ - The stated compatibility is now for Node.js 6, 8, and 10 due to EOL
6
+ of Node.js 4, and the release of Node 10.
7
+
8
+ - Added support for heterogeneous connection pooling and for proxy
9
+ support in connection pools. This allows each connection in the
10
+ pool to use different database credentials.
11
+
12
+ - Added support for Oracle Database Continuous Query Notifications,
13
+ allowing JavaScript methods to be called when database changes are
14
+ committed.
15
+
16
+ - Added support to `fetchAsString` and `fetchInfo` for fetching RAW
17
+ columns as STRING (hex-encoded).
18
+
19
+ - Added Windows support for building binary packages for self-hosting
20
+ on internal networks. PR #891 (Danilo Silva).
21
+
22
+ - Eliminated a memory leak when binding LOBs as `oracledb.BIND_INOUT`.
23
+
24
+ - Added an error message indicating that `batchErrors` and
25
+ `dmlRowCounts` can only be used with INSERT, UPDATE, DELETE and
26
+ MERGE statements.
27
+
28
+ - Fixed a bug that caused `queryStream()` to emit multiple close
29
+ events in Node.js 10.
30
+
31
+ - Fixed a crash when getting the list of names for an undefined object
32
+ with Node.js 6.
33
+
34
+ - Remove deprecated `Buffer()` function in tests in order to eliminate
35
+ a deprecation warning with Node.js 10.
36
+
37
+ - Upgraded NAN dependency from 2.8 to 2.10.
38
+
39
+ - Made some internal changes to fix NAN 2.10 deprecations: Replaced
40
+ `v8::String::Utf8Value` with `Nan::Uft8String`. Replaced
41
+ `MakeCallback()` with `runInAsyncScope()`.
42
+
43
+ - Mention that `queueRequests` is deprecated and will be removed in a
44
+ future version; connection pool queuing will always be enabled in
45
+ that future version.
46
+
47
+ ## node-oracledb v2.2.0 (3 Apr 2018)
48
+
49
+ - Added
50
+ [`oracledb.oracleClientVersionString`](https://oracle.github.io/node-oracledb/doc/api.html#propdboracleclientversionstring)
51
+ and
52
+ [`connection.oracleServerVersionString`](https://oracle.github.io/node-oracledb/doc/api.html#propconnoracleserverversionstring)
53
+ to complement the existing numeric properties.
54
+
55
+ - Added
56
+ [`oracledb.edition`](https://oracle.github.io/node-oracledb/doc/api.html#propdbedition)
57
+ to support Edition-Based Redefinition. This removes the need to use
58
+ an `ALTER SESSION` command or `ORA_EDITION` environment variable.
59
+
60
+ - Added
61
+ [`oracledb.events`](https://oracle.github.io/node-oracledb/doc/api.html#propdbevents)
62
+ to allow the Oracle client library to receive Oracle Database
63
+ service events, such as FAN and RLB events. This removes the need
64
+ to use an `oraaccess.xml` file to enable event handling.
65
+
66
+ - Added
67
+ [`connection.changePassword()`](https://oracle.github.io/node-oracledb/doc/api.html#changingpassword)
68
+ for changing passwords, and also added support for changing the
69
+ password during `oracledb.getConnection()`.
70
+
71
+ - Added
72
+ [`connection.executeMany()`](https://oracle.github.io/node-oracledb/doc/api.html#executemany)
73
+ for efficient batch DML (e.g. INSERT, UPDATE and DELETE) and PL/SQL
74
+ execution with multiple records.
75
+
76
+ - Added
77
+ [`connection.getStatementInfo()`](https://oracle.github.io/node-oracledb/doc/api.html#getstmtinfo)
78
+ to find information about a SQL statement without executing it.
79
+
80
+ - Added
81
+ [`connection.ping()`](https://oracle.github.io/node-oracledb/doc/api.html#connectionping)
82
+ to support system health checks.
83
+
84
+ - Added support for binding RAW types into Buffers in DML RETURNING statements.
85
+
86
+ - Created GitHub 'pages' for hosting documentation. See:
87
+ - https://oracle.github.io/node-oracledb
88
+ - https://oracle.github.io/node-oracledb/INSTALL.html
89
+ - https://oracle.github.io/node-oracledb/doc/api.html
90
+
91
+ - Simplified the binary installer messages to reduce user uncertainty.
92
+
93
+ - Improved the text for the NJS-045 runtime loader failure error.
94
+
95
+ - Made the implementations of `connection.close()` and `pool.close()`
96
+ the primary code paths in place of their respective aliases
97
+ `connection.release()` and `pool.terminate()`.
98
+
99
+ - An empty object for `fetchInfo` no longer produces an error.
100
+
101
+ - Updated database abstraction layer to ODPI-C 2.3
102
+
103
+ - Fixed compilation warnings on Windows.
104
+
105
+ - Updated the node-oracledb implementation to replace V8 deprecations.
106
+
107
+ ## node-oracledb v2.1.2 (21 Feb 2018)
108
+
109
+ - Fixed regression with end-to-end tracing attributes not being set.
110
+
111
+ - Fix binary installer proxy 403 (Bruno Jouhier)
112
+
113
+ ## node-oracledb v2.1.1 (16 Feb 2018)
114
+
115
+ - Fixed regression with querystream() in Node 4 & 6.
116
+ https://github.com/oracle/node-oracledb/issues/847
117
+
3
118
  ## node-oracledb v2.1.0 (15 Feb 2018)
4
119
 
5
- - Added support for privileged standalone connections: SYSDBA,
6
- SYSOPER, SYSASM, SYSBACKUP, SYSDG, SYSKM, and SYSRAC
120
+ - Added support for [privileged standalone
121
+ connections](https://oracle.github.io/node-oracledb/doc/api.html#privconn):
122
+ SYSDBA, SYSOPER, SYSASM, SYSBACKUP, SYSDG, SYSKM, and SYSRAC
7
123
 
8
- - Improved the Error object with new `errorNum` and `offset`
9
- properties for Oracle errors.
124
+ - Improved the
125
+ [Error](https://oracle.github.io/node-oracledb/doc/api.html#properror)
126
+ object with new `errorNum` and `offset` properties for Oracle
127
+ errors.
10
128
 
11
- - Added new `versionString` and `versionSuffix` attributes to aid
12
- showing node-oracledb version and release status.
129
+ - Added new
130
+ [`versionString`](https://oracle.github.io/node-oracledb/doc/api.html#propdbversionstring)
131
+ and
132
+ [`versionSuffix`](https://oracle.github.io/node-oracledb/doc/api.html#propdbversionsuffix)
133
+ attributes to aid showing node-oracledb version and release status.
13
134
 
14
- - Added `connectionString` as an alias for `connectString` in
15
- `oracledb.createPool()` and `oracledb.getConnection()` (Sagie
16
- Gur-Ari).
135
+ - Added
136
+ [`connectionString`](https://oracle.github.io/node-oracledb/doc/api.html#createpoolpoolattrsconnectstring)
137
+ as an alias for `connectString` in `oracledb.createPool()` and
138
+ `oracledb.getConnection()` (Sagie Gur-Ari).
17
139
 
18
140
  - Updated the ODPI-C layer:
19
141
  - Eliminate DPI-1054 errors, allowing connections to be closed when ResultSets and Lobs are open.
@@ -24,7 +146,7 @@
24
146
  This means node-oracledb 2.1 no longer builds with Node.js 0.10 or
25
147
  Node.js 0.12.
26
148
 
27
- - Improved `queryStream()` streaming:
149
+ - Improved [`queryStream()`](https://oracle.github.io/node-oracledb/doc/api.html#querystream) streaming:
28
150
 
29
151
  - Add support for the Stream `destroy()` method available with Node 8.
30
152
 
@@ -48,8 +170,7 @@
48
170
  - Fixed support for integers that are larger than Node.js's 32-bit
49
171
  integer is capable of handling.
50
172
 
51
- - Updated
52
- [INSTALL.md](https://github.com/oracle/node-oracledb/blob/master/INSTALL.md)
173
+ - Updated [INSTALL](https://oracle.github.io/node-oracledb/INSTALL.html)
53
174
  to mention:
54
175
  - The [yum.oracle.com](http://yum.oracle.com/oracle-linux-nodejs.html) Node.js RPM Packages for Oracle Linux
55
176
  - The [Oracle mirror](oss.oracle.com/git/oracle) of [github.com/oracle](https://github.com/oracle).
@@ -68,7 +189,7 @@
68
189
  - Installation has significantly improved. Some pre-built binaries
69
190
  are available for convenience, or the add-on can be continue to built
70
191
  from source code. Refer to
71
- [INSTALL.md](https://github.com/oracle/node-oracledb/blob/master/INSTALL.md).
192
+ [INSTALL](https://oracle.github.io/node-oracledb/INSTALL.html).
72
193
 
73
194
  - Added utilities to /package for building binaries for
74
195
  distribution, and for installing them.
@@ -96,7 +217,7 @@
96
217
  libraries in `$ORACLE_HOME/lib`.
97
218
 
98
219
  - A new [Troubleshooting
99
- section](https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#troubleshooting)
220
+ section](https://oracle.github.io/node-oracledb/INSTALL.html#troubleshooting)
100
221
  was add to INSTALL.
101
222
 
102
223
  - Improvements were made to `require('oracledb')` failure messages
@@ -214,23 +335,23 @@
214
335
 
215
336
  - Improved query handling:
216
337
 
217
- - Enhanced direct fetches to allow an unlimited number of rows to be
218
- fetched. This occurs when `oracledb.maxRows = 0`
338
+ - Enhanced direct fetches to allow an unlimited number of rows to be
339
+ fetched. This occurs when `oracledb.maxRows = 0`
219
340
 
220
- - Changed the default value of `oracledb.maxRows` to 0, meaning
221
- unlimited.
341
+ - Changed the default value of `oracledb.maxRows` to 0, meaning
342
+ unlimited.
222
343
 
223
- - Replaced `prefetchRows` (used for internal fetch buffering and
224
- tuning) with a new property `fetchArraySize`. This affects direct
225
- fetches, ResultSet `getRow()` and `queryStream()`.
344
+ - Replaced `prefetchRows` (used for internal fetch buffering and
345
+ tuning) with a new property `fetchArraySize`. This affects direct
346
+ fetches, ResultSet `getRow()` and `queryStream()`.
226
347
 
227
- - `getRows(numRows,...)` internal fetch buffering is now only tuned
228
- by the `numRows` value.
348
+ - `getRows(numRows,...)` internal fetch buffering is now only tuned
349
+ by the `numRows` value.
229
350
 
230
- - Implemented `getRow()` in JavaScript for better performance.
351
+ - Implemented `getRow()` in JavaScript for better performance.
231
352
 
232
- - Moved operations on REF CURSORS out of the main thread in order to
233
- improve performance and memory usage.
353
+ - Moved operations on REF CURSORS out of the main thread in order to
354
+ improve performance and memory usage.
234
355
 
235
356
  - Fixed proxy support in the binary installer.
236
357
 
@@ -265,15 +386,15 @@
265
386
  - Upgraded NAN dependency from 2.5 to 2.8.
266
387
 
267
388
  - Updated ODPI-C submodule:
268
- - Reinstate safe size limit for LOB bind to PL/SQL (node-oracledb regression from v1).
269
- - Fix valgrind byte overrun when loading `libclntsh` from `$ORACLE_HOME`.
270
- - Do not prevent connections from being explicitly closed when a fatal error has taken place.
271
- - Eliminate race condition on initialization. Add finalization code.
272
- - Eliminate use of OCI wrappers for use of mutexes, which improves performance (now uses native threading, e.g. pthreads).
273
- - Prevent use of NaN with Oracle numbers to avoid data corruption.
274
- - Prevent ORA-1010 during connection ping to pre 10g Oracle Database.
275
- - Improve debug trace output format.
276
- - Prevent crash for DML RETURNING of variables that require dynamic binding.
389
+ - Reinstate safe size limit for LOB bind to PL/SQL (node-oracledb regression from v1).
390
+ - Fix valgrind byte overrun when loading `libclntsh` from `$ORACLE_HOME`.
391
+ - Do not prevent connections from being explicitly closed when a fatal error has taken place.
392
+ - Eliminate race condition on initialization. Add finalization code.
393
+ - Eliminate use of OCI wrappers for use of mutexes, which improves performance (now uses native threading, e.g. pthreads).
394
+ - Prevent use of NaN with Oracle numbers to avoid data corruption.
395
+ - Prevent ORA-1010 during connection ping to pre 10g Oracle Database.
396
+ - Improve debug trace output format.
397
+ - Prevent crash for DML RETURNING of variables that require dynamic binding.
277
398
 
278
399
  - Updated examples to avoid "DPI-1054: connection cannot be closed
279
400
  when open statements or LOBs exist" and to avoid duplicate callbacks
@@ -344,7 +465,7 @@
344
465
  database abstraction library.
345
466
 
346
467
  - Installation instructions have changed. Refer to
347
- [INSTALL.md](https://github.com/oracle/node-oracledb/blob/master/INSTALL.md).
468
+ [INSTALL](https://oracle.github.io/node-oracledb/INSTALL.html).
348
469
  Distribution is still via source code.
349
470
 
350
471
  Oracle header files are no longer needed. The `OCI_LIB_DIR` and
@@ -454,21 +575,20 @@
454
575
  ## node-oracledb v1.12.0 Development (3 Dec 2016)
455
576
 
456
577
  - Significantly enhanced LOB support:
457
- - Added `BIND_IN` support for DML
458
- - Added `BIND_IN`, `BIND_OUT`, `BIND_INOUT` support for PL/SQL
459
- - Added a `connection.createLob()` method to create temporary LOBs
460
- - Added a `lob.close()` method
461
- - Made enhancements to allow binding String or Buffer data as `STRING` or `BUFFER` to LOB database types
462
- - Writeable LOB Streams now conclude with a 'close' event
578
+ - Added `BIND_IN` support for DML
579
+ - Added `BIND_IN`, `BIND_OUT`, `BIND_INOUT` support for PL/SQL
580
+ - Added a `connection.createLob()` method to create temporary LOBs
581
+ - Added a `lob.close()` method
582
+ - Made enhancements to allow binding String or Buffer data as `STRING` or `BUFFER` to LOB database types
583
+ - Writeable LOB Streams now conclude with a 'close' event
463
584
 
464
585
  - Added a connection pool 'ping' feature controlled with
465
586
  `oracledb.poolPingInterval` and a corresponding `createPool()`
466
587
  option. This validates pooled connections when they are returned
467
- from a `getConnection()` call. Values are
468
-
469
- - zero: always ping for every pooled `getConnection()`
470
- - negative: never ping
471
- - positive: time in seconds the connection must be idle in the pool before `getConnection()` does a ping. Default is 60 seconds
588
+ from a `getConnection()` call. Values are:
589
+ - zero: always ping for every pooled `getConnection()`
590
+ - negative: never ping
591
+ - positive: time in seconds the connection must be idle in the pool before `getConnection()` does a ping. Default is 60 seconds
472
592
 
473
593
  The setting is a no-op when node-oracledb is built with Oracle
474
594
  Database 12.2 client libraries, where a new, lower-level OCI feature
@@ -566,10 +686,10 @@
566
686
  - Some enhancements were made to the underlying DPI data access layer.
567
687
  **These are not exposed to node-oracledb users.**
568
688
 
569
- - Allow <code>SYSDBA</code> connections
570
- - Allow session tagging
571
- - Allow the character set and national character set to be specified via parameters to the DPI layer.
572
- - Support heterogeneous pools (in addition to existing homogeneous pools)
689
+ - Allow <code>SYSDBA</code> connections
690
+ - Allow session tagging
691
+ - Allow the character set and national character set to be specified via parameters to the DPI layer.
692
+ - Support heterogeneous pools (in addition to existing homogeneous pools)
573
693
 
574
694
  ## node-oracledb v1.9.3 (24 May 2016)
575
695
 
@@ -942,8 +1062,8 @@
942
1062
 
943
1063
  - High Availability Features
944
1064
 
945
- - Fast Application Notification (FAN)
1065
+ - Fast Application Notification (FAN)
946
1066
 
947
- - Runtime Load Balancing (RLB)
1067
+ - Runtime Load Balancing (RLB)
948
1068
 
949
- - Transparent Application Failover (TAF)
1069
+ - Transparent Application Failover (TAF)
package/LICENSE.md CHANGED
@@ -223,28 +223,62 @@ limitations under the License.
223
223
  # NAN
224
224
 
225
225
  ```
226
- Copyright (c) 2015 NAN contributors
226
+ The MIT License (MIT)
227
+ =====================
227
228
 
228
- NAN contributors listed at https://github.com/rvagg/nan#contributors
229
+ Copyright (c) 2017 NAN contributors
230
+ -----------------------------------
229
231
 
230
- Permission is hereby granted, free of charge, to any person obtaining
231
- a copy of this software and associated documentation files (the
232
- "Software"), to deal in the Software without restriction, including
233
- without limitation the rights to use, copy, modify, merge, publish,
234
- distribute, sublicense, and/or sell copies of the Software, and to
235
- permit persons to whom the Software is furnished to do so, subject to
236
- the following conditions:
232
+ NAN contributors listed at https://github.com/nodejs/nan#contributors
237
233
 
238
- The above copyright notice and this permission notice shall be
239
- included in all copies or substantial portions of the Software.
234
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the
235
+ "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute,
236
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
240
237
 
241
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
242
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
243
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
244
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
245
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
246
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
247
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
238
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
239
+
240
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
241
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
242
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
243
+ OTHER DEALINGS IN THE SOFTWARE.
244
+
245
+ -------------------------------------------------------------------------------
246
+
247
+ WG Members / Collaborators
248
+
249
+ Rod Vagg - https://github.com/rvagg http://twitter.com/rvagg
250
+ Benjamin Byholm - https://github.com/kkoopa/
251
+ Trevor Norris - https://github.com/trevnorris http://twitter.com/trevnorris
252
+ Nathan Rajlich - https://github.com/TooTallNate http://twitter.com/TooTallNate
253
+ Brett Lawson - https://github.com/brett19 http://twitter.com/brett19x
254
+ Ben Noordhuis - https://github.com/bnoordhuis http://twitter.com/bnoordhuis
255
+ David Siegel - https://github.com/agnat http://twitter.com/agnat
256
+ Michael Ira Krufky - https://github.com/mkrufky http://twitter.com/mkrufky
257
+
258
+ -------------------------------------------------------------------------------
259
+
260
+ nan_string_bytes.h:
261
+
262
+ Copyright Joyent, Inc. and other Node contributors.
263
+
264
+ Permission is hereby granted, free of charge, to any person obtaining a
265
+ copy of this software and associated documentation files (the
266
+ "Software"), to deal in the Software without restriction, including
267
+ without limitation the rights to use, copy, modify, merge, publish,
268
+ distribute, sublicense, and/or sell copies of the Software, and to permit
269
+ persons to whom the Software is furnished to do so, subject to the
270
+ following conditions:
271
+
272
+ The above copyright notice and this permission notice shall be included
273
+ in all copies or substantial portions of the Software.
274
+
275
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
276
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
277
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
278
+ NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
279
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
280
+ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
281
+ USE OR OTHER DEALINGS IN THE SOFTWARE.
248
282
  ```
249
283
 
250
284
  # Mocha
package/README.md CHANGED
@@ -1,69 +1,35 @@
1
- # node-oracledb version 2.1
2
-
3
- ## <a name="about"></a> About node-oracledb
1
+ # node-oracledb version 2.3
4
2
 
5
3
  The node-oracledb add-on for Node.js powers high performance Oracle
6
4
  Database applications.
7
5
 
8
- Use node-oracledb to connect Node.js 4, 6, 8 and 9 to Oracle Database.
9
-
10
- The add-on is stable, well documented, and has a comprehensive test suite.
11
-
12
- The node-oracledb project is open source and maintained by Oracle Corp.
6
+ Use node-oracledb to connect Node.js 6, 8 and 10 to Oracle Database.
13
7
 
14
- ### Node-oracledb supports:
8
+ Node-oracledb supports basic and advanced features of Oracle Database
9
+ and Oracle Client. See the
10
+ [homepage](https://oracle.github.io/node-oracledb/) for a list.
15
11
 
16
- - [Async/Await][2], [Promises][3], [Callbacks][4] and [Streams][5]
17
- - [SQL and PL/SQL execution][6]
18
- - [REF CURSORs][7]
19
- - [Large Objects: CLOBs and BLOBs as Streams or Strings and Buffers][8]
20
- - [Oracle Database 12c JSON datatype][9]
21
- - [Query results as JavaScript objects or arrays][10]
22
- - [Smart mapping between JavaScript and Oracle types with manual override available][11]
23
- - [Data binding using JavaScript types, objects or arrays][12]
24
- - [Transaction Management][13]
25
- - [Inbuilt Connection Pool with Queuing, Aliasing and Liveness checking][14]
26
- - [Database Resident Connection Pooling (DRCP)][15]
27
- - [External Authentication][16]
28
- - [Array Fetches][17]
29
- - [Statement Caching][18]
30
- - [Client Result Caching][19]
31
- - [End-to-end Tracing, Mid-tier Authentication, and Auditing][20]
32
- - Oracle High Availability Features
33
- - [Fast Application Notification (FAN)][21]
34
- - [Runtime Load Balancing (RLB)][22]
35
- - [Transparent Application Failover (TAF)][23]
12
+ The node-oracledb module is open source and maintained by Oracle Corp.
13
+ It is stable, well documented, and has a comprehensive test suite.
36
14
 
37
- We are actively working on supporting the best Oracle Database
38
- features, and on functionality requests from [users involved in the
39
- project][24].
40
-
41
- ## <a name="start"></a> Getting Started
15
+ ## <a name="installation"></a> Installation
42
16
 
43
- See [Getting Started with Node-oracledb][1].
17
+ See [Getting Started with Node-oracledb][1] and [Quick Start Node-oracledb Installation][37].
44
18
 
45
- ## <a name="installation"></a> Installation
19
+ ## <a name="doc"></a> Documentation
46
20
 
47
- See [Quick Start Node-oracledb Installation][37].
21
+ See [Documentation for the Oracle Database Node.js Add-on][32] and the [CHANGELOG][33].
48
22
 
49
23
  ## <a name="examples"></a> Examples
50
24
 
51
25
  See the [examples][30] directory. Start with
52
26
  [examples/select1.js][31].
53
27
 
54
- ## <a name="doc"></a> Documentation
55
-
56
- See [Documentation for the Oracle Database Node.js Add-on][32].
57
-
58
28
  ## <a name="help"></a> Help
59
29
 
60
30
  Issues and questions can be raised with the node-oracledb community on
61
31
  [GitHub][24].
62
32
 
63
- ## <a name="changes"></a> Changes
64
-
65
- See [CHANGELOG][33].
66
-
67
33
  ## <a name="testing"></a> Tests
68
34
 
69
35
  To run the test suite see [test/README][34].
@@ -94,35 +60,36 @@ limitations under the License.
94
60
 
95
61
 
96
62
 
97
- [1]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#getstarted
98
- [2]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#asyncawaitoverview
99
- [3]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#promiseoverview
100
- [4]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#intro
101
- [5]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#querystream
102
- [6]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#sqlexecution
103
- [7]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#refcursors
104
- [8]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#lobhandling
105
- [9]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#jsondatatype
106
- [10]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#queryoutputformats
107
- [11]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#typemap
108
- [12]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#bind
109
- [13]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#transactionmgt
110
- [14]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#connpooling
111
- [15]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#drcp
112
- [16]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#extauth
113
- [17]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#propdbfetcharraysize
114
- [18]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#stmtcache
63
+ [1]: https://oracle.github.io/node-oracledb/doc/api.html#getstarted
64
+ [2]: https://oracle.github.io/node-oracledb/doc/api.html#asyncawaitoverview
65
+ [3]: https://oracle.github.io/node-oracledb/doc/api.html#promiseoverview
66
+ [4]: https://oracle.github.io/node-oracledb/doc/api.html#intro
67
+ [5]: https://oracle.github.io/node-oracledb/doc/api.html#querystream
68
+ [6]: https://oracle.github.io/node-oracledb/doc/api.html#sqlexecution
69
+ [7]: https://oracle.github.io/node-oracledb/doc/api.html#refcursors
70
+ [8]: https://oracle.github.io/node-oracledb/doc/api.html#lobhandling
71
+ [9]: https://oracle.github.io/node-oracledb/doc/api.html#jsondatatype
72
+ [10]: https://oracle.github.io/node-oracledb/doc/api.html#queryoutputformats
73
+ [11]: https://oracle.github.io/node-oracledb/doc/api.html#typemap
74
+ [12]: https://oracle.github.io/node-oracledb/doc/api.html#bind
75
+ [13]: https://oracle.github.io/node-oracledb/doc/api.html#transactionmgt
76
+ [14]: https://oracle.github.io/node-oracledb/doc/api.html#connpooling
77
+ [15]: https://oracle.github.io/node-oracledb/doc/api.html#drcp
78
+ [16]: https://oracle.github.io/node-oracledb/doc/api.html#extauth
79
+ [17]: https://oracle.github.io/node-oracledb/doc/api.html#propdbfetcharraysize
80
+ [18]: https://oracle.github.io/node-oracledb/doc/api.html#stmtcache
115
81
  [19]: https://docs.oracle.com/database/122/ADFNS/performance-and-scalability.htm#ADFNS464
116
- [20]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#endtoend
117
- [21]: https://docs.oracle.com/database/122/ADFNS/high-availability.htm#ADFNS538
118
- [22]: https://docs.oracle.com/database/122/ADFNS/connection_strategies.htm#ADFNS515
82
+ [20]: https://oracle.github.io/node-oracledb/doc/api.html#endtoend
83
+ [21]: https://oracle.github.io/node-oracledb/doc/api.html#connectionfan
84
+ [22]: https://oracle.github.io/node-oracledb/doc/api.html#connectionrlb
119
85
  [23]: https://docs.oracle.com/database/122/ADFNS/high-availability.htm#ADFNS-GUID-96599425-9BDA-483C-9BA2-4A4D13013A37
120
86
  [24]: https://github.com/oracle/node-oracledb/issues
121
87
  [30]: https://github.com/oracle/node-oracledb/blob/master/examples
122
88
  [31]: https://github.com/oracle/node-oracledb/blob/master/examples/select1.js#L35
123
- [32]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md
89
+ [32]: https://oracle.github.io/node-oracledb/doc/api.html
124
90
  [33]: https://github.com/oracle/node-oracledb/blob/master/CHANGELOG.md
125
91
  [34]: https://github.com/oracle/node-oracledb/blob/master/test/README.md
126
92
  [35]: https://github.com/oracle/node-oracledb/blob/master/CONTRIBUTING.md
127
93
  [36]: http://www.apache.org/licenses/LICENSE-2.0
128
- [37]: https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#quickstart
94
+ [37]: https://oracle.github.io/node-oracledb/INSTALL.html#quickstart
95
+ [38]: https://oracle.github.io/node-oracledb/doc/api.html#getconnectiondbattrsprivilege
package/binding.gyp CHANGED
@@ -8,6 +8,7 @@
8
8
  "src/njsPool.cpp",
9
9
  "src/njsConnection.cpp",
10
10
  "src/njsResultSet.cpp",
11
+ "src/njsSubscription.cpp",
11
12
  "src/njsMessages.cpp",
12
13
  "src/njsIntLob.cpp",
13
14
  "odpi/src/dpiConn.c",
@@ -40,7 +41,7 @@
40
41
  [
41
42
  'OS=="linux"', {
42
43
  "variables" : {
43
- "dpi_check%" : "<!(INSTURL=\"https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#github\"; ERR=\"oracledb ERR! Error:\"; if [ -f odpi/include/dpi.h ]; then echo \"Has dpi.h\"; else echo \"$ERR Cannot find odpi/include/dpi.h. For GitHub ZIP downloads you must separately download the odpi subdirectory from GitHub.\" >&2; echo \"$ERR See $INSTURL\" >&2; echo \"\" >&2; fi;)"
44
+ "dpi_check%" : "<!(INSTURL=\"https://oracle.github.io/node-oracledb/INSTALL.html#github\"; ERR=\"oracledb ERR! Error:\"; if [ -f odpi/include/dpi.h ]; then echo \"Has dpi.h\"; else echo \"$ERR Cannot find odpi/include/dpi.h. For GitHub ZIP downloads you must separately download the odpi subdirectory from GitHub.\" >&2; echo \"$ERR See $INSTURL\" >&2; echo \"\" >&2; fi;)"
44
45
  },
45
46
  "cflags" : ['-fexceptions'],
46
47
  "cflags_cc" : ['-fexceptions'],
@@ -50,7 +51,7 @@
50
51
  [
51
52
  'OS=="mac"', {
52
53
  "variables" : {
53
- "dpi_check%" : "<!(INSTURL=\"https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#github\"; ERR=\"oracledb ERR! Error:\"; if [ -f odpi/include/dpi.h ]; then echo \"Has dpi.h\"; else echo \"$ERR Cannot find odpi/include/dpi.h. For GitHub ZIP downloads you must separately download the odpi subdirectory from GitHub.\" >&2; echo \"$ERR See $INSTURL\" >&2; echo \"\" >&2; fi;)"
54
+ "dpi_check%" : "<!(INSTURL=\"https://oracle.github.io/node-oracledb/INSTALL.html#github\"; ERR=\"oracledb ERR! Error:\"; if [ -f odpi/include/dpi.h ]; then echo \"Has dpi.h\"; else echo \"$ERR Cannot find odpi/include/dpi.h. For GitHub ZIP downloads you must separately download the odpi subdirectory from GitHub.\" >&2; echo \"$ERR See $INSTURL\" >&2; echo \"\" >&2; fi;)"
54
55
  },
55
56
  "xcode_settings": {
56
57
  "GCC_ENABLE_CPP_EXCEPTIONS": "YES",
@@ -62,7 +63,7 @@
62
63
  [
63
64
  'OS=="aix"', {
64
65
  "variables" : {
65
- "dpi_check%" : "<!(INSTURL=\"https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#github\"; ERR=\"oracledb ERR! Error:\"; if [ -f odpi/include/dpi.h ]; then echo \"Has dpi.h\"; else echo \"$ERR Cannot find odpi/include/dpi.h. For GitHub ZIP downloads you must separately download the odpi subdirectory from GitHub.\" >&2; echo \"$ERR See $INSTURL\" >&2; echo \"\" >&2; fi;)"
66
+ "dpi_check%" : "<!(INSTURL=\"https://oracle.github.io/node-oracledb/INSTALL.html#github\"; ERR=\"oracledb ERR! Error:\"; if [ -f odpi/include/dpi.h ]; then echo \"Has dpi.h\"; else echo \"$ERR Cannot find odpi/include/dpi.h. For GitHub ZIP downloads you must separately download the odpi subdirectory from GitHub.\" >&2; echo \"$ERR See $INSTURL\" >&2; echo \"\" >&2; fi;)"
66
67
  },
67
68
  "cflags" : ['-fexceptions', '-fsigned-char'],
68
69
  "cflags_cc" : ['-fexceptions', '-fsigned-char'],
@@ -72,7 +73,7 @@
72
73
  [
73
74
  'OS=="solaris"', {
74
75
  "variables" : {
75
- "dpi_check%" : "<!(INSTURL=\"https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#github\"; ERR=\"oracledb ERR! Error:\"; if [ -f odpi/include/dpi.h ]; then echo \"Has dpi.h\"; else echo \"$ERR Cannot find odpi/include/dpi.h. For GitHub ZIP downloads you must separately download the odpi subdirectory from GitHub.\" >&2; echo \"$ERR See $INSTURL\" >&2; echo \"\" >&2; fi;)"
76
+ "dpi_check%" : "<!(INSTURL=\"https://oracle.github.io/node-oracledb/INSTALL.html#github\"; ERR=\"oracledb ERR! Error:\"; if [ -f odpi/include/dpi.h ]; then echo \"Has dpi.h\"; else echo \"$ERR Cannot find odpi/include/dpi.h. For GitHub ZIP downloads you must separately download the odpi subdirectory from GitHub.\" >&2; echo \"$ERR See $INSTURL\" >&2; echo \"\" >&2; fi;)"
76
77
  },
77
78
  "cflags" : ['-fexceptions'],
78
79
  "cflags_cc" : ['-fexceptions'],