From: Mike Bayer Date: Wed, 26 Jul 2006 18:05:36 +0000 (+0000) Subject: oracle boolean type [ticket:257] X-Git-Tag: rel_0_2_7~50 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=369ffb7816b83f0b6fbee7e6ecd743655ad2a5a7;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git oracle boolean type [ticket:257] --- diff --git a/CHANGES b/CHANGES index 6a90e74242..c177757ab9 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,7 @@ primary key columns are null (i.e. when mapping to outer joins etc) - fixed reflection of foreign keys to autoload the referenced table if it was not loaded already - [ticket:256] - pass URL query string arguments to connect() function +- [ticket:257] - oracle boolean type 0.2.6 - big overhaul to schema to allow truly composite primary and foreign diff --git a/lib/sqlalchemy/databases/oracle.py b/lib/sqlalchemy/databases/oracle.py index 897ed640ef..6ca81c6623 100644 --- a/lib/sqlalchemy/databases/oracle.py +++ b/lib/sqlalchemy/databases/oracle.py @@ -52,7 +52,21 @@ class OracleBinary(sqltypes.Binary): return "BLOB" class OracleBoolean(sqltypes.Boolean): def get_col_spec(self): - return "BOOLEAN" + return "SMALLINT" + def convert_result_value(self, value, dialect): + if value is None: + return None + return value and True or False + def convert_bind_param(self, value, dialect): + if value is True: + return 1 + elif value is False: + return 0 + elif value is None: + return None + else: + return value and True or False + colspecs = { sqltypes.Integer : OracleInteger,