Skip to content

Commit 929bff9

Browse files
Added support for the embedded OIDs found in SODA documents in Oracle
Database 23c.
1 parent c27b32d commit 929bff9

File tree

3 files changed

+7
-0
lines changed

3 files changed

+7
-0
lines changed

doc/src/release_notes.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ Common Changes
7979
``ORA-00932: inconsistent data types`` is raised (which can occur if a
8080
table or view is recreated with a data type that is incompatible with
8181
the column's previous data type).
82+
#) Added support for the embedded OIDs found in SODA documents in Oracle
83+
Database 23c.
8284
#) The ``repr()`` value of the DbObject class now shows the string "DbObject"
8385
instead of the string "Object" for consistency with the name of the class
8486
and the other ``repr()`` values for DbObjectType and DbObjectAttr.

src/oracledb/impl/thin/constants.pxi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -588,6 +588,7 @@ cdef enum:
588588
TNS_JSON_TYPE_INTERVAL_DS = 0x3e
589589
TNS_JSON_TYPE_TIMESTAMP_TZ = 0x7c
590590
TNS_JSON_TYPE_TIMESTAMP7 = 0x7d
591+
TNS_JSON_TYPE_ID = 0x7e
591592
TNS_JSON_TYPE_BINARY_FLOAT = 0x7f
592593
TNS_JSON_TYPE_OBJECT = 0x84
593594
TNS_JSON_TYPE_ARRAY = 0xc0

src/oracledb/impl/thin/oson.pyx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,10 @@ cdef class OsonDecoder(Buffer):
158158
return ptr[:temp32].decode()
159159
elif node_type == TNS_JSON_TYPE_NUMBER_LENGTH_UINT8:
160160
return self.read_oracle_number(NUM_TYPE_DECIMAL)
161+
elif node_type == TNS_JSON_TYPE_ID:
162+
self.read_ub1(&temp8)
163+
ptr = self._get_raw(temp8)
164+
return ptr[:temp8]
161165
elif node_type == TNS_JSON_TYPE_BINARY_LENGTH_UINT16:
162166
self.read_uint16(&temp16)
163167
ptr = self._get_raw(temp16)

0 commit comments

Comments
 (0)