On Thu, Jun 5, 2008 at 1:28 PM, Janko Hauser <jh@zscout.de> wrote:
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
_______________________________________________ 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 )
Hi, Janko. Thanks for your answer, but there is something I do not understand: if results: an empty result from ZCatlog is false in a boolen condition? Regards Marco -- Marco Bizzarri http://iliveinpisa.blogspot.com/