Skip to content

Commit a30186e

Browse files
Refactor: simplify code for destroying the database object type cache.
1 parent 8c8c7bc commit a30186e

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

src/oracledb/impl/thin/connection.pyx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,15 @@ cdef class BaseThinConnImpl(BaseConnImpl):
9292
state=state)
9393
self._transaction_context = None
9494

95+
cdef int _clear_dbobject_type_cache(self) except -1:
96+
"""
97+
"""
98+
cdef int cache_num
99+
if self._dbobject_type_cache_num > 0:
100+
cache_num = self._dbobject_type_cache_num
101+
self._dbobject_type_cache_num = 0
102+
remove_dbobject_type_cache(cache_num)
103+
95104
cdef BaseThinLobImpl _create_lob_impl(self, DbType dbtype,
96105
bytes locator=None):
97106
"""
@@ -167,9 +176,7 @@ cdef class BaseThinConnImpl(BaseConnImpl):
167176

168177
cdef int _force_close(self) except -1:
169178
self._pool = None
170-
if self._dbobject_type_cache_num > 0:
171-
remove_dbobject_type_cache(self._dbobject_type_cache_num)
172-
self._dbobject_type_cache_num = 0
179+
self._clear_dbobject_type_cache()
173180
self._protocol._force_close()
174181

175182
cdef Statement _get_statement(self, str sql = None,

src/oracledb/impl/thin/protocol.pyx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -195,9 +195,7 @@ cdef class Protocol(BaseProtocol):
195195

196196
# otherwise, destroy the database object type cache, send the
197197
# logoff message and final close packet
198-
if conn_impl._dbobject_type_cache_num > 0:
199-
remove_dbobject_type_cache(conn_impl._dbobject_type_cache_num)
200-
conn_impl._dbobject_type_cache_num = 0
198+
conn_impl._clear_dbobject_type_cache()
201199
if self._transport is not None:
202200
if not conn_impl._drcp_enabled:
203201
message = conn_impl._create_message(LogoffMessage)
@@ -555,9 +553,7 @@ cdef class BaseAsyncProtocol(BaseProtocol):
555553

556554
# otherwise, destroy the database object type cache, send the
557555
# logoff message and final close packet
558-
if conn_impl._dbobject_type_cache_num > 0:
559-
remove_dbobject_type_cache(conn_impl._dbobject_type_cache_num)
560-
conn_impl._dbobject_type_cache_num = 0
556+
conn_impl._clear_dbobject_type_cache()
561557
if self._transport is not None:
562558
if not conn_impl._drcp_enabled:
563559
message = conn_impl._create_message(LogoffMessage)

0 commit comments

Comments
 (0)