.. changelog::
:version: 0.9.11
+ .. change::
+ :tags: bug, oracle, py3k
+ :tickets: 3491
+ :versions: 1.1.0b1, 1.0.9
+
+ Fixed support for cx_Oracle version 5.2, which was tripping
+ up SQLAlchemy's version detection under Python 3 and inadvertently
+ not using the correct unicode mode for Python 3. This would cause
+ issues such as bound variables mis-interpreted as NULL and rows
+ silently not being returned.
+
.. change::
:tags: bug, engine
:tickets: 3497
from . import base as oracle
from ...engine import result as _result
from sqlalchemy import types as sqltypes, util, exc, processors
+from sqlalchemy import util
import random
import collections
import decimal
# this occurs in tests with mock DBAPIs
self._cx_oracle_string_types = set()
self._cx_oracle_with_unicode = False
- elif self.cx_oracle_ver >= (5,) and not \
- hasattr(self.dbapi, 'UNICODE'):
+ elif util.py3k or (
+ self.cx_oracle_ver >= (5,) and not \
+ hasattr(self.dbapi, 'UNICODE')
+ ):
# cx_Oracle WITH_UNICODE mode. *only* python
# unicode objects accepted for anything
self.supports_unicode_statements = True