summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2006-01-02 04:06:57 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2006-01-02 04:06:57 +0000
commitabf2895a7826cfcbe4d43daf0f607bf7cc975097 (patch)
treeaabb93fdc832dcdd73addc11d8e328d982226783
parenta54a34f8f1accaa34df7ec14959fa9847e2b9309 (diff)
downloadsqlalchemy-abf2895a7826cfcbe4d43daf0f607bf7cc975097.tar.gz
changed mysql TIMESTAMP->DATETIME
fixed up date unit test RowProxy __iter__ properly routes columns through type processing
-rw-r--r--lib/sqlalchemy/databases/mysql.py2
-rw-r--r--lib/sqlalchemy/databases/sqlite.py3
-rw-r--r--lib/sqlalchemy/engine.py3
-rw-r--r--test/query.py14
4 files changed, 18 insertions, 4 deletions
diff --git a/lib/sqlalchemy/databases/mysql.py b/lib/sqlalchemy/databases/mysql.py
index 4e43f3673..21dbc2c17 100644
--- a/lib/sqlalchemy/databases/mysql.py
+++ b/lib/sqlalchemy/databases/mysql.py
@@ -30,7 +30,7 @@ class MSInteger(sqltypes.Integer):
return "INTEGER"
class MSDateTime(sqltypes.DateTime):
def get_col_spec(self):
- return "TIMESTAMP"
+ return "DATETIME"
class MSText(sqltypes.TEXT):
def get_col_spec(self):
return "TEXT"
diff --git a/lib/sqlalchemy/databases/sqlite.py b/lib/sqlalchemy/databases/sqlite.py
index 5a143a201..5708247e2 100644
--- a/lib/sqlalchemy/databases/sqlite.py
+++ b/lib/sqlalchemy/databases/sqlite.py
@@ -30,8 +30,11 @@ class SLDateTime(sqltypes.DateTime):
def get_col_spec(self):
return "TIMESTAMP"
def convert_result_value(self, value):
+ print "RESULT", value
if value is None:
+ print "RETNONE"
return None
+ print "HI"
parts = value.split('.')
try:
(value, microsecond) = value.split('.')
diff --git a/lib/sqlalchemy/engine.py b/lib/sqlalchemy/engine.py
index 07574a260..580d85450 100644
--- a/lib/sqlalchemy/engine.py
+++ b/lib/sqlalchemy/engine.py
@@ -670,7 +670,8 @@ class RowProxy:
self.parent = parent
self.row = row
def __iter__(self):
- return iter(self.row)
+ for i in range(0, len(self.row)):
+ yield self.parent._get_col(self.row, i)
def __eq__(self, other):
return (other is self) or (other == tuple([self.parent._get_col(self.row, key) for key in range(0, len(self.row))]))
def __repr__(self):
diff --git a/test/query.py b/test/query.py
index e3d1767b5..945893844 100644
--- a/test/query.py
+++ b/test/query.py
@@ -54,8 +54,18 @@ class QueryTest(PersistTest):
users_with_date.insert().execute(user_id = 8, user_name = 'roy', user_date=datetime.datetime(2005,11,10, 11,52,35))
users_with_date.insert().execute(user_id = 9, user_name = 'foo', user_date=datetime.datetime(2005,11,10, 11,52,35, 54839))
users_with_date.insert().execute(user_id = 10, user_name = 'colber', user_date=None)
- print repr(users_with_date.select().execute().fetchall())
- users_with_date.drop()
+ l = users_with_date.select().execute().fetchall()
+ l = [[c for c in r] for r in l]
+ if db.engine.__module__.endswith('mysql'):
+ x = [[7, 'jack', datetime.datetime(2005, 11, 10, 0, 0)], [8, 'roy', datetime.datetime(2005, 11, 10, 11, 52, 35)], [9, 'foo', datetime.datetime(2005, 11, 10, 11, 52, 35)], [10, 'colber', None]]
+ else:
+ x = [[7, 'jack', datetime.datetime(2005, 11, 10, 0, 0)], [8, 'roy', datetime.datetime(2005, 11, 10, 11, 52, 35)], [9, 'foo', datetime.datetime(2005, 11, 10, 11, 52, 35, 54839)], [10, 'colber', None]]
+ print repr(l)
+ print repr(x)
+ try:
+ self.assert_(l == x)
+ finally:
+ users_with_date.drop()
def testdefaults(self):
x = {'x':0}