Skip to content

Commit 6646529

Browse files
Store constants in cdef'ed globals in order to avoid the overhead of
getting the Python values from the module each and every time!
1 parent e43c2ab commit 6646529

File tree

4 files changed

+37
-22
lines changed

4 files changed

+37
-22
lines changed

src/oracledb/impl/thin/constants.pxi

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -652,7 +652,6 @@ cdef enum:
652652
TNS_AUTH_MODE_CHANGE_PASSWORD = 0x00000002
653653
TNS_AUTH_MODE_SYSDBA = 0x00000020
654654
TNS_AUTH_MODE_SYSOPER = 0x00000040
655-
TNS_AUTH_MODE_PRELIM = 0x00000080
656655
TNS_AUTH_MODE_WITH_PASSWORD = 0x00000100
657656
TNS_AUTH_MODE_SYSASM = 0x00400000
658657
TNS_AUTH_MODE_SYSBKP = 0x01000000
@@ -794,12 +793,6 @@ cdef bytearray TNS_BASE64_ALPHABET_ARRAY = \
794793
bytearray(TNS_BASE64_ALPHABET)
795794
cdef bytes TNS_EXTENT_OID = bytes.fromhex('00000000000000000000000000010001')
796795

797-
# purity types
798-
cdef enum:
799-
PURITY_DEFAULT = 0
800-
PURITY_NEW = 1
801-
PURITY_SELF = 2
802-
803796
# timezone offsets
804797
cdef enum:
805798
TZ_HOUR_OFFSET = 20

src/oracledb/impl/thin/messages.pyx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1533,19 +1533,19 @@ cdef class AuthMessage(Message):
15331533
# set authentication mode
15341534
if params._new_password is None:
15351535
self.auth_mode = TNS_AUTH_MODE_LOGON
1536-
if params.mode & constants.AUTH_MODE_SYSDBA:
1536+
if params.mode & AUTH_MODE_SYSDBA:
15371537
self.auth_mode |= TNS_AUTH_MODE_SYSDBA
1538-
if params.mode & constants.AUTH_MODE_SYSOPER:
1538+
if params.mode & AUTH_MODE_SYSOPER:
15391539
self.auth_mode |= TNS_AUTH_MODE_SYSOPER
1540-
if params.mode & constants.AUTH_MODE_SYSASM:
1540+
if params.mode & AUTH_MODE_SYSASM:
15411541
self.auth_mode |= TNS_AUTH_MODE_SYSASM
1542-
if params.mode & constants.AUTH_MODE_SYSBKP:
1542+
if params.mode & AUTH_MODE_SYSBKP:
15431543
self.auth_mode |= TNS_AUTH_MODE_SYSBKP
1544-
if params.mode & constants.AUTH_MODE_SYSDGD:
1544+
if params.mode & AUTH_MODE_SYSDGD:
15451545
self.auth_mode |= TNS_AUTH_MODE_SYSDGD
1546-
if params.mode & constants.AUTH_MODE_SYSKMT:
1546+
if params.mode & AUTH_MODE_SYSKMT:
15471547
self.auth_mode |= TNS_AUTH_MODE_SYSKMT
1548-
if params.mode & constants.AUTH_MODE_SYSRAC:
1548+
if params.mode & AUTH_MODE_SYSRAC:
15491549
self.auth_mode |= TNS_AUTH_MODE_SYSRAC
15501550
if self.private_key is not None:
15511551
self.auth_mode |= TNS_AUTH_MODE_IAM_TOKEN

src/oracledb/impl/thin/pool.pyx

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ cdef class ThinPoolImpl(BasePoolImpl):
7575
self._busy_conn_impls = []
7676
self._conn_impls_to_drop = []
7777
self._extra_conn_impls = []
78-
self._auth_mode = constants.AUTH_MODE_DEFAULT
78+
self._auth_mode = AUTH_MODE_DEFAULT
7979
self._open = True
8080
self._condition = threading.Condition()
8181
self._bg_thread_condition = threading.Condition()
@@ -537,7 +537,7 @@ cdef class ThinPoolImpl(BasePoolImpl):
537537
"""
538538
Internal method for getting the wait timeout for acquiring sessions.
539539
"""
540-
if self._getmode == constants.POOL_GETMODE_TIMEDWAIT:
540+
if self._getmode == POOL_GETMODE_TIMEDWAIT:
541541
return self._wait_timeout
542542
return 0
543543

@@ -548,10 +548,9 @@ cdef class ThinPoolImpl(BasePoolImpl):
548548
"""
549549
if self._getmode != value:
550550
self._getmode = value
551-
self._force_get = \
552-
(self._getmode == constants.POOL_GETMODE_FORCEGET)
553-
if self._getmode == constants.POOL_GETMODE_TIMEDWAIT \
554-
or self._getmode == constants.POOL_GETMODE_NOWAIT:
551+
self._force_get = (self._getmode == POOL_GETMODE_FORCEGET)
552+
if self._getmode == POOL_GETMODE_TIMEDWAIT \
553+
or self._getmode == POOL_GETMODE_NOWAIT:
555554
self._wait_timeout = 0
556555
else:
557556
self._wait_timeout = None
@@ -584,9 +583,9 @@ cdef class ThinPoolImpl(BasePoolImpl):
584583
"""
585584
Internal method for setting the wait timeout for acquiring sessions.
586585
"""
587-
if self._getmode == constants.POOL_GETMODE_TIMEDWAIT:
586+
if self._getmode == POOL_GETMODE_TIMEDWAIT:
588587
self._wait_timeout = value / 1000
589-
elif self._getmode == constants.POOL_GETMODE_NOWAIT:
588+
elif self._getmode == POOL_GETMODE_NOWAIT:
590589
self._wait_timeout = 0
591590
else:
592591
self._wait_timeout = None

src/oracledb/thin_impl.pyx

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,36 @@ from .base_impl import DB_TYPE_BINARY_INTEGER, DB_TYPE_CURSOR, DB_TYPE_OBJECT
8686

8787
ctypedef unsigned char char_type
8888

89+
# Python types
8990
cdef type PY_TYPE_DATE = datetime.date
9091
cdef type PY_TYPE_DATETIME = datetime.datetime
9192
cdef type PY_TYPE_DECIMAL = decimal.Decimal
9293
cdef type PY_TYPE_DB_OBJECT
9394
cdef type PY_TYPE_LOB
9495
cdef type PY_TYPE_TIMEDELTA = datetime.timedelta
9596

97+
# authorization modes
98+
cdef uint32_t AUTH_MODE_DEFAULT = constants.AUTH_MODE_DEFAULT
99+
cdef uint32_t AUTH_MODE_SYSASM = constants.AUTH_MODE_SYSASM
100+
cdef uint32_t AUTH_MODE_SYSBKP = constants.AUTH_MODE_SYSBKP
101+
cdef uint32_t AUTH_MODE_SYSDBA = constants.AUTH_MODE_SYSDBA
102+
cdef uint32_t AUTH_MODE_SYSDGD = constants.AUTH_MODE_SYSDGD
103+
cdef uint32_t AUTH_MODE_SYSKMT = constants.AUTH_MODE_SYSKMT
104+
cdef uint32_t AUTH_MODE_SYSOPER = constants.AUTH_MODE_SYSOPER
105+
cdef uint32_t AUTH_MODE_SYSRAC = constants.AUTH_MODE_SYSRAC
106+
107+
# purity values
108+
cdef uint8_t PURITY_DEFAULT = constants.PURITY_DEFAULT
109+
cdef uint8_t PURITY_NEW = constants.PURITY_NEW
110+
cdef uint8_t PURITY_SELF = constants.PURITY_SELF
111+
112+
# pool get modes
113+
cdef uint32_t POOL_GETMODE_FORCEGET = constants.POOL_GETMODE_FORCEGET
114+
cdef uint32_t POOL_GETMODE_NOWAIT = constants.POOL_GETMODE_NOWAIT
115+
cdef uint32_t POOL_GETMODE_WAIT = constants.POOL_GETMODE_WAIT
116+
cdef uint32_t POOL_GETMODE_TIMEDWAIT = constants.POOL_GETMODE_TIMEDWAIT
117+
118+
# flag whether the cryptography package exists
96119
cdef bint HAS_CRYPTOGRAPHY = True
97120

98121
include "impl/thin/constants.pxi"

0 commit comments

Comments
 (0)