|
1 | 1 | # Change Log
|
2 | 2 |
|
3 |
| -## node-oracledb v2.0.15 Development (DD Mon YYYY) |
| 3 | +## node-oracledb v2.0.15 (15 Dec 2017) changes since node-oracledb version 1 |
| 4 | + |
| 5 | +- Release testing is now done for Node.js 4, 6, 8 and 9. |
| 6 | + |
| 7 | +- Node-oracledb now uses the [ODPI-C](https://github.com/oracle/odpi) |
| 8 | + database abstraction library. |
| 9 | + |
| 10 | +- Upgraded [NAN](https://github.com/nodejs/nan) build dependency to 2.8. |
| 11 | + |
| 12 | +- Installation has significantly improved. Some pre-built binaries |
| 13 | + are available for convenience, or the add-on can be continue to built |
| 14 | + from source code. Refer to |
| 15 | + [INSTALL.md](https://github.com/oracle/node-oracledb/blob/master/INSTALL.md). |
| 16 | + |
| 17 | + - Added utilities to /package for building binaries for |
| 18 | + distribution, and for installing them. |
| 19 | + |
| 20 | + - When building from source code: |
| 21 | + - Oracle header files are no longer needed. |
| 22 | + - The `OCI_LIB_DIR` and `OCI_INC_DIR` environment variables are not needed. |
| 23 | + |
| 24 | + - A single node-oracledb binary now works with any of the Oracle |
| 25 | + 11.2, 12.1 or 12.2 clients. This improves portability when the |
| 26 | + node-oracledb add-on is copied between machines. Applications |
| 27 | + should be tested with their target environment to make sure |
| 28 | + expected Oracle functionality is available. |
| 29 | + |
| 30 | + - At run time, users of macOS must put the Oracle client libraries |
| 31 | + in `~/lib` or `/usr/local/lib`. Linux users of Instant Client |
| 32 | + RPMs must always set `LD_LIBRARY_PATH` or use ldconfig - the |
| 33 | + previous RPATH linking option is not available. Other Linux users |
| 34 | + should continue to use `LD_LIBRARY_PATH` or ldconfig. Windows |
| 35 | + users should continue to put Oracle client libraries in `PATH`. |
| 36 | + |
| 37 | + - On non-Windows platforms, if Oracle client libraries are not |
| 38 | + located in the system library search path |
| 39 | + (e.g. `LD_LIBRARY_PATH`), then node-oracledb attempts to use |
| 40 | + libraries in `$ORACLE_HOME/lib`. |
| 41 | + |
| 42 | + - A new [Troubleshooting |
| 43 | + section](https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#troubleshooting) |
| 44 | + was add to INSTALL. |
| 45 | + |
| 46 | + - Improvements were made to `require('oracledb')` failure messages |
| 47 | + to help users resolve problems. |
| 48 | + |
| 49 | + - Changed the installation message prefix in binding.gyp from |
| 50 | + 'node-oracledb' to 'oracledb'. |
| 51 | + |
| 52 | +- Improved query handling: |
| 53 | + |
| 54 | + - Enhanced direct fetches to allow an unlimited number of rows to be |
| 55 | + fetched. This occurs when `oracledb.maxRows = 0` |
| 56 | + |
| 57 | + - Changed the default value of `oracledb.maxRows` to 0, meaning |
| 58 | + unlimited. |
| 59 | + |
| 60 | + - Replaced `prefetchRows` (used for internal fetch buffering and |
| 61 | + tuning) with a new property `fetchArraySize`. This affects direct |
| 62 | + fetches, ResultSet `getRow()` and `queryStream()`. |
| 63 | + |
| 64 | + - `getRows(numRows,...)` internal fetch buffering is now only tuned |
| 65 | + by the `numRows` value. |
| 66 | + |
| 67 | + - Implemented `getRow()` in JavaScript for better performance. |
| 68 | + |
| 69 | +- Tightened up checking on in-use ResultSets and Lobs to avoid leaks |
| 70 | + and threading issues by making sure the application has closed them |
| 71 | + before connections can be closed. The error DPI-1054 may now be |
| 72 | + seen if connections are attempted to be closed too early. |
| 73 | + |
| 74 | +- Added support for fetching columns types LONG (as String) and LONG |
| 75 | + RAW (as Buffer). There is no support for streaming these types, so |
| 76 | + the value stored in the database may not be able to be completely |
| 77 | + fetched if Node.js and V8 memory limits are reached. |
| 78 | + |
| 79 | +- Added support for TIMESTAMP WITH TIME ZONE date type. These are |
| 80 | + mapped to a Date object in node-oracledb using LOCAL TIME ZONE. |
| 81 | + The TIME ZONE component is not available in the Date object. |
| 82 | + |
| 83 | +- Added support for ROWID data type. Data is fetched as a String. |
| 84 | + |
| 85 | +- Added support for UROWID data type. Data is fetched as a String. |
| 86 | + |
| 87 | +- Added query support for NCHAR and NVARCHAR2 columns. Note binding |
| 88 | + these types for DML may not insert data correctly, depending on the |
| 89 | + database character set and the database national character set. |
| 90 | + |
| 91 | +- Added query support for NCLOB columns. NCLOB data can be streamed |
| 92 | + or fetched as String. Note binding NCLOB for DML may not insert |
| 93 | + data correctly, depending on the database character set and the |
| 94 | + database national character set. |
| 95 | + |
| 96 | +- Removed node-oracledb size restrictions on LOB `fetchAsString` and |
| 97 | + `fetchAsBuffer` queries, and also on LOB binds. Node.js memory |
| 98 | + restrictions will still prevent large LOBs being manipulated in |
| 99 | + single chunks. |
| 100 | + |
| 101 | +- In LOB binds, the bind `val` can now be a String when `type` is |
| 102 | + CLOB, and `val` can now be a Buffer when `type` is BLOB. |
| 103 | + |
| 104 | +- Improved validation for invalid attribute and parameter values. |
| 105 | + |
| 106 | +- The error parameter of function callbacks is now always null if no |
| 107 | + error occurred. |
| 108 | + |
| 109 | +- Database error messages no longer have an extra newline. |
| 110 | + |
| 111 | +- Statements that generate errors are now dropped from the statement |
| 112 | + cache. Applications running while table definitions change will no |
| 113 | + longer end up with unusable SQL statements due to stale cache |
| 114 | + entries. Note that Oracle best-practice is never to change table |
| 115 | + definitions while applications are executing. |
| 116 | + |
| 117 | +- Prevent use of NaN with Oracle numbers to avoid data corruption. |
| 118 | + |
| 119 | +- For LOB streaming, make sure 'close' is the very last event, and |
| 120 | + doesn't occur before an 'error' event. |
| 121 | + |
| 122 | +- Fix duplicate 'close' event for error conditions when streaming LOBs |
| 123 | + in Node 8. |
| 124 | + |
| 125 | +- `connection.createLob()` now uses Oracle Call Interface's (OCI) |
| 126 | + underlying 'cache' mode. |
| 127 | + |
| 128 | +- `Lob.close()` now marks LOBs invalid immediately rather than during |
| 129 | + the asynchronous portion of the `close()` method, so that all other |
| 130 | + attempts are no-ops. |
| 131 | + |
| 132 | +- Relaxed the restriction preventing `oracledb.connnectionClass` being |
| 133 | + used with dedicated connections; it previously gave ORA-56609. Now |
| 134 | + DRCP can now be used with dedicated connections but the |
| 135 | + `CLIENT_DRIVER` value in `V$SESSION_CONNECT_INFO` will not be set in |
| 136 | + this case. The recommendation is still to use a session pool when |
| 137 | + using DRCP. |
| 138 | + |
| 139 | +- Fixed a crash with LOB out binds in DML RETURNING statements when the |
| 140 | + number of rows returned exceeds the number of rows originally |
| 141 | + allocated internally. |
| 142 | + |
| 143 | +- Empty arrays can now be used in PL/SQL Collection Associative Array |
| 144 | + (Index-by) binds. |
| 145 | + |
| 146 | +- Some NJS and DPI error messages and numbers have changed. This is |
| 147 | + particularly true of DPI errors due to the use of ODPI-C. |
| 148 | + |
| 149 | +- Many new tests have been created. |
| 150 | + |
| 151 | +- Updated examples for new functionality. |
| 152 | + |
| 153 | +- Documentation has been updated and improved. |
| 154 | + |
| 155 | +## node-oracledb v2.0.15 (15 Dec 2017) |
| 156 | + |
| 157 | +- The stated compatibility is now for Node.js 4, 6, 8 and 9. |
| 158 | + |
| 159 | +- Improved query handling: |
| 160 | + |
| 161 | + - Enhanced direct fetches to allow an unlimited number of rows to be |
| 162 | + fetched. This occurs when `oracledb.maxRows = 0` |
| 163 | + |
| 164 | + - Changed the default value of `oracledb.maxRows` to 0, meaning |
| 165 | + unlimited. |
| 166 | + |
| 167 | + - Replaced `prefetchRows` (used for internal fetch buffering and |
| 168 | + tuning) with a new property `fetchArraySize`. This affects direct |
| 169 | + fetches, ResultSet `getRow()` and `queryStream()`. |
| 170 | + |
| 171 | + - `getRows(numRows,...)` internal fetch buffering is now only tuned |
| 172 | + by the `numRows` value. |
| 173 | + |
| 174 | + - Implemented `getRow()` in JavaScript for better performance. |
| 175 | + |
| 176 | + - Moved operations on REF CURSORS out of the main thread in order to |
| 177 | + improve performance and memory usage. |
| 178 | + |
| 179 | +- Fixed proxy support in the binary installer. |
| 180 | + |
| 181 | +- Ensured the callback error parameter is null, not undefined, when no |
| 182 | + error occurred. |
| 183 | + |
| 184 | +- Improvements were made to `require('oracledb')` failure messages to |
| 185 | + help users resolve installation and usage problems. |
| 186 | + |
| 187 | +- Fixed compiler deprecation warnings regarding `Nan::ForceSet`. |
4 | 188 |
|
5 | 189 | ## node-oracledb v2.0.14 Development (20 Nov 2017)
|
6 | 190 |
|
7 |
| -- Added infrastructure to /packge for creating binary installs. |
| 191 | +- Added infrastructure to /package for creating binary installs. |
8 | 192 | Updated INSTALL.md.
|
9 | 193 |
|
10 | 194 | - Improved validation for invalid attribute and parameter values.
|
|
47 | 231 |
|
48 | 232 | - Make sure 'close' is the very last event, and doesn't occur before
|
49 | 233 | an 'error' event. Also emit 'close' after 'error' event for
|
50 |
| - `querystream()` |
| 234 | + `queryStream()` |
51 | 235 |
|
52 | 236 | - Changed default sample connect string to `"localhost/orclpdb"` which
|
53 | 237 | is the Oracle Database 12.2 default for pluggable databases.
|
|
0 commit comments