Thread: [SQLObject] patch to add TIMESTAMP to DateTimeConverter
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: Matthew W. <ma...@tp...> - 2008-07-31 20:58:17
|
I want to use the OVERLAPS keyword in postgres, but it complains because the current DateTimeConverter doesn't explicity set the type. This patch makes the change. This is my patch: It also corrects a tiny spelling error. Index: sqlobject/converters.py =================================================================== --- sqlobject/converters.py (revision 3536) +++ sqlobject/converters.py (working copy) @@ -163,7 +163,7 @@ registerConverter(time.struct_time, StructTimeConverter) def DateTimeConverter(value, db): - return "'%04d-%02d-%02d %02d:%02d:%02d'" % ( + return "TIMESTAMP '%04d-%02d-%02d %02d:%02d:%02d'" % ( value.year, value.month, value.day, value.hour, value.minute, value.second) Index: sqlobject/manager/command.py =================================================================== --- sqlobject/manager/command.py (revision 3536) +++ sqlobject/manager/command.py (working copy) @@ -874,7 +874,7 @@ help = ('Record state of table definitions. The state of each ' 'table is written out to a separate file in a directory, ' 'and that directory forms a "version". A table is also ' - 'added to your datebase (%s) that reflects the version the ' + 'added to your database (%s) that reflects the version the ' 'database is currently at. Use the upgrade command to ' 'sync databases with code.' % SQLObjectVersionTable.sqlmeta.table) |
From: Oleg B. <ph...@ph...> - 2008-07-31 21:09:21
|
On Thu, Jul 31, 2008 at 08:58:04PM +0000, Matthew Wilson wrote: > Index: sqlobject/converters.py > =================================================================== > --- sqlobject/converters.py (revision 3536) > +++ sqlobject/converters.py (working copy) > @@ -163,7 +163,7 @@ > registerConverter(time.struct_time, StructTimeConverter) > > def DateTimeConverter(value, db): > - return "'%04d-%02d-%02d %02d:%02d:%02d'" % ( > + return "TIMESTAMP '%04d-%02d-%02d %02d:%02d:%02d'" % ( > value.year, value.month, value.day, > value.hour, value.minute, value.second) How do you prevent MySQL and all other database to complain and reject the query? Converters are used for all kinds of backends, not only for Pg. > Index: sqlobject/manager/command.py > =================================================================== > --- sqlobject/manager/command.py (revision 3536) > +++ sqlobject/manager/command.py (working copy) > @@ -874,7 +874,7 @@ > help = ('Record state of table definitions. The state of each ' > 'table is written out to a separate file in a directory, ' > 'and that directory forms a "version". A table is also ' > - 'added to your datebase (%s) that reflects the version the ' > + 'added to your database (%s) that reflects the version the ' Thank you! Oleg. -- Oleg Broytmann http://phd.pp.ru/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |
From: Matthew W. <ma...@tp...> - 2008-07-31 21:16:47
|
On Thu 31 Jul 2008 05:09:14 PM EDT, Oleg Broytmann wrote: > On Thu, Jul 31, 2008 at 08:58:04PM +0000, Matthew Wilson wrote: >> Index: sqlobject/converters.py >> =================================================================== >> --- sqlobject/converters.py (revision 3536) >> +++ sqlobject/converters.py (working copy) >> @@ -163,7 +163,7 @@ >> registerConverter(time.struct_time, StructTimeConverter) >> >> def DateTimeConverter(value, db): >> - return "'%04d-%02d-%02d %02d:%02d:%02d'" % ( >> + return "TIMESTAMP '%04d-%02d-%02d %02d:%02d:%02d'" % ( >> value.year, value.month, value.day, >> value.hour, value.minute, value.second) > > How do you prevent MySQL and all other database to complain and reject > the query? Converters are used for all kinds of backends, not only for Pg. > Is there some way to write a specific converterjust for postgresql, and then allow other databases to use the original? Can I use the db parameter to find out what database I'm using? Matt |
From: Oleg B. <ph...@ph...> - 2008-07-31 21:25:26
|
On Thu, Jul 31, 2008 at 09:16:24PM +0000, Matthew Wilson wrote: > Is there some way to write a specific converterjust for postgresql, and > then allow other databases to use the original? Look into sqlobject/postgres/pgconnection.py; in the very end you find PsycoBinaryConverter; see how it's registered. > Can I use the db parameter to find out what database I'm using? Yes, that could be another approach. The 'db' parameter is a string there, 'postgres', e.g. Oleg. -- Oleg Broytmann http://phd.pp.ru/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |