Am 05.06.2008 um 12:56 schrieb Marco Bizzarri:

Hi all.

I need to query a ZCatalog, and I would like to know how many elements
are there. I'm working from inside a python product, so, I could do
something like:

results = Catalog(criteria)
return len(results)


But this creates a number of objects which are completly useless for
me. After all, I'm interested in just the length, not in the objects.

I could do something like this:

results = Catalog(criteria, sort_limit=1)
return results.actual_result_count

since I should have a LazyMap, which does not (should not) actually
load all the objects (at least, I hope so).

This does not work if I have no result. So, what I should do would be:

results = Catalog(criteria, sort_limit=1)
if len(results) == 0:
   return 0
return results.actual_result_count

Am I missing something?

Yes, you do the expensive operation just for the test, so there is no benefit.

if result:
   result_len = results.actual_result_count
else:
   result_len = 0

return result_len

HTH,

__Janko

Attachment: PGP.sig
Description: This is a digitally signed message part

_______________________________________________
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )

Reply via email to