[Erp5-report] r13658 - in /erp5/trunk/products/CMFActivity: Activity/ skins/activity/

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Mar 26 16:30:32 CEST 2007


Author: yo
Date: Mon Mar 26 16:30:30 2007
New Revision: 13658

URL: http://svn.erp5.org?rev=13658&view=rev
Log:
Yet another optimization to avoid GROUP BY. Now filtering is done by Python level.

Modified:
    erp5/trunk/products/CMFActivity/Activity/SQLDict.py
    erp5/trunk/products/CMFActivity/skins/activity/SQLDict_readMessage.zsql

Modified: erp5/trunk/products/CMFActivity/Activity/SQLDict.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/Activity/SQLDict.py?rev=13658&r1=13657&r2=13658&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/Activity/SQLDict.py (original)
+++ erp5/trunk/products/CMFActivity/Activity/SQLDict.py Mon Mar 26 16:30:30 2007
@@ -250,9 +250,17 @@
                                 to_date = now_date, group_method_id = group_method_id,
                                 order_validation_text = order_validation_text)
             #LOG('SQLDict dequeueMessage', 0, 'result = %d' % (len(result)))
+            path_and_method_id_dict = {}
             for line in result:
               path = line.path
               method_id = line.method_id
+
+              # Prevent using the same pair of a path and a method id.
+              key = (path, method_id)
+              if key in path_and_method_id_dict:
+                continue
+              path_and_method_id_dict[key] = 1
+
               uid_list = activity_tool.SQLDict_readUidList(path = path, method_id = method_id,
                                                             processing_node = None, to_date = now_date,
                                                             order_validation_text = order_validation_text)

Modified: erp5/trunk/products/CMFActivity/skins/activity/SQLDict_readMessage.zsql
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/skins/activity/SQLDict_readMessage.zsql?rev=13658&r1=13657&r2=13658&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/skins/activity/SQLDict_readMessage.zsql (original)
+++ erp5/trunk/products/CMFActivity/skins/activity/SQLDict_readMessage.zsql Mon Mar 26 16:30:30 2007
@@ -13,7 +13,7 @@
 to_processing_date
 group_method_id
 order_validation_text</params>
-SELECT <dtml-if group_method_id>DISTINCT</dtml-if> * FROM
+SELECT * FROM
     message
 WHERE
     processing <> 1
@@ -22,10 +22,6 @@
 <dtml-if to_date>AND date <= <dtml-sqlvar to_date type="datetime"> </dtml-if>
 <dtml-if group_method_id>AND group_method_id = <dtml-sqlvar group_method_id type="string"> </dtml-if>
 <dtml-if order_validation_text>AND order_validation_text = <dtml-sqlvar order_validation_text type="string"> </dtml-if>
-<dtml-if group_method_id>
-GROUP BY
-    path, method_id
-</dtml-if>
 ORDER BY
     priority, date, uid
 <dtml-if group_method_id>




More information about the Erp5-report mailing list