      Esdras Beleza <linux@esdrasbeleza.com>
      Chris Bennett <chrisrbennett@yahoo.com>
      James Bennett
      Julian Bez
      Arvis Bickovskis <viestards.lists@gmail.com>
      Natalia Bidart <nataliabidart@gmail.com>
      Paul Bissex <http://e-scribe.com/>
      Simon Blanchard
      David Blewett <david@dawninglight.net>
 
</s> remove             self.db.queries.append({
 </s> add             self.connection.queries.append({ </s> remove             sql = self.db.ops.last_executed_query(self.cursor, sql, params)
            self.db.queries.append({
 </s> add             sql = self.connection.ops.last_executed_query(self.cursor, sql, params)
            self.connection.queries.append({ </s> remove         self.db = db # Instance of a BaseDatabaseWrapper subclass
 </s> add         self.connection = connection

    def __getattr__(self, attr):
        if self.connection.is_managed():
            self.connection.set_dirty()
        if attr in self.__dict__:
            return self.__dict__[attr]
        else:
            return getattr(self.cursor, attr)

    def __iter__(self):
        return iter(self.cursor)


class CursorDebugWrapper(CursorWrapper): </s> remove class CursorDebugWrapper(object):
    def __init__(self, cursor, db):
 </s> add class CursorWrapper(object):
    def __init__(self, cursor, connection): </s> remove             return self.make_debug_cursor(cursor)
 </s> add             cursor = self.make_debug_cursor(self._cursor())
        else:
            cursor = util.CursorWrapper(self._cursor(), self)
    Shai Berger <shai@platonix.com>
      Esdras Beleza <linux@esdrasbeleza.com>
      Chris Bennett <chrisrbennett@yahoo.com>
      James Bennett
    Shai Berger <shai@platonix.com>
      Julian Bez
      Arvis Bickovskis <viestards.lists@gmail.com>
      Natalia Bidart <nataliabidart@gmail.com>
      Paul Bissex <http://e-scribe.com/>
      Simon Blanchard
      David Blewett <david@dawninglight.net>
keep keep add keep keep keep keep keep keep
 Fixed #9964 -- Ensure that all database operations make transactions dirty, not just write operations. Many thanks to Shai Berger for his work and persistence on this issue.

This is BACKWARDS INCOMPATIBLE for anyone relying on the current behavior that allows manually managed read-only transactions to be left dangling without a manual commit or rollback.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@15493 bcc190cf-cafb-0310-a4f2-bffc1f526a37 
AUTHORS