Skip to content

Commit 717fb88

Browse files
committed
Renumber type constants to simplify any future binding enhancements
1 parent d9aec27 commit 717fb88

File tree

5 files changed

+77
-72
lines changed

5 files changed

+77
-72
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,12 @@
4444
This is an efficient alternative to `ALTER SESSION SET
4545
CURRENT_SCHEMA`.
4646

47+
- Renumbered [node-oracledb Type
48+
Constants](https://oracle.github.io/node-oracledb/doc/api.html#oracledbconstantsnodbtype)
49+
and [Oracle Database Type
50+
Constants](https://oracle.github.io/node-oracledb/doc/api.html#oracledbconstantsdbtype)
51+
to allow for future enhancements.
52+
4753
- Introduced [Query `outFormat`
4854
Constants](https://oracle.github.io/node-oracledb/doc/api.html#oracledbconstantsoutformat)
4955
`oracledb.OUT_FORMAT_ARRAY` and `oracledb.OUT_FORMAT_OBJECT`. The

doc/api.md

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -721,13 +721,13 @@ Not all constants can be used in all places.
721721

722722
Constant Name | Value |Description
723723
-------------------------------------|-------|-----------------------------------------------
724-
`oracledb.BLOB` | 2007 | Bind a BLOB to a Node.js Stream or create a temporary BLOB, or for fetchAsBuffer and fetchInfo
725-
`oracledb.BUFFER` | 2005 | Bind a RAW, LONG RAW or BLOB to a Node.js Buffer
726-
`oracledb.CLOB` | 2006 | Bind a CLOB to a Node.js Stream, create a temporary CLOB, or for fetchAsString and fetchInfo
727-
`oracledb.CURSOR` | 2004 | Bind a REF CURSOR to a node-oracledb ResultSet class
728-
`oracledb.DATE` | 2003 | Bind as JavaScript date type. Can also be used for fetchAsString and fetchInfo
724+
`oracledb.BLOB` | 2019 | Bind a BLOB to a Node.js Stream or create a temporary BLOB, or for fetchAsBuffer and fetchInfo
725+
`oracledb.BUFFER` | 2006 | Bind a RAW, LONG RAW or BLOB to a Node.js Buffer
726+
`oracledb.CLOB` | 2017 | Bind a CLOB to a Node.js Stream, create a temporary CLOB, or for fetchAsString and fetchInfo
727+
`oracledb.CURSOR` | 2021 | Bind a REF CURSOR to a node-oracledb ResultSet class
728+
`oracledb.DATE` | 2014 | Bind as JavaScript date type. Can also be used for fetchAsString and fetchInfo
729729
`oracledb.DEFAULT` | 0 | Used with fetchInfo to reset the fetch type to the database type
730-
`oracledb.NUMBER` | 2002 | Bind as JavaScript number type. Can also be used for fetchAsString and fetchInfo
730+
`oracledb.NUMBER` | 2010 | Bind as JavaScript number type. Can also be used for fetchAsString and fetchInfo
731731
`oracledb.STRING` | 2001 | Bind as JavaScript String type. Can be used for most database types.
732732

733733
#### <a name="oracledbconstantsdbtype"></a> 3.1.3 Oracle Database Type Constants
@@ -738,24 +738,24 @@ CURSORS. They indicate the Oracle Database type.
738738

739739
Constant Name | Value |Description
740740
-------------------------------------|-------|-----------------------------------------------
741-
`oracledb.DB_TYPE_BINARY_DOUBLE` | 101 | BINARY_DOUBLE
742-
`oracledb.DB_TYPE_BINARY_FLOAT` | 100 | BINARY_FLOAT
743-
`oracledb.DB_TYPE_BLOB` | 113 | BLOB
744-
`oracledb.DB_TYPE_CHAR` | 96 | CHAR
745-
`oracledb.DB_TYPE_CLOB` | 112 | CLOB
746-
`oracledb.DB_TYPE_DATE` | 12 | DATE
747-
`oracledb.DB_TYPE_LONG` | 8 | LONG
748-
`oracledb.DB_TYPE_LONG_RAW` | 24 | LONG RAW
749-
`oracledb.DB_TYPE_NCHAR` | 1096 | NCHAR
750-
`oracledb.DB_TYPE_NCLOB` | 1112 | NCLOB
751-
`oracledb.DB_TYPE_NUMBER` | 2 | NUMBER or FLOAT
752-
`oracledb.DB_TYPE_NVARCHAR` | 1001 | NVARCHAR
753-
`oracledb.DB_TYPE_RAW` | 23 | RAW
754-
`oracledb.DB_TYPE_ROWID` | 104 | ROWID
755-
`oracledb.DB_TYPE_TIMESTAMP` | 187 | TIMESTAMP
756-
`oracledb.DB_TYPE_TIMESTAMP_LTZ` | 232 | TIMESTAMP WITH LOCAL TIME ZONE
757-
`oracledb.DB_TYPE_TIMESTAMP_TZ` | 188 | TIMESTAMP WITH TIME ZONE
758-
`oracledb.DB_TYPE_VARCHAR` | 1 | VARCHAR2
741+
`oracledb.DB_TYPE_BINARY_DOUBLE` | 2008 | BINARY_DOUBLE
742+
`oracledb.DB_TYPE_BINARY_FLOAT` | 2007 | BINARY_FLOAT
743+
`oracledb.DB_TYPE_BLOB` | 2019 | BLOB
744+
`oracledb.DB_TYPE_CHAR` | 2003 | CHAR
745+
`oracledb.DB_TYPE_CLOB` | 2017 | CLOB
746+
`oracledb.DB_TYPE_DATE` | 2011 | DATE
747+
`oracledb.DB_TYPE_LONG` | 2024 | LONG
748+
`oracledb.DB_TYPE_LONG_RAW` | 2025 | LONG RAW
749+
`oracledb.DB_TYPE_NCHAR` | 2004 | NCHAR
750+
`oracledb.DB_TYPE_NCLOB` | 2018 | NCLOB
751+
`oracledb.DB_TYPE_NUMBER` | 2010 | NUMBER or FLOAT
752+
`oracledb.DB_TYPE_NVARCHAR` | 2002 | NVARCHAR
753+
`oracledb.DB_TYPE_RAW` | 2006 | RAW
754+
`oracledb.DB_TYPE_ROWID` | 2005 | ROWID
755+
`oracledb.DB_TYPE_TIMESTAMP` | 2012 | TIMESTAMP
756+
`oracledb.DB_TYPE_TIMESTAMP_LTZ` | 2014 | TIMESTAMP WITH LOCAL TIME ZONE
757+
`oracledb.DB_TYPE_TIMESTAMP_TZ` | 2013 | TIMESTAMP WITH TIME ZONE
758+
`oracledb.DB_TYPE_VARCHAR` | 2001 | VARCHAR2
759759

760760
#### <a name="oracledbconstantsbinddir"></a> 3.1.4 Execute Bind Direction Constants
761761

src/njsModule.h

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -125,35 +125,34 @@
125125

126126
// data types (loosely based on Javascript types)
127127
#define NJS_DATATYPE_DEFAULT 0
128-
#define NJS_DATATYPE_STR 2001
129-
#define NJS_DATATYPE_NUM 2002
130-
#define NJS_DATATYPE_DATE 2003
131-
#define NJS_DATATYPE_CURSOR 2004
132-
#define NJS_DATATYPE_BUFFER 2005
133-
#define NJS_DATATYPE_CLOB 2006
134-
#define NJS_DATATYPE_BLOB 2007
135-
#define NJS_DATATYPE_INT 2008
128+
#define NJS_DATATYPE_STR DPI_ORACLE_TYPE_VARCHAR
129+
#define NJS_DATATYPE_NUM DPI_ORACLE_TYPE_NUMBER
130+
#define NJS_DATATYPE_DATE DPI_ORACLE_TYPE_TIMESTAMP_LTZ
131+
#define NJS_DATATYPE_CURSOR DPI_ORACLE_TYPE_STMT
132+
#define NJS_DATATYPE_BUFFER DPI_ORACLE_TYPE_RAW
133+
#define NJS_DATATYPE_CLOB DPI_ORACLE_TYPE_CLOB
134+
#define NJS_DATATYPE_BLOB DPI_ORACLE_TYPE_BLOB
136135

137136
// database types (used for extended metadata)
138137
#define NJS_DB_TYPE_DEFAULT 0
139-
#define NJS_DB_TYPE_VARCHAR 1
140-
#define NJS_DB_TYPE_NUMBER 2
141-
#define NJS_DB_TYPE_LONG 8
142-
#define NJS_DB_TYPE_DATE 12
143-
#define NJS_DB_TYPE_RAW 23
144-
#define NJS_DB_TYPE_LONG_RAW 24
145-
#define NJS_DB_TYPE_CHAR 96
146-
#define NJS_DB_TYPE_BINARY_FLOAT 100
147-
#define NJS_DB_TYPE_BINARY_DOUBLE 101
148-
#define NJS_DB_TYPE_ROWID 104
149-
#define NJS_DB_TYPE_CLOB 112
150-
#define NJS_DB_TYPE_BLOB 113
151-
#define NJS_DB_TYPE_TIMESTAMP 187
152-
#define NJS_DB_TYPE_TIMESTAMP_TZ 188
153-
#define NJS_DB_TYPE_TIMESTAMP_LTZ 232
154-
#define NJS_DB_TYPE_NCHAR 1096
155-
#define NJS_DB_TYPE_NVARCHAR 1001
156-
#define NJS_DB_TYPE_NCLOB 1112
138+
#define NJS_DB_TYPE_VARCHAR DPI_ORACLE_TYPE_VARCHAR
139+
#define NJS_DB_TYPE_NUMBER DPI_ORACLE_TYPE_NUMBER
140+
#define NJS_DB_TYPE_LONG DPI_ORACLE_TYPE_LONG_VARCHAR
141+
#define NJS_DB_TYPE_DATE DPI_ORACLE_TYPE_DATE
142+
#define NJS_DB_TYPE_RAW DPI_ORACLE_TYPE_RAW
143+
#define NJS_DB_TYPE_LONG_RAW DPI_ORACLE_TYPE_LONG_RAW
144+
#define NJS_DB_TYPE_CHAR DPI_ORACLE_TYPE_CHAR
145+
#define NJS_DB_TYPE_BINARY_FLOAT DPI_ORACLE_TYPE_NATIVE_FLOAT
146+
#define NJS_DB_TYPE_BINARY_DOUBLE DPI_ORACLE_TYPE_NATIVE_DOUBLE
147+
#define NJS_DB_TYPE_ROWID DPI_ORACLE_TYPE_ROWID
148+
#define NJS_DB_TYPE_CLOB DPI_ORACLE_TYPE_CLOB
149+
#define NJS_DB_TYPE_BLOB DPI_ORACLE_TYPE_BLOB
150+
#define NJS_DB_TYPE_TIMESTAMP DPI_ORACLE_TYPE_TIMESTAMP
151+
#define NJS_DB_TYPE_TIMESTAMP_TZ DPI_ORACLE_TYPE_TIMESTAMP_TZ
152+
#define NJS_DB_TYPE_TIMESTAMP_LTZ DPI_ORACLE_TYPE_TIMESTAMP_LTZ
153+
#define NJS_DB_TYPE_NCHAR DPI_ORACLE_TYPE_NCHAR
154+
#define NJS_DB_TYPE_NVARCHAR DPI_ORACLE_TYPE_NVARCHAR
155+
#define NJS_DB_TYPE_NCLOB DPI_ORACLE_TYPE_NCLOB
157156

158157
// error messages used within the driver
159158
typedef enum {

test/constants.js

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -35,32 +35,32 @@ describe('18. constants.js', function() {
3535
it('18.1 dbTypes maps correctly between names and numbers', function() {
3636

3737
should.exist(oracledb);
38-
(oracledb.DB_TYPE_VARCHAR).should.be.exactly(1);
39-
(oracledb.DB_TYPE_NUMBER).should.be.exactly(2);
40-
(oracledb.DB_TYPE_DATE).should.be.exactly(12);
41-
(oracledb.DB_TYPE_RAW).should.be.exactly(23);
42-
(oracledb.DB_TYPE_CHAR).should.be.exactly(96);
43-
(oracledb.DB_TYPE_BINARY_FLOAT).should.be.exactly(100);
44-
(oracledb.DB_TYPE_BINARY_DOUBLE).should.be.exactly(101);
45-
(oracledb.DB_TYPE_ROWID).should.be.exactly(104);
46-
(oracledb.DB_TYPE_CLOB).should.be.exactly(112);
47-
(oracledb.DB_TYPE_BLOB).should.be.exactly(113);
48-
(oracledb.DB_TYPE_TIMESTAMP).should.be.exactly(187);
49-
(oracledb.DB_TYPE_TIMESTAMP_TZ).should.be.exactly(188);
50-
(oracledb.DB_TYPE_TIMESTAMP_LTZ).should.be.exactly(232);
38+
(oracledb.DB_TYPE_VARCHAR).should.be.exactly(2001);
39+
(oracledb.DB_TYPE_NUMBER).should.be.exactly(2010);
40+
(oracledb.DB_TYPE_DATE).should.be.exactly(2011);
41+
(oracledb.DB_TYPE_RAW).should.be.exactly(2006);
42+
(oracledb.DB_TYPE_CHAR).should.be.exactly(2003);
43+
(oracledb.DB_TYPE_BINARY_FLOAT).should.be.exactly(2007);
44+
(oracledb.DB_TYPE_BINARY_DOUBLE).should.be.exactly(2008);
45+
(oracledb.DB_TYPE_ROWID).should.be.exactly(2005);
46+
(oracledb.DB_TYPE_CLOB).should.be.exactly(2017);
47+
(oracledb.DB_TYPE_BLOB).should.be.exactly(2019);
48+
(oracledb.DB_TYPE_TIMESTAMP).should.be.exactly(2012);
49+
(oracledb.DB_TYPE_TIMESTAMP_TZ).should.be.exactly(2013);
50+
(oracledb.DB_TYPE_TIMESTAMP_LTZ).should.be.exactly(2014);
5151

5252
});
5353

5454
it('18.2 jsTypes maps correctly', function() {
5555

5656
(oracledb.DEFAULT).should.be.exactly(0);
5757
(oracledb.STRING).should.be.exactly(2001);
58-
(oracledb.NUMBER).should.be.exactly(2002);
59-
(oracledb.DATE).should.be.exactly(2003);
60-
(oracledb.CURSOR).should.be.exactly(2004);
61-
(oracledb.BUFFER).should.be.exactly(2005);
62-
(oracledb.CLOB).should.be.exactly(2006);
63-
(oracledb.BLOB).should.be.exactly(2007);
58+
(oracledb.NUMBER).should.be.exactly(2010);
59+
(oracledb.DATE).should.be.exactly(2014);
60+
(oracledb.CURSOR).should.be.exactly(2021);
61+
(oracledb.BUFFER).should.be.exactly(2006);
62+
(oracledb.CLOB).should.be.exactly(2017);
63+
(oracledb.BLOB).should.be.exactly(2019);
6464

6565
});
6666

test/fetchAs.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,13 @@ describe('56. fetchAs.js', function() {
5858
(oracledb.fetchAsString).should.eql([]);
5959

6060
oracledb.fetchAsString=[oracledb.DATE];
61-
(oracledb.fetchAsString).should.eql( [2003] );
61+
(oracledb.fetchAsString).should.eql( [oracledb.DATE] );
6262

6363
oracledb.fetchAsString = [ oracledb.NUMBER ];
64-
(oracledb.fetchAsString).should.eql( [2002] );
64+
(oracledb.fetchAsString).should.eql( [oracledb.NUMBER] );
6565

6666
oracledb.fetchAsString = [ oracledb.DATE, oracledb.NUMBER ];
67-
(oracledb.fetchAsString).should.eql( [2003, 2002] );
67+
(oracledb.fetchAsString).should.eql( [oracledb.DATE, oracledb.NUMBER] );
6868
});
6969

7070
it('56.2 Fetch DATE column values as STRING - by-Column name', function(done) {

0 commit comments

Comments
 (0)