From 41a1ea3c1a99e1a8d3d774b8a0b6e287af3a48b3 Mon Sep 17 00:00:00 2001
From: Vincent Pelletier <vincent@nexedi.com>
Date: Tue, 14 Oct 2008 08:11:14 +0000
Subject: [PATCH] Fix bad query execution plan when executing
 SQL{Dict,Queue}_validateMessageList.

serialization_tag is checked for equality, but processing_node is checked for inequality.
So the right index column order is serialization_tag then processing_node.
serialization_tag is not used in a where-expression in any other zsqlmethod, so previous index can be removed to save space and insertion speed.


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@24165 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 .../CMFActivity/skins/activity/SQLDict_createMessageTable.zsql  | 2 +-
 .../CMFActivity/skins/activity/SQLQueue_createMessageTable.zsql | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/product/CMFActivity/skins/activity/SQLDict_createMessageTable.zsql b/product/CMFActivity/skins/activity/SQLDict_createMessageTable.zsql
index 689d98b65e..df0a033e1f 100644
--- a/product/CMFActivity/skins/activity/SQLDict_createMessageTable.zsql
+++ b/product/CMFActivity/skins/activity/SQLDict_createMessageTable.zsql
@@ -28,7 +28,7 @@ CREATE TABLE `message` (
   KEY (`method_id`),
   KEY `processing_node_processing` (`processing_node`, `processing`),
   KEY `processing_node_date` (`processing_node`, `date`),
-  KEY `processing_node_serialization_tag` (`processing_node`, `serialization_tag`),
+  KEY `serialization_tag_processing_node` (`serialization_tag`, `processing_node`),
   KEY (`priority`),
   KEY (`tag`),
   KEY (`order_validation_text`)
diff --git a/product/CMFActivity/skins/activity/SQLQueue_createMessageTable.zsql b/product/CMFActivity/skins/activity/SQLQueue_createMessageTable.zsql
index c1104b28b6..ffb5c21f3d 100644
--- a/product/CMFActivity/skins/activity/SQLQueue_createMessageTable.zsql
+++ b/product/CMFActivity/skins/activity/SQLQueue_createMessageTable.zsql
@@ -25,7 +25,7 @@ CREATE TABLE `message_queue` (
   KEY (`method_id`),
   KEY `processing_node_processing` (`processing_node`, `processing`),
   KEY `processing_node_date` (`processing_node`, `date`),
-  KEY `processing_node_serialization_tag` (`processing_node`, `serialization_tag`),
+  KEY `serialization_tag_processing_node` (`serialization_tag`, `processing_node`),
   KEY (`priority`),
   KEY (`tag`)
 ) TYPE = InnoDB;
-- 
2.30.9