From: Mike Bayer Date: Mon, 2 Jan 2006 04:06:57 +0000 (+0000) Subject: changed mysql TIMESTAMP->DATETIME X-Git-Tag: rel_0_1_0~184 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=abf2895a7826cfcbe4d43daf0f607bf7cc975097;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git changed mysql TIMESTAMP->DATETIME fixed up date unit test RowProxy __iter__ properly routes columns through type processing --- diff --git a/lib/sqlalchemy/databases/mysql.py b/lib/sqlalchemy/databases/mysql.py index 4e43f36730..21dbc2c17a 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 5a143a201c..5708247e20 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 07574a260a..580d854505 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 e3d1767b51..9458938441 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}