An error occurred fetching the project authors.
  1. 05 Mar, 2013 1 commit
    • Marius Gedminas's avatar
      Python 3: pickle bytestrings using SHORT_BINSTRING · a00d35fe
      Marius Gedminas authored
      This uses bytes_as_strings=True option introduced in zodbpickle 0.2 for
      this purpose.
      
      This way pickles produced on Python 3 are nearly the same as on Python 2.
      There are some slight differences (Python 3 seems to perform more
      memoizations which grows the size of some pickles by a couple of bytes),
      but they're immaterial.
      
      Now we can use zodbpickle's noload() on Python 3 to scan pickles for
      persistent references.  We couldn't do that before, because Python 3
      normally pickles byte strings as calls to codecs.encode(u'latin1-data',
      'latin-1'), and noload() doesn't interpret the REDUCE opcode involved in
      that representation.
      
      Note that when you're pickling byte strings using bytes_as_strings=True,
      you have to load them using encoding='bytes' (which breaks instances, so
      cannot be used) or using errors='bytes' (which mean some bytestrings may
      get unpickled as unicode instead).  I've tried hard to discover every
      place that unpickles OIDs and added conversion to bytes in those places.
      
      Applications dealing with binary data be prepared to handle bytestrings
      that unexpectedly become unicode on unpickling.  That's the price of
      Python 2 compatibility.
      a00d35fe
  2. 27 Feb, 2013 2 commits
  3. 14 Feb, 2013 2 commits
  4. 21 Jun, 2010 1 commit
  5. 03 Feb, 2010 1 commit
  6. 02 Feb, 2010 1 commit
    • Jim Fulton's avatar
      Added fsIndex save method and fsIndex load class method for saving and · 1bb14faf
      Jim Fulton authored
      loading index data.  This leverages the new fsBucket toString and
      fromString methods and provides much faster FileStorage index saving and loading
      and smaller index files.  On my machine, saves are 5 times faster and
      loads are 20 times faster (after a save, when data are in disk
      cache).  Indexes are roughly 30% smaller.
      
      The index format has changed.  Old indexes can be read just fine, but
      new indexes won't be readable by older versions of ZODB.
      1bb14faf
  7. 15 May, 2008 1 commit
  8. 21 Jan, 2008 1 commit
  9. 21 Mar, 2005 1 commit
  10. 20 Mar, 2005 1 commit
    • Chris McDonough's avatar
      Add a record iteration protocol to FileStorage. You can use the record... · 7f220b80
      Chris McDonough authored
      Add a record iteration protocol to FileStorage.  You can use the record iterator to iterate over all current revisions
      of data pickles in the storage.
      
      In order to support calling via ZEO, we don't implement this as an actual iterator.  An example of using the record iterator
      protocol is as follows:
      
      storage = FileStorage('anexisting.fs')
      next_oid = None
      while 1:
          oid, tid, data, next_oid = storage.record_iternext(next_oid)
          # do something with oid, tid and data
          if next_oid is None:
              break
      
      The behavior of the iteration protocol is now to iterate over all current records in the database in ascending oid order, 
      although this is not a promise to do so in the future.
      
      
      7f220b80
  11. 24 Feb, 2005 1 commit
    • Tim Peters's avatar
      Merge rev 29291 from ZODB 3.3 branch. · f82de536
      Tim Peters authored
      Port from ZODB 3.2.
      
      Give fsIndex an efficient maxKey() implementation.
      
      This will (in a later checkin) be used to give FileStorage an "obviously
      correct" way to determine the largest oid used in an .fs.index file.
      f82de536
  12. 03 Feb, 2005 1 commit
  13. 02 Jun, 2004 1 commit
  14. 21 May, 2004 1 commit
  15. 28 Nov, 2003 1 commit
  16. 03 Dec, 2002 1 commit
  17. 14 Aug, 2002 1 commit
  18. 11 Feb, 2002 1 commit