From: Mike Bayer Date: Thu, 11 Mar 2010 15:27:18 +0000 (-0500) Subject: - Oracle 'DATE' now does not perform any result processing, X-Git-Tag: rel_0_6beta2~62^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ea4916001d5023100549d5dcc07ef51657d079fc;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - Oracle 'DATE' now does not perform any result processing, as the DATE type in Oracle stores full date+time objects, that's what you'll get. Note that the generic types.Date type *will* still call value.date() on incoming values, however. When reflecting a table, the reflected type will be 'DATE'. --- diff --git a/CHANGES b/CHANGES index f49c613920..a7457e6d31 100644 --- a/CHANGES +++ b/CHANGES @@ -289,6 +289,12 @@ CHANGES - "out" parameters require a type that is supported by cx_oracle. An error will be raised if no cx_oracle type can be found. + - Oracle 'DATE' now does not perform any result processing, + as the DATE type in Oracle stores full date+time objects, + that's what you'll get. Note that the generic types.Date + type *will* still call value.date() on incoming values, + however. When reflecting a table, the reflected type + will be 'DATE'. - sqlite - Added "native_datetime=True" flag to create_engine(). diff --git a/lib/sqlalchemy/dialects/oracle/base.py b/lib/sqlalchemy/dialects/oracle/base.py index 5f7a302929..3107c8b6c9 100644 --- a/lib/sqlalchemy/dialects/oracle/base.py +++ b/lib/sqlalchemy/dialects/oracle/base.py @@ -211,7 +211,6 @@ ischema_names = { 'NVARCHAR2' : NVARCHAR, 'CHAR' : CHAR, 'DATE' : DATE, - 'DATETIME' : DATETIME, 'NUMBER' : NUMBER, 'BLOB' : BLOB, 'BFILE' : BFILE, diff --git a/lib/sqlalchemy/dialects/oracle/cx_oracle.py b/lib/sqlalchemy/dialects/oracle/cx_oracle.py index 47909f8d17..d536188da7 100644 --- a/lib/sqlalchemy/dialects/oracle/cx_oracle.py +++ b/lib/sqlalchemy/dialects/oracle/cx_oracle.py @@ -177,7 +177,8 @@ class _OracleRaw(oracle.RAW): pass colspecs = { - sqltypes.Date : _OracleDate, + sqltypes.Date : _OracleDate, # generic type, assume datetime.date is desired + oracle.DATE: oracle.DATE, # non generic type - passthru sqltypes.LargeBinary : _OracleBinary, sqltypes.Boolean : oracle._OracleBoolean, sqltypes.Interval : _OracleInterval, diff --git a/test/dialect/test_oracle.py b/test/dialect/test_oracle.py index a6c3c19bcd..fc698f28ac 100644 --- a/test/dialect/test_oracle.py +++ b/test/dialect/test_oracle.py @@ -460,6 +460,7 @@ class TypesTest(TestBase, AssertsCompiledSQL): (oracle.OracleRaw(), cx_oracle._OracleRaw), (String(), String), (VARCHAR(), VARCHAR), + (DATE(), DATE), (String(50), String), (Unicode(), Unicode), (Text(), cx_oracle._OracleText),