Dieter Maurer wrote:
Florent Guillaume wrote at 2005-8-9 17:18 +0200:

We're seeing problems in one application here due to the catalog and interactions with Unicode. Here's what happens:

- an object is indexed with a Unicode title, so in the catalog the metadata tuple has for instance (u'cafe',) - later that title is changed to latin-1, so the new metadata tuple would be ('caf\xe9',)

The problem is that Catalog.py has in updateMetadata() the code:

           if data.get(index, 0) != newDataRecord:
               data[index] = newDataRecord
           try:
               changed = data.get(index, 0) != newDataRecord
           except UnicodeDecodeError:
               changed = True
          if changed:
               data[index] = newDataRecord

Objections ?


I fear, you will get similar problems in the indexes.

You should avoid mixed unicode/non-unicode in fields or indexes
(or the the "default encoding" appropriately).

For indexes I agree, and indeed my example of Title was not ideal. But metadata fields can have nothing to do with indexes...

Suppose you're migrating your code from using utf-8 encoded str to unicode. You have no way to recatalog the thing, it will blow in updateMetadata...

Florent

--
Florent Guillaume, Nuxeo (Paris, France)   CTO, Director of R&D
+33 1 40 33 71 59   http://nuxeo.com   [EMAIL PROTECTED]
_______________________________________________
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )

Reply via email to