Tim Peters wrote:
Some "auxiliary" code would definitely break if they weren't strings. For example, ZEO cache tracing has its own trace-file format, which originally blew up left and right when Shane tried to use it with APE. That got generalized (and, alas, the trace files got bigger) to live with APE's (at the time) variable-length string oids, but was not generalized to live with non-string oids.
FWIW: Ape still uses variable length strings. The OIDs shrank in size because they used to contain the object's "physical path", but that turned out to play bad tricks with copy/paste, so now OIDs are usually ASCII representations of integers.
Also, Ape assigns its own OID for the root object; '\0' * 8 is not a special OID in Ape. It can do this because it has to provide its own DB and Connection objects anyway.
Shane _______________________________________________ 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