]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
added support for string date passthru in sqlite
authorMike Bayer <mike_mp@zzzcomputing.com>
Thu, 16 Aug 2007 14:48:48 +0000 (14:48 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Thu, 16 Aug 2007 14:48:48 +0000 (14:48 +0000)
lib/sqlalchemy/databases/sqlite.py
test/sql/testtypes.py

index 3cc821a3602afcf1b7ddca20eb4660e99cf7626a..d96422236ffb939786204c40bff1f609c9ca620e 100644 (file)
@@ -34,7 +34,10 @@ class SLSmallInteger(sqltypes.Smallinteger):
 class DateTimeMixin(object):
     def bind_processor(self, dialect):
         def process(value):
-            if value is not None:
+            if isinstance(value, basestring):
+                # pass string values thru
+                return value
+            elif value is not None:
                 if getattr(value, 'microsecond', None) is not None:
                     return value.strftime(self.__format__ + "." + str(value.microsecond))
                 else:
index d917b4a18cf640095b51bd74183eed340201ca7c..fcec3d9c4e6ddbec3c2921c77a8c643176ec8df7 100644 (file)
@@ -347,7 +347,26 @@ class DateTest(AssertMixin):
         l = map(list, users_with_date.select().execute().fetchall())
         self.assert_(l == insert_data, 'DateTest mismatch: got:%s expected:%s' % (l, insert_data))
 
+    @testing.supported('sqlite')
+    def test_sqlite_date(self):
+        meta = MetaData(testbase.db)
+        t = Table('testdate', meta,
+                  Column('id', Integer, primary_key=True),
+                Column('adate', Date), 
+                Column('adatetime', DateTime))
+        t.create(checkfirst=True)
+        try:
+            d1 = datetime.date(2007, 10, 30)
+            d2 = datetime.datetime(2007, 10, 30)
 
+            t.insert().execute(adate=str(d1), adatetime=str(d2))
+            
+            assert t.select().execute().fetchall()[0] == (1, datetime.date(2007, 10, 30), datetime.datetime(2007, 10, 30))
+            
+        finally:
+            t.drop(checkfirst=True)
+        
+        
     def testtextdate(self):     
         x = testbase.db.text("select user_datetime from query_users_with_date", typemap={'user_datetime':DateTime}).execute().fetchall()