Skip to content

Commit a30f2c9

Browse files
committed
Implementation of resultSet.getRow() buffering in JavaScript instead of C++.
1 parent e515566 commit a30f2c9

20 files changed

+349
-312
lines changed

INSTALL.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ The [*node-oracledb*][1] add-on for Node.js powers high performance Oracle Datab
4444
The steps below create a Node.js installation for testing. Adjust the
4545
steps for your environment.
4646

47-
This node-oracledb release has been tested with Node 4, 6 and 8 on
47+
This node-oracledb release has been tested with Node 4, 6, 8 and 9 on
4848
64-bit Oracle Linux, Windows and macOS. The add-on can also build on
4949
some 32-bit Linux, 32-bit Windows, Solaris and AIX environments, but
5050
these architectures have not been fully tested.
@@ -54,7 +54,7 @@ these architectures have not been fully tested.
5454
In node-oracledb 2.x, pre-built binaries are available as a
5555
convenience for common architectures. Note the operating systems and
5656
versions of Node.js that the binaries are compatibile with will change
57-
as the Node.js project evolves, and are not guaranteed.
57+
as the Node.js project evolves, and are not guaranteed to stay the same.
5858

5959
Building from source code has improved significantly in 2.x The Oracle
6060
header files and node-oracledb environment variables `OCI_INC_DIR` and
@@ -70,6 +70,10 @@ Node-oracledb 2.x binaries will run with any of the Oracle client
7070
available Oracle functionality will vary with different Oracle Client
7171
versions.
7272

73+
See the [CHANGELOG][43] and [Migrating from node-oracledb 1.13 to
74+
node-oracledb 2.0][42] for more information about node-oracledb
75+
version 2.
76+
7377
## <a name="quickstart"></a> 2. Quick Start Node-oracledb Installation
7478

7579
Many users will be able to use pre-built node-oracledb binaries:
@@ -1604,3 +1608,5 @@ If `require('oracledb')` fails:
16041608
[39]: https://asktom.oracle.com/
16051609
[40]: https://github.com/oracle/node-oracledb/tags
16061610
[41]: https://github.com/oracle/node-oracledb/releases
1611+
[42]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#migratev1v2
1612+
[43]: https://github.com/oracle/node-oracledb/blob/master/CHANGELOG.md

README.md

Lines changed: 95 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -5,83 +5,93 @@
55
The node-oracledb add-on for Node.js powers high performance Oracle
66
Database applications.
77

8-
Use node-oracledb to connect Node.js 4, 6, and 8 to Oracle Database.
8+
Use node-oracledb to connect Node.js 4, 6, 8 and 9 to Oracle Database.
99

1010
The add-on is stable, well documented, and has a comprehensive test suite.
1111

1212
The node-oracledb project is open source and maintained by Oracle Corp. The home page is on the
13-
[Oracle Technology Network](http://www.oracle.com/technetwork/database/database-technologies/scripting-languages/node_js/).
13+
[Oracle Technology Network][1].
1414

1515
### Node-oracledb supports:
1616

17-
- [Async/Await](https://github.com/oracle/node-oracledb/blob/master/doc/api.md#asyncawaitoverview), [Promises](https://github.com/oracle/node-oracledb/blob/master/doc/api.md#promiseoverview), [Callbacks](https://github.com/oracle/node-oracledb/blob/master/doc/api.md#intro) and [Streams](https://github.com/oracle/node-oracledb/blob/master/doc/api.md#querystream)
18-
- [SQL and PL/SQL execution](https://github.com/oracle/node-oracledb/blob/master/doc/api.md#sqlexecution)
19-
- [REF CURSORs](https://github.com/oracle/node-oracledb/blob/master/doc/api.md#refcursors)
20-
- [Large Objects: CLOBs and BLOBs as Streams or Strings and Buffers](https://github.com/oracle/node-oracledb/blob/master/doc/api.md#lobhandling)
21-
- [Oracle Database 12c JSON datatype](https://github.com/oracle/node-oracledb/blob/master/doc/api.md#jsondatatype)
22-
- [Query results as JavaScript objects or arrays](https://github.com/oracle/node-oracledb/blob/master/doc/api.md#queryoutputformats)
23-
- [Smart mapping between JavaScript and Oracle types with manual override available](https://github.com/oracle/node-oracledb/blob/master/doc/api.md#typemap)
24-
- [Data binding using JavaScript types, objects or arrays](https://github.com/oracle/node-oracledb/blob/master/doc/api.md#bind)
25-
- [Transaction Management](https://github.com/oracle/node-oracledb/blob/master/doc/api.md#transactionmgt)
26-
- [Inbuilt Connection Pool with Queueing, Aliasing and Liveness checking](https://github.com/oracle/node-oracledb/blob/master/doc/api.md#connpooling)
27-
- [Database Resident Connection Pooling (DRCP)](https://github.com/oracle/node-oracledb/blob/master/doc/api.md#drcp)
28-
- [External Authentication](https://github.com/oracle/node-oracledb/blob/master/doc/api.md#extauth)
29-
- [Row Prefetching](https://github.com/oracle/node-oracledb/blob/master/doc/api.md#rowprefetching)
30-
- [Statement Caching](https://github.com/oracle/node-oracledb/blob/master/doc/api.md#stmtcache)
31-
- [Client Result Caching](https://docs.oracle.com/database/122/ADFNS/performance-and-scalability.htm#ADFNS464)
32-
- [End-to-end Tracing, Mid-tier Authentication, and Auditing](https://github.com/oracle/node-oracledb/blob/master/doc/api.md#endtoend)
17+
- [Async/Await][2], [Promises][3], [Callbacks][4] and [Streams][5]
18+
- [SQL and PL/SQL execution][6]
19+
- [REF CURSORs][7]
20+
- [Large Objects: CLOBs and BLOBs as Streams or Strings and Buffers][8]
21+
- [Oracle Database 12c JSON datatype][9]
22+
- [Query results as JavaScript objects or arrays][10]
23+
- [Smart mapping between JavaScript and Oracle types with manual override available][11]
24+
- [Data binding using JavaScript types, objects or arrays][12]
25+
- [Transaction Management][13]
26+
- [Inbuilt Connection Pool with Queueing, Aliasing and Liveness checking][14]
27+
- [Database Resident Connection Pooling (DRCP)][15]
28+
- [External Authentication][16]
29+
- [Array Fetches][17]
30+
- [Statement Caching][18]
31+
- [Client Result Caching][19]
32+
- [End-to-end Tracing, Mid-tier Authentication, and Auditing][20]
3333
- Oracle High Availability Features
34-
- [Fast Application Notification (FAN)](https://docs.oracle.com/database/122/ADFNS/high-availability.htm#ADFNS538)
35-
- [Runtime Load Balancing (RLB)](https://docs.oracle.com/database/122/ADFNS/connection_strategies.htm#ADFNS515)
36-
- [Transparent Application Failover (TAF)](https://docs.oracle.com/database/122/ADFNS/high-availability.htm#ADFNS-GUID-96599425-9BDA-483C-9BA2-4A4D13013A37)
34+
- [Fast Application Notification (FAN)][21]
35+
- [Runtime Load Balancing (RLB)][22]
36+
- [Transparent Application Failover (TAF)][23]
3737

3838
We are actively working on supporting the best Oracle Database
39-
features, and on functionality requests from
40-
[users involved in the project](https://github.com/oracle/node-oracledb/issues).
39+
features, and on functionality requests from [users involved in the
40+
project][24].
4141

4242
## <a name="installation"></a> Installation
4343

44-
Prerequisites:
44+
- Run `npm install oracledb` to install from the [npm registry][25].
4545

46-
- [Python 2.7](https://www.python.org/downloads/)
47-
- C Compiler with support for C++ 11 (Xcode, gcc, Visual Studio or similar)
48-
- The client libraries for Oracle Database 12.2, 12.1 or 11.2 in your OS library search path, such as `PATH` on Windows, or `LD_LIBRARY_PATH` on Linux, or in `~/lib` on macOS. On Windows, Visual Studio [redistributables are required](https://github.com/oracle/node-oracledb/tree/master/INSTALL.md#winprereqs). If your database is remote, use the client libraries from the free [Oracle Instant Client](http://www.oracle.com/technetwork/database/features/instant-client/index-100365.html) "Basic" package. Or use the client libraries from a locally installed database such as the free [Oracle XE](http://www.oracle.com/technetwork/database/database-technologies/express-edition/overview/index.html) release. Version 12.2 client libraries can connect to Oracle Database 11.2 or greater. Version 12.1 client libraries can connect to Oracle Database 10.2 or greater. Version 11.2 client libraries can connect to Oracle Database 9.2 or greater.
46+
- Add Oracle 12.2, 12.1 or 11.2 client libraries to your OS library
47+
search path, such as `PATH` on Windows, or `LD_LIBRARY_PATH` on
48+
Linux, or in `~/lib` on macOS.
4949

50-
Run `npm install oracledb` to install from the [npm registry](https://www.npmjs.com/package/oracledb).
50+
- If your database is remote, then download and unzip the client
51+
libraries from the free [Oracle Instant Client][26] "Basic" or
52+
"Basic Light" package for your operating system architecture. On
53+
Windows, [Visual Studio redistributables][27] are also required.
5154

52-
See [INSTALL](https://github.com/oracle/node-oracledb/tree/master/INSTALL.md) for details.
55+
- Alternatively use the client libraries already available in a
56+
locally installed database such as the free [Oracle XE][28]
57+
release.
58+
59+
Version 12.2 client libraries can connect to Oracle Database 11.2 or
60+
greater. Version 12.1 client libraries can connect to Oracle Database
61+
10.2 or greater. Version 11.2 client libraries can connect to Oracle
62+
Database 9.2 or greater.
63+
64+
See [INSTALL][29] for details.
5365

5466
## <a name="examples"></a> Examples
5567

56-
See the
57-
[examples](https://github.com/oracle/node-oracledb/tree/master/examples) directory.
58-
Start
59-
with
60-
[examples/select1.js](https://github.com/oracle/node-oracledb/blob/master/examples/select1.js#L35).
68+
See the [examples][30] directory. Start with
69+
[examples/select1.js][31].
6170

6271
## <a name="doc"></a> Documentation
6372

64-
See [Documentation for the Oracle Database Node.js Add-on](https://github.com/oracle/node-oracledb/tree/master/doc/api.md).
73+
See [Documentation for the Oracle Database Node.js Add-on][32].
6574

6675
## <a name="help"></a> Help
6776

68-
Issues and questions can be raised with the node-oracledb community on [GitHub](https://github.com/oracle/node-oracledb/issues).
77+
Issues and questions can be raised with the node-oracledb community on
78+
[GitHub][24].
6979

7080
## <a name="changes"></a> Changes
7181

72-
See [CHANGELOG](https://github.com/oracle/node-oracledb/tree/master/CHANGELOG.md).
82+
See [CHANGELOG][33].
7383

7484
## <a name="testing"></a> Tests
7585

76-
To run the test suite see [test/README](https://github.com/oracle/node-oracledb/tree/master/test/README.md).
86+
To run the test suite see [test/README][34].
7787

7888
## <a name="contrib"></a> Contributing
7989

80-
Node-oracledb is an open source project. See
81-
[CONTRIBUTING](https://github.com/oracle/node-oracledb/tree/master/CONTRIBUTING.md)
82-
for details.
90+
Node-oracledb is an open source project. See [CONTRIBUTING][35] for
91+
details.
8392

84-
Oracle gratefully acknowledges the contributions to node-oracledb that have been made by the community.
93+
Oracle gratefully acknowledges the contributions to node-oracledb that
94+
have been made by the community.
8595

8696
## <a name="license"></a> License
8797

@@ -91,11 +101,49 @@ You may not use the identified files except in compliance with the Apache
91101
License, Version 2.0 (the "License.")
92102

93103
You may obtain a copy of the License at
94-
http://www.apache.org/licenses/LICENSE-2.0.
95-
96-
Unless required by applicable law or agreed to in writing, software
97-
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
98-
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
104+
[http://www.apache.org/licenses/LICENSE-2.0][36]. Unless required by
105+
applicable law or agreed to in writing, software distributed under the
106+
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
107+
CONDITIONS OF ANY KIND, either express or implied.
99108

100109
See the License for the specific language governing permissions and
101110
limitations under the License.
111+
112+
113+
114+
[1]: http://www.oracle.com/technetwork/database/database-technologies/scripting-languages/node_js/
115+
[2]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#asyncawaitoverview
116+
[3]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#promiseoverview
117+
[4]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#intro
118+
[5]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#querystream
119+
[6]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#sqlexecution
120+
[7]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#refcursors
121+
[8]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#lobhandling
122+
[9]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#jsondatatype
123+
[10]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#queryoutputformats
124+
[11]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#typemap
125+
[12]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#bind
126+
[13]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#transactionmgt
127+
[14]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#connpooling
128+
[15]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#drcp
129+
[16]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#extauth
130+
[17]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#propdbfetcharraysize
131+
[18]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#stmtcache
132+
[19]: https://docs.oracle.com/database/122/ADFNS/performance-and-scalability.htm#ADFNS464
133+
[20]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#endtoend
134+
[21]: https://docs.oracle.com/database/122/ADFNS/high-availability.htm#ADFNS538
135+
[22]: https://docs.oracle.com/database/122/ADFNS/connection_strategies.htm#ADFNS515
136+
[23]: https://docs.oracle.com/database/122/ADFNS/high-availability.htm#ADFNS-GUID-96599425-9BDA-483C-9BA2-4A4D13013A37
137+
[24]: https://github.com/oracle/node-oracledb/issues
138+
[25]: https://www.npmjs.com/package/oracledb
139+
[26]: http://www.oracle.com/technetwork/database/features/instant-client/index-100365.html
140+
[27]: https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#winredists
141+
[28]: http://www.oracle.com/technetwork/database/database-technologies/express-edition/overview/index.html
142+
[29]: https://github.com/oracle/node-oracledb/blob/master/INSTALL.md
143+
[30]: https://github.com/oracle/node-oracledb/blob/master/examples
144+
[31]: https://github.com/oracle/node-oracledb/blob/master/examples/select1.js#L35
145+
[32]: https://github.com/oracle/node-oracledb/blob/master/doc/api.md
146+
[33]: https://github.com/oracle/node-oracledb/blob/master/CHANGELOG.md
147+
[34]: https://github.com/oracle/node-oracledb/blob/master/test/README.md
148+
[35]: https://github.com/oracle/node-oracledb/blob/master/CONTRIBUTING.md
149+
[36]: http://www.apache.org/licenses/LICENSE-2.0

0 commit comments

Comments
 (0)