Commit fc5185e0 authored by Shane Hathaway's avatar Shane Hathaway

commitVersion(): A rare circumstance was causing versions to be only

partially committed.  If an object is stored more than once in a
version during a single transaction (which is borderline behavior anyway)
and that object has been modified for the first time in the version,
the old logic would stop prematurely.
parent a5bca2a3
...@@ -184,7 +184,7 @@ ...@@ -184,7 +184,7 @@
# may have a back pointer to a version record or to a non-version # may have a back pointer to a version record or to a non-version
# record. # record.
# #
__version__='$Revision: 1.58 $'[11:-2] __version__='$Revision: 1.59 $'[11:-2]
import struct, time, os, bpthread, string, base64, sys import struct, time, os, bpthread, string, base64, sys
from struct import pack, unpack from struct import pack, unpack
...@@ -513,8 +513,6 @@ class FileStorage(BaseStorage.BaseStorage, ...@@ -513,8 +513,6 @@ class FileStorage(BaseStorage.BaseStorage,
write(abort and pnv or spos) # data backpointer to src data write(abort and pnv or spos) # data backpointer to src data
here=here+heredelta here=here+heredelta
if h[16:24] != pnv:
# This is not the first current record, so mark it
current_oids[oid]=1 current_oids[oid]=1
else: else:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment