From: Mike Bayer Date: Sat, 12 Aug 2006 20:12:18 +0000 (+0000) Subject: some fixes to sqlite datetime organization, was improperly reflecting X-Git-Tag: rel_0_2_7~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0b895ee62ad6ffaaeda725e583d557c525356c7d;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git some fixes to sqlite datetime organization, was improperly reflecting the "date" type as a "datetime" --- diff --git a/CHANGES b/CHANGES index 43778d4d78..c5c2e81fa5 100644 --- a/CHANGES +++ b/CHANGES @@ -45,6 +45,7 @@ max, min, etc.) on a SelectResults that has an ORDER BY clause - fixes to types so that database-specific types more easily used; fixes to mysql text types to work with this methodology [ticket:269] +- some fixes to sqlite date type organization 0.2.6 - big overhaul to schema to allow truly composite primary and foreign diff --git a/lib/sqlalchemy/databases/sqlite.py b/lib/sqlalchemy/databases/sqlite.py index 1727dce94b..e3bc0b9c98 100644 --- a/lib/sqlalchemy/databases/sqlite.py +++ b/lib/sqlalchemy/databases/sqlite.py @@ -31,9 +31,7 @@ class SLInteger(sqltypes.Integer): class SLSmallInteger(sqltypes.Smallinteger): def get_col_spec(self): return "SMALLINT" -class SLDateTime(sqltypes.DateTime): - def get_col_spec(self): - return "TIMESTAMP" +class DateTimeMixin(object): def convert_bind_param(self, value, dialect): if value is not None: return str(value) @@ -49,16 +47,20 @@ class SLDateTime(sqltypes.DateTime): except ValueError: (value, microsecond) = (value, 0) return time.strptime(value, fmt)[0:6] + (microsecond,) + +class SLDateTime(sqltypes.DateTime, DateTimeMixin): + def get_col_spec(self): + return "TIMESTAMP" def convert_result_value(self, value, dialect): tup = self._cvt(value, dialect, "%Y-%m-%d %H:%M:%S") return tup and datetime.datetime(*tup) -class SLDate(SLDateTime): +class SLDate(sqltypes.Date, DateTimeMixin): def get_col_spec(self): return "DATE" def convert_result_value(self, value, dialect): tup = self._cvt(value, dialect, "%Y-%m-%d") return tup and datetime.date(*tup[0:3]) -class SLTime(SLDateTime): +class SLTime(sqltypes.Time, DateTimeMixin): def get_col_spec(self): return "TIME" def convert_result_value(self, value, dialect): diff --git a/lib/sqlalchemy/ext/sqlsoup.py b/lib/sqlalchemy/ext/sqlsoup.py index 2f41b13bde..a0c8bd3510 100644 --- a/lib/sqlalchemy/ext/sqlsoup.py +++ b/lib/sqlalchemy/ext/sqlsoup.py @@ -181,7 +181,7 @@ CREATE TABLE loans ( book_id int PRIMARY KEY REFERENCES books(id), user_name varchar(32) references users(name) ON DELETE SET NULL ON UPDATE CASCADE, - loan_date date DEFAULT current_timestamp + loan_date datetime DEFAULT current_timestamp ); insert into users(name, email, password, admin)