[Checkins] SVN: Products.ZCatalog/branches/2.13/ Merge c125294 from trunk

Hano Schlichting cvs-admin at zope.org
Thu Apr 26 00:41:26 UTC 2012


Log message for revision 125299:
  Merge c125294 from trunk
  

Changed:
  U   Products.ZCatalog/branches/2.13/CHANGES.txt
  U   Products.ZCatalog/branches/2.13/setup.py
  U   Products.ZCatalog/branches/2.13/src/Products/ZCatalog/Catalog.py
  U   Products.ZCatalog/branches/2.13/src/Products/ZCatalog/tests/test_catalog.py

-=-
Modified: Products.ZCatalog/branches/2.13/CHANGES.txt
===================================================================
--- Products.ZCatalog/branches/2.13/CHANGES.txt	2012-04-26 00:35:38 UTC (rev 125298)
+++ Products.ZCatalog/branches/2.13/CHANGES.txt	2012-04-26 00:41:23 UTC (rev 125299)
@@ -1,6 +1,13 @@
 Changelog
 =========
 
+2.13.23 (2012-04-26)
+--------------------
+
+- Fixed another issue with preserving score values, when a custom index was
+  queried first which was neither ILimitedResultIndex aware nor return scores,
+  and a later index was of the default ZCTextIndex type.
+
 2.13.22 (2011-11-17)
 --------------------
 

Modified: Products.ZCatalog/branches/2.13/setup.py
===================================================================
--- Products.ZCatalog/branches/2.13/setup.py	2012-04-26 00:35:38 UTC (rev 125298)
+++ Products.ZCatalog/branches/2.13/setup.py	2012-04-26 00:41:23 UTC (rev 125299)
@@ -15,7 +15,7 @@
 from setuptools import setup, find_packages
 
 setup(name='Products.ZCatalog',
-      version = '2.13.22',
+      version = '2.13.23',
       url='http://pypi.python.org/pypi/Products.ZCatalog',
       license='ZPL 2.1',
       description="Zope 2's indexing and search solution.",

Modified: Products.ZCatalog/branches/2.13/src/Products/ZCatalog/Catalog.py
===================================================================
--- Products.ZCatalog/branches/2.13/src/Products/ZCatalog/Catalog.py	2012-04-26 00:35:38 UTC (rev 125298)
+++ Products.ZCatalog/branches/2.13/src/Products/ZCatalog/Catalog.py	2012-04-26 00:41:23 UTC (rev 125299)
@@ -541,7 +541,7 @@
                 cr.start_split(intersect_id)
                 # weightedIntersection preserves the values from any mappings
                 # we get, as some indexes don't return simple sets
-                if hasattr(rs, 'items'):
+                if hasattr(rs, 'items') or hasattr(r, 'items'):
                     _, rs = weightedIntersection(rs, r)
                 else:
                     rs = intersection(rs, r)

Modified: Products.ZCatalog/branches/2.13/src/Products/ZCatalog/tests/test_catalog.py
===================================================================
--- Products.ZCatalog/branches/2.13/src/Products/ZCatalog/tests/test_catalog.py	2012-04-26 00:35:38 UTC (rev 125298)
+++ Products.ZCatalog/branches/2.13/src/Products/ZCatalog/tests/test_catalog.py	2012-04-26 00:41:23 UTC (rev 125299)
@@ -736,7 +736,32 @@
         self.assertEqual(len(brains), 4)
         self.assertEqual(brains[0].title, '111')
 
+    def test_combined_scored_search_planned(self):
+        from ..plan import Benchmark
+        from ..plan import PriorityMap
+        cat = self._get_catalog()
+        query = dict(title='1*', true=True)
+        plan = cat.getCatalogPlan()
+        plan_key = plan.make_key(query)
+        catalog_id = plan.get_id()
+        # plan with title first
+        PriorityMap.set_entry(catalog_id, plan_key, dict(
+            title=Benchmark(1, 1, False),
+            true=Benchmark(2, 1, False),
+            ))
+        brains = cat(query)
+        self.assertEqual(len(brains), 4)
+        self.assertEqual(brains[0].title, '111')
+        # plan with true first
+        PriorityMap.set_entry(catalog_id, plan_key, dict(
+            title=Benchmark(2, 1, False),
+            true=Benchmark(1, 1, False),
+            ))
+        brains = cat(query)
+        self.assertEqual(len(brains), 4)
+        self.assertEqual(brains[0].title, '111')
 
+
 def test_suite():
     suite = unittest.TestSuite()
     suite.addTest(unittest.makeSuite(TestAddDelColumn))



More information about the checkins mailing list