summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-03-11 10:27:18 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2010-03-11 10:27:18 -0500
commitea4916001d5023100549d5dcc07ef51657d079fc (patch)
tree40b25579188d08285620a02282d93560fc26e0ae
parent9520c878b6f350081fd8c95c6ed3fdf1d2d7d244 (diff)
downloadsqlalchemy-ea4916001d5023100549d5dcc07ef51657d079fc.tar.gz
- 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'.
-rw-r--r--CHANGES6
-rw-r--r--lib/sqlalchemy/dialects/oracle/base.py1
-rw-r--r--lib/sqlalchemy/dialects/oracle/cx_oracle.py3
-rw-r--r--test/dialect/test_oracle.py1
4 files changed, 9 insertions, 2 deletions
diff --git a/CHANGES b/CHANGES
index f49c61392..a7457e6d3 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 5f7a30292..3107c8b6c 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 47909f8d1..d536188da 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 a6c3c19bc..fc698f28a 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),