This issue on web2py is related to GAE issue 3119 (http://
code.google.com/p/googleappengine/issues/detail?id=3119).
I'm using web2py 1.77.3.

In gql.py, line 702 to 709:

def delete(self):
        self._db['_lastsql'] = 'DELETE WHERE %s' % self.where
        (items, tablename, fields) = self._select()
        tableobj = self._db[tablename]._tableobj
        counter = self.items_count(items)
        if counter:
            gae.delete(items)
        return counter


According to comment 8 on issue 3119, the delete function no longer
works on Query object, which items is an instance of. It suggests to
change the code to either:

db.delete(<query>.fetch(1000))

or

db.delete(list(<query>))

with a preference to fetch(1000). In other words: a fix for this issue
is to update line 708 to:

gae.delete(items.fetch(1000))

It leaves open the issue of queries returning more than 1000 results,
though.

Best regards,
Christophe

Reply via email to