IIRC, the old implementation of savepoints kept a copy of the index at the time the savepoint was taken so that you could rollback to it multiple times. I don't think there's any way to avoid such a copy.
Jeremy On 7/11/05, Tim Peters <[EMAIL PROTECTED]> wrote: > [Tim Peters] > > ... > > The good news is that, while it was hard to find, it's a one-line repair. > > Alas, that wasn't the end of it either. I think I'm at the end now, and all > the tests are passing again (including new tests to provoke new problems I > found). > > A savepoint (of the data manager Connection flavor) remembers the TmpStore > index at the time the savepoint was made. When a savepoint could be used > only once, the savepoint only needed to make sure it had a copy of the index > at the time the savepoint was _made_. But when a savepoint can be reused, > even the TmpStore.reset() line > > self.index = index > > was a source of subtle bugs (later mutations to `self.index` showed up in > `index` too, and `index` there is typically taken from a savepoint's "this > is what the world looked like when I was new" state -- mutating that was > harmless before because the rollback could never be used again, but became > disastrous when allowing re-use). > > _______________________________________________ > For more information about ZODB, see the ZODB Wiki: > http://www.zope.org/Wikis/ZODB/ > > ZODB-Dev mailing list - ZODB-Dev@zope.org > http://mail.zope.org/mailman/listinfo/zodb-dev > _______________________________________________ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev