Re: [Zope-dev] catalogObject changes (Zope-2_6-branch)

2003-10-04 Thread Chris McDonough
The system is making the assumption that if you update indexes
individually, you know what you're doing.  Passing an index name into
catalogObject was always meant to do as much or as little work as you
specified with respect to the names of the indexes; it was only by
mistake that metadata got updated when indexes were specified.  The new
(correct) behavior may break some applications that depended on the bug,
and I'm sorry it broke yours, but it was indeed a bug.

And, doh, yes, I need to forward-port the fix to the 2.7 branch and the
HEAD. :-(

On Fri, 2003-10-03 at 16:49, Dieter Maurer wrote:
 Yuppie wrote at 2003-10-3 10:14 +0200:
   Yesterday I spent some hours tracking down why catalog Metadata and 
   catalog Indexes are getting out of sync in my CMF Site.
   
   I found that checkin
   
 http://cvs.zope.org/Zope/lib/python/Products/ZCatalog/Catalog.py.diff?r1=1.98.6.10r2=1.98.6.11
   
   including this new condition
   code
if not idxs:
# if the caller specifies that we should update only a
# specific set of indexes, we don't do a metadata update.
self.updateMetadata(object, uid)
   /code
   
   Could anybody tell me what's the rationale behind that checkin?
   
   - it breaks backwards compatibility
   - it's only in Zope-2_6-branch, not in Zope-2_7-branch or HEAD
   - I can't see what this 'if' is good for anyway
 
 I can ;-)
 
 The idxs argument is often provided to update only special indexes:
 e.g. workflow indexes or AllowedRolesAndUsers and when you
 update selected indexes from the Indexes tab.
 In these cases, it is often not necessary to update the Metadata.
 
 Metadata updates are often monstruous. In one of our applications,
 Metadata updates are responsible for a 500 kB transaction
 when a single workflow state changes.
 
 I am now advocating not to use Metadata at all.
 They are only relevant when you process large result sets
 (e.g. for sorting or statistics).
 
 
 Dieter
 
 ___
 Zope-Dev maillist  -  [EMAIL PROTECTED]
 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 )


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
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 )


Re: [Zope-dev] catalogObject changes (Zope-2_6-branch)

2003-10-03 Thread Dieter Maurer
Yuppie wrote at 2003-10-3 10:14 +0200:
  Yesterday I spent some hours tracking down why catalog Metadata and 
  catalog Indexes are getting out of sync in my CMF Site.
  
  I found that checkin
  http://cvs.zope.org/Zope/lib/python/Products/ZCatalog/Catalog.py.diff?r1=1.98.6.10r2=1.98.6.11
  
  including this new condition
  code
   if not idxs:
   # if the caller specifies that we should update only a
   # specific set of indexes, we don't do a metadata update.
   self.updateMetadata(object, uid)
  /code
  
  Could anybody tell me what's the rationale behind that checkin?
  
  - it breaks backwards compatibility
  - it's only in Zope-2_6-branch, not in Zope-2_7-branch or HEAD
  - I can't see what this 'if' is good for anyway

I can ;-)

The idxs argument is often provided to update only special indexes:
e.g. workflow indexes or AllowedRolesAndUsers and when you
update selected indexes from the Indexes tab.
In these cases, it is often not necessary to update the Metadata.

Metadata updates are often monstruous. In one of our applications,
Metadata updates are responsible for a 500 kB transaction
when a single workflow state changes.

I am now advocating not to use Metadata at all.
They are only relevant when you process large result sets
(e.g. for sorting or statistics).


Dieter

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
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 )