Skip to content

Commit 74a2616

Browse files
Thin: fixed issue when fetching null values in implicit results.
1 parent a5c0352 commit 74a2616

File tree

3 files changed

+8
-5
lines changed

3 files changed

+8
-5
lines changed

doc/src/release_notes.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ oracledb 1.0.1 (TBD)
3131
#) Fixed issue where unconstrained numbers containing integer values would be
3232
fetched as floats when oracledb.defaults.fetch_lobs was set to `False`.
3333
#) Thin: ensure that errors that occur during fetch are detected consistently.
34+
#) Thin: fixed issue when fetching null values in implicit results.
3435

3536

3637
oracledb 1.0.0 (May 2022)

src/oracledb/impl/thin/messages.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,7 @@ cdef class MessageWithData(Message):
343343
cursor_impl._fetch_array_size = cursor.arraysize + cursor.prefetchrows
344344
cursor_impl._more_rows_to_fetch = True
345345
cursor_impl._statement._is_query = True
346+
cursor_impl._statement._requires_full_execute = True
346347
self._process_describe_info(buf, cursor, cursor_impl)
347348
return cursor
348349

@@ -581,7 +582,6 @@ cdef class MessageWithData(Message):
581582
column_value)
582583
cursor_impl = column_value._impl
583584
buf.read_ub2(&cursor_impl._statement._cursor_id)
584-
cursor_impl._statement._requires_full_execute = True
585585
elif ora_type_num == TNS_DATA_TYPE_BOOLEAN:
586586
column_value = buf.read_bool()
587587
elif ora_type_num == TNS_DATA_TYPE_INTERVAL_DS:

tests/test_3200_features_12_1.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -407,23 +407,25 @@ def test_3220_implicit_results(self):
407407
c2 sys_refcursor;
408408
begin
409409
open c1 for
410-
select NumberCol
410+
select NullableCol
411411
from TestNumbers
412412
where IntCol between 3 and 5;
413413
414414
dbms_sql.return_result(c1);
415415
416416
open c2 for
417-
select NumberCol
417+
select NullableCol
418418
from TestNumbers
419419
where IntCol between 7 and 10;
420420
421421
dbms_sql.return_result(c2);
422422
end;""")
423423
results = self.cursor.getimplicitresults()
424424
self.assertEqual(len(results), 2)
425-
self.assertEqual([n for n, in results[0]], [3.75, 5, 6.25])
426-
self.assertEqual([n for n, in results[1]], [8.75, 10, 11.25, 12.5])
425+
self.assertEqual([n for n, in results[0]],
426+
[2924207, None, 59797108943])
427+
self.assertEqual([n for n, in results[1]],
428+
[1222791080775407, None, 25004854810776297743, None])
427429

428430
def test_3221_implicit_results_no_statement(self):
429431
"3221 - test getimplicitresults() without executing a statement"

0 commit comments

Comments
 (0)