- 29 Aug, 2002 7 commits
-
-
Martijn Pieters authored
-
Martijn Pieters authored
-
Martijn Pieters authored
patch from Brad Clements (fixes Zope Collector issue #525).
-
Martijn Pieters authored
specific addition of marshalling None to <boolean>0</boolean>. Benefits gained: - Uses Expat when available (like in Zope), which makes unmarshalling (receiving XML-RPC calls) much,much faster. - New library imports other python modules lazily, which helps speed up Zope startup time. - Faster escape method for outgoing calls. - Fixes for doubles and larger integers. - Allow XML-RPC calls without an empty <params /> (fixes Zope Collector #465) Additional fix: - Fix SlowParser to handle CDATA sections as well. With the ExpatParser this is less of a problem (fixes Zope Collector #547). Also see Python SF issue #601534.
-
Andreas Jung authored
-
Andreas Jung authored
missing when locking objects)
-
Shane Hathaway authored
-
- 28 Aug, 2002 8 commits
-
-
Chris McDonough authored
-
Chris McDonough authored
response.
-
Barry Warsaw authored
-
Barry Warsaw authored
opcode.
-
Barry Warsaw authored
(finally) been defined: the serial number of objects in the non-version after an abortVersion should be the last serial number of the object before it was modified in the version. This actually breaks the symmetry between serial numbers and transaction ids, so it must be handled specially. Specific changes include: _setupDBs(): Updated documentation. _finish(): Recognize the 'a' opcode, which is subtly different than the 'o' opcode. When the 'a' opcode is seen, we'll store both the "live revision id" and the current transaction id in the _serials table. The former id is the serial number of the last change to the non-version data. If we're seeing the 'o' or 'x' opcodes, we'll save None as the serial number, which tells the loop at the end of the function that the object serial number and the transaction id are the same (overwhelmingly, the most common case). When serial# <> tid, we'll concatenate the two values together into serial+tid as the value of the _serials's oid key. So the value can now be an 8-byte string (the common case), or a 16-byte string when serial# <> tid. _getSerialAndTid(): A new function which returns a 2-tuple of the oid's current serial number and the tid of the last transaction that modified the object. Usually these are the same, but in the face of abortVersion, they're not. _getSerialAndTidMissingOk(): Like _getSerialAndTid() but if the oid isn't in the _serials table, return (None, None) instead of raising a KeyError. Sometimes we need different table access semantics. abortVersion(), commitVersion(), modifiedInVersion(), load(), getSerial(), transactionalUndo(), history(), _dopack(): Use the new _getSerialAndTid() access method to get the serial# and tid for the last object modification, instead of accessing the _serials table directly. store(), _rootreachable(): Use _getSerialAndTidMissingOk()
-
Barry Warsaw authored
and it is subtly different than the `o' opcode. The serial number of objects in the non-version after an abortVersion should be the last serial number of the object before it was modified in the version. This actually breaks the symmetry between serial numbers and transaction ids, so it must be handled specially.
-
Andy McKay authored
-
Andy McKay authored
-
- 27 Aug, 2002 1 commit
-
-
Fred Drake authored
element if there isn't a prefix in the attribute name. Fixes http://mail.zope.org/pipermail/zpt/2002-August/003697.html
-
- 26 Aug, 2002 5 commits
-
-
Brian Lloyd authored
-
Brian Lloyd authored
-
Brian Lloyd authored
-
Brian Lloyd authored
-
Brian Lloyd authored
-
- 23 Aug, 2002 9 commits
-
-
Barry Warsaw authored
The picklelog branch attempts to improve performance and reduce the possibility of lock file exhaustion by optimistically writing pickle and metadata tables at the store() call instead of during the _finish() call. store() will be bounded in the number of objects it touches, but _finish() is unbounded, so we try to reduce the number of database pages the latter might actually touch. Other performance improvements are implemented based on hotshot profiling. The use of an extension module for Python 2.2 also speeds up a critical loop. This also implements the periodic checkpointing to improve recovery times when the database is not cleanly shutdown.
-
Barry Warsaw authored
-
Barry Warsaw authored
-
Barry Warsaw authored
-
Barry Warsaw authored
doing a critical operation in C. When fiddling the reference counting we often need to 1. unpack a 64bit string into a long 2. add a delta value to the long 3. pack the long into a 64bit string _helper.incr() does these three steps in C. This extension only works for Python 2.2, but Full.py has a Python replacement for use with Python 2.1.
-
Barry Warsaw authored
-
Barry Warsaw authored
write_object(): uses the `x' opcode, which is very similar to `o' except that the metadata is written optimistically during store() so it shouldn't be written during _finish().
-
Barry Warsaw authored
- Added BerkeleyConfig class for easier configuration of checkpointing policy and lock sizing. - Added _lockstats() and _docheckpoint() helpermethods.
-
Chris McDonough authored
-
- 22 Aug, 2002 4 commits
-
-
Sidnei da Silva authored
Checking why the tests are failing, i discovered a typo on the test. But unfortunately the tests are still failing. :(
-
Barry Warsaw authored
returnf() function will definitely get called. Otherwise, if we get an exception during the test, we'll deadlock because it's returnf() that releases the various test locks. loadinc(): Pass the file pointer in as well as the mbox so that the status printing will actually work. I'm not passing the file in /instead/ of the mbox, but I wasn't completely sure of the original intent of the code.
-
Fred Drake authored
Disabled tests that's probably broken during investigation.
-
Shane Hathaway authored
If self->meth is something other than a PyFunction, for example an ExtensionClass Method object, the blind cast breaks. The new code uses the string "(?)" if self->meth is not a function.
-
- 21 Aug, 2002 6 commits
-
-
Martijn Pieters authored
byte ranges because Acrobat Reader for Windows chokes when overlapping ranges have been merged.
-
Shane Hathaway authored
bug. Before the fix, ZopeSecurityPolicy saw the aq_base global and thought the module object was wrapped, leading to unexpected behavior.
-
Shane Hathaway authored
-
Shane Hathaway authored
in the error value. It may provide extra info.
-
Shane Hathaway authored
are not normally attributes of any object but acquisition wrappers, except in one important case: if container is a module and that module happens to import aq_base or aq_acquire from Acquisition, ZopeSecurityPolicy.validate() does unintended things. This made ModuleSecurityInfo declarations fail when using the Python policy. Now we no longer look at aq_base attributes, but rather the acquisition API, which is what cAccessControl does.
-
Chris McDonough authored
-