]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- fixes to Date/Time (SLDate/SLTime) types; works as good as postgres
authorMike Bayer <mike_mp@zzzcomputing.com>
Thu, 12 Oct 2006 01:12:17 +0000 (01:12 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Thu, 12 Oct 2006 01:12:17 +0000 (01:12 +0000)
  now [ticket:335]

CHANGES
lib/sqlalchemy/databases/sqlite.py
test/sql/testtypes.py

diff --git a/CHANGES b/CHANGES
index 927f9c0959c93a68f2ed41abed85c4c61b3b73a5..eb5f10f3daa860a880430d1f566db3e852bd4b05 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -13,6 +13,8 @@
 - Specific Databases:
     - SQLite:
     - sqlite boolean datatype converts False/True to 0/1 by default
+    - fixes to Date/Time (SLDate/SLTime) types; works as good as postgres 
+    now [ticket:335]
     - MS-SQL: 
     - fixes bug 261 (table reflection broken for MS-SQL case-sensitive 
     databases)
index 378ec7cd90608747c61c71d4bc9007905d695519..3868f255f31b8058dc09c60fefd1b578136ba232 100644 (file)
@@ -51,24 +51,24 @@ class DateTimeMixin(object):
             (value, microsecond) = (value, 0)
         return time.strptime(value, fmt)[0:6] + (microsecond,)
     
-class SLDateTime(sqltypes.DateTime, DateTimeMixin):
+class SLDateTime(DateTimeMixin,sqltypes.DateTime):
     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(sqltypes.Date, DateTimeMixin):
+class SLDate(DateTimeMixin, sqltypes.Date):
     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(sqltypes.Time, DateTimeMixin):
+class SLTime(DateTimeMixin, sqltypes.Time):
     def get_col_spec(self):
         return "TIME"
     def convert_result_value(self, value, dialect):
         tup = self._cvt(value, dialect, "%H:%M:%S")
-        return tup and datetime.time(*tup[4:7])
+        return tup and datetime.time(*tup[3:7])
 class SLText(sqltypes.TEXT):
     def get_col_spec(self):
         return "TEXT"
@@ -98,6 +98,7 @@ colspecs = {
     sqltypes.Float : SLNumeric,
     sqltypes.DateTime : SLDateTime,
     sqltypes.Date : SLDate,
+    sqltypes.Time : SLTime,
     sqltypes.String : SLString,
     sqltypes.Binary : SLBinary,
     sqltypes.Boolean : SLBoolean,
index 9158f6a2c7225f00727da8ee3fbc2ff5970d9da0..e08bdb89f1cb6e09e9481c2a1b76855a1b76fed0 100644 (file)
@@ -241,7 +241,7 @@ class DateTest(AssertMixin):
 
                 collist = [Column('user_id', INT, primary_key = True), Column('user_name', VARCHAR(20)), Column('user_datetime', DateTime),
                Column('user_date', DateTime)]
-        elif db.engine.name == 'mysql' or db.engine.name == 'mssql' or db.engine.name == 'sqlite':
+        elif db.engine.name == 'mysql' or db.engine.name == 'mssql':
             # these dont really support the TIME type at all
             insert_data =  [
                  [7, 'jack', datetime.datetime(2005, 11, 10, 0, 0), datetime.datetime(2005, 11, 10, 0, 0, 0)],