Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Better support of the new API to notify of resolved conflicts (store/…
…tpc_finish) When switching all storages to the new API in the master branch, I found a few issues, mainly with blobs. 1. Created/modified blobs are invalidated during the first phase (in Connection._store_objects): obj._p_invalidate() And with the old API, _handle_serial then sets _p_serial Ghost objects are not supposed to have a _p_serial and with the new API, a few tests would fail because _p_serial are checked without activating the blob first. 2. Another consequence of _handle_serial not updating _p_changed/_p_serial immediately is that created objects are stored twice if __getstate__ modifies itself. This case is tested in testConnection by doctest_lp485456_setattr_in_setstate_doesnt_cause_multiple_stores Hence the change in Connection._commit: - self._modified is already appended in Connection._store_objects - (obj._p_serial == z64) instead of (oid in self._creating) would not work for savepoints. 3. Setting _p_changed of a Blob with no uncommitted changes would cause an error (lp440234_Setting__p_changed_of_a_Blob_w_no_uncomitted_changes_is_noop) Fixed by the same change as in 2: - oid was appended twice to self._modified but reverted one (self._modified.pop() in _store_objects) - the test passed because _p_changed was reset early by _handle_serial
- Loading branch information
Showing
7 changed files
with
23 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters