summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2007-06-17 00:13:31 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2007-06-17 00:13:31 +0000
commit23525a3ea876f6ab16566c2dd0bbaa7ec1037052 (patch)
tree07b418d831b3dfcc4d2c88e8cb720737c5bfcf15 /lib/sqlalchemy
parent93215f429db15d8cf94dfc9f889efb828c6707f2 (diff)
downloadsqlalchemy-23525a3ea876f6ab16566c2dd0bbaa7ec1037052.tar.gz
- datetime fixes: got subsecond TIMESTAMP to work [ticket:604],
added OracleDate which supports types.Date with only year/month/day
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r--lib/sqlalchemy/databases/oracle.py16
1 files changed, 14 insertions, 2 deletions
diff --git a/lib/sqlalchemy/databases/oracle.py b/lib/sqlalchemy/databases/oracle.py
index 1cb4a0027..55695e1ef 100644
--- a/lib/sqlalchemy/databases/oracle.py
+++ b/lib/sqlalchemy/databases/oracle.py
@@ -11,6 +11,7 @@ from sqlalchemy import util, sql, engine, schema, ansisql, exceptions, logging
from sqlalchemy.engine import default, base
import sqlalchemy.types as sqltypes
+import datetime
class OracleNumeric(sqltypes.Numeric):
@@ -28,6 +29,17 @@ class OracleSmallInteger(sqltypes.Smallinteger):
def get_col_spec(self):
return "SMALLINT"
+class OracleDate(sqltypes.Date):
+ def get_col_spec(self):
+ return "DATE"
+ def convert_bind_param(self, value, dialect):
+ return value
+ def convert_result_value(self, value, dialect):
+ if not isinstance(value, datetime.datetime):
+ return value
+ else:
+ return value.date()
+
class OracleDateTime(sqltypes.DateTime):
def get_col_spec(self):
return "DATE"
@@ -111,7 +123,7 @@ colspecs = {
sqltypes.Numeric : OracleNumeric,
sqltypes.Float : OracleNumeric,
sqltypes.DateTime : OracleDateTime,
- sqltypes.Date : OracleDateTime,
+ sqltypes.Date : OracleDate,
sqltypes.String : OracleString,
sqltypes.Binary : OracleBinary,
sqltypes.Boolean : OracleBoolean,
@@ -122,7 +134,7 @@ colspecs = {
ischema_names = {
'VARCHAR2' : OracleString,
- 'DATE' : OracleDateTime,
+ 'DATE' : OracleDate,
'DATETIME' : OracleDateTime,
'NUMBER' : OracleNumeric,
'BLOB' : OracleBinary,