From 369ffb7816b83f0b6fbee7e6ecd743655ad2a5a7 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Wed, 26 Jul 2006 18:05:36 +0000 Subject: [PATCH] oracle boolean type [ticket:257] --- CHANGES | 1 + lib/sqlalchemy/databases/oracle.py | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) 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, -- 2.47.3