*** base.py.orig	2009-08-19 14:49:53.000000000 -0400
--- base.py	2009-10-27 16:21:06.000000000 -0400
***************
*** 166,184 ****
      you'll need to use "%%s".
      """
      def execute(self, query, params=()):
!         query = self.convert_query(query, len(params))
          return Database.Cursor.execute(self, query, params)
  
      def executemany(self, query, param_list):
          try:
!           query = self.convert_query(query, len(param_list[0]))
            return Database.Cursor.executemany(self, query, param_list)
          except (IndexError,TypeError):
            # No parameter list provided
            return None
  
!     def convert_query(self, query, num_params):
!         return query % tuple("?" * num_params)
  
  def _sqlite_extract(lookup_type, dt):
      if dt is None:
--- 166,197 ----
      you'll need to use "%%s".
      """
      def execute(self, query, params=()):
!         query = self.convert_query(query, params)
          return Database.Cursor.execute(self, query, params)
  
      def executemany(self, query, param_list):
          try:
!           query = self.convert_query(query, param_list[0])
            return Database.Cursor.executemany(self, query, param_list)
          except (IndexError,TypeError):
            # No parameter list provided
            return None
  
!     # Or, if it wouldn't be too confusing, could put the __getitem__
!     # method on this class and convert_query could use "self" where
!     # I use _colonifier below.  Probably too much of a restriction
!     # on Database.cursor.
!     class _colonify_class:
!         def __getitem__(self, name, default=None):
!             return ":" + name
! 
!     _colonifier = _colonify_class()
! 
!     def convert_query(self, query, params):
!         try:
!             return query % tuple("?" * len(params))
!         except TypeError:
!             return query % self._colonifier
  
  def _sqlite_extract(lookup_type, dt):
      if dt is None:
