[Erp5-report] r40057 kazuhiko - in /erp5/trunk: bt5/erp5_ingestion_mysql_innodb_catalog/Cat...

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Nov 8 16:52:54 CET 2010


Author: kazuhiko
Date: Mon Nov  8 16:52:52 2010
New Revision: 40057

URL: http://svn.erp5.org?rev=40057&view=rev
Log:
support cataloging multiple subjects.
* calculate unique subject_set_uid in ZSQLCatalog.SQLCatalog.
* move subject related tables from erp5_ingestion_mysql_innodb_catalog BT to erp5_mysql_innodb_catalog BT.
* add subject_uid column in versioning table.
* now TestDocument.test_DocumentIndexation (testDms) should pass.

Added:
    erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_subject.catalog_keys.xml
    erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_subject.xml
    erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_subject_list.catalog_keys.xml
    erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_subject_list.xml
    erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_subject.catalog_keys.xml
    erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_subject.xml
    erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_subject.catalog_keys.xml
    erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_subject.xml
Removed:
    erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_subject.catalog_keys.xml
    erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_subject.xml
    erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_uncatalog_subject.catalog_keys.xml
    erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_uncatalog_subject.xml
    erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_subject_list.catalog_keys.xml
    erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_subject_list.xml
    erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_subject.catalog_keys.xml
    erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_subject.xml
Modified:
    erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogResultTableTemplateItem/result_table_list.xml
    erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/bt/change_log
    erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/bt/revision
    erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/bt/template_catalog_method_id_list
    erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/bt/template_catalog_result_table_list
    erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_versioning_list.xml
    erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_versioning.xml
    erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogRelatedKeyTemplateItem/related_key_list.xml
    erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogResultTableTemplateItem/result_table_list.xml
    erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/change_log
    erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/revision
    erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_catalog_method_id_list
    erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_catalog_related_key_list
    erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_catalog_result_table_list
    erp5/trunk/products/ERP5Catalog/CatalogTool.py
    erp5/trunk/products/ERP5OOo/tests/testDms.py
    erp5/trunk/products/ZSQLCatalog/SQLCatalog.py

Removed: erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_subject.catalog_keys.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_subject.catalog_keys.xml?rev=40056&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_subject.catalog_keys.xml [utf8] (original)
+++ erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_subject.catalog_keys.xml (removed)
@@ -1,5 +0,0 @@
-<catalog_method>
- <item key="sql_clear_catalog" type="int">
-  <value>1</value>
- </item>
-</catalog_method>

Removed: erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_subject.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_subject.xml?rev=40056&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_subject.xml [utf8] (original)
+++ erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_subject.xml (removed)
@@ -1,135 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <tuple>
-        <global name="SQL" module="Products.ZSQLMethods.SQL"/>
-        <tuple/>
-      </tuple>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_arg</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="Args" module="Shared.DC.ZRDB.Aqueduct"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_data</string> </key>
-                        <value>
-                          <dictionary/>
-                        </value>
-                    </item>
-                    <item>
-                        <key> <string>_keys</string> </key>
-                        <value>
-                          <list/>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>allow_simple_one_argument_traversal</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>arguments_src</string> </key>
-            <value> <string></string> </value>
-        </item>
-        <item>
-            <key> <string>cache_time_</string> </key>
-            <value> <int>0</int> </value>
-        </item>
-        <item>
-            <key> <string>class_file_</string> </key>
-            <value> <string></string> </value>
-        </item>
-        <item>
-            <key> <string>class_name_</string> </key>
-            <value> <string></string> </value>
-        </item>
-        <item>
-            <key> <string>connection_hook</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>connection_id</string> </key>
-            <value> <string>erp5_sql_connection</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>z0_drop_subject</string> </value>
-        </item>
-        <item>
-            <key> <string>max_cache_</string> </key>
-            <value> <int>100</int> </value>
-        </item>
-        <item>
-            <key> <string>max_rows_</string> </key>
-            <value> <int>1000</int> </value>
-        </item>
-        <item>
-            <key> <string>src</string> </key>
-            <value> <string>DROP TABLE IF EXISTS subject</string> </value>
-        </item>
-        <item>
-            <key> <string>template</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="__newobj__" module="copy_reg"/>
-                </klass>
-                <tuple>
-                  <global name="SQL" module="Shared.DC.ZRDB.DA"/>
-                </tuple>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>__name__</string> </key>
-                        <value> <string encoding="cdata"><![CDATA[
-
-<string>
-
-]]></string> </value>
-                    </item>
-                    <item>
-                        <key> <string>_vars</string> </key>
-                        <value>
-                          <dictionary/>
-                        </value>
-                    </item>
-                    <item>
-                        <key> <string>globals</string> </key>
-                        <value>
-                          <dictionary/>
-                        </value>
-                    </item>
-                    <item>
-                        <key> <string>raw</string> </key>
-                        <value> <string>DROP TABLE IF EXISTS subject</string> </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string></string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>

Removed: erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_uncatalog_subject.catalog_keys.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_uncatalog_subject.catalog_keys.xml?rev=40056&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_uncatalog_subject.catalog_keys.xml [utf8] (original)
+++ erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_uncatalog_subject.catalog_keys.xml (removed)
@@ -1,14 +0,0 @@
-<catalog_method>
- <item key="sql_uncatalog_object" type="int">
-  <value>1</value>
- </item>
- <item key="_is_filtered_archive" type="int">
-  <value>1</value>
- </item>
- <item key="_filter_expression_archive" type="str">
-  <value>python: context.isDocument()</value>
- </item>
- <item key="_filter_expression_cache_key_archive" type="tuple">
-  <value>portal_type</value>
- </item>
-</catalog_method>

Removed: erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_uncatalog_subject.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_uncatalog_subject.xml?rev=40056&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_uncatalog_subject.xml [utf8] (original)
+++ erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_uncatalog_subject.xml (removed)
@@ -1,160 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <tuple>
-        <global name="SQL" module="Products.ZSQLMethods.SQL"/>
-        <tuple/>
-      </tuple>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_arg</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="Args" module="Shared.DC.ZRDB.Aqueduct"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_data</string> </key>
-                        <value>
-                          <dictionary>
-                            <item>
-                                <key> <string>isDocument</string> </key>
-                                <value>
-                                  <dictionary/>
-                                </value>
-                            </item>
-                            <item>
-                                <key> <string>uid</string> </key>
-                                <value>
-                                  <dictionary/>
-                                </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                    <item>
-                        <key> <string>_keys</string> </key>
-                        <value>
-                          <list>
-                            <string>uid</string>
-                            <string>isDocument</string>
-                          </list>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>allow_simple_one_argument_traversal</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>arguments_src</string> </key>
-            <value> <string>uid\r\n
-isDocument</string> </value>
-        </item>
-        <item>
-            <key> <string>cache_time_</string> </key>
-            <value> <int>0</int> </value>
-        </item>
-        <item>
-            <key> <string>class_file_</string> </key>
-            <value> <string></string> </value>
-        </item>
-        <item>
-            <key> <string>class_name_</string> </key>
-            <value> <string></string> </value>
-        </item>
-        <item>
-            <key> <string>connection_hook</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>connection_id</string> </key>
-            <value> <string>erp5_sql_connection</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>z0_uncatalog_subject</string> </value>
-        </item>
-        <item>
-            <key> <string>max_cache_</string> </key>
-            <value> <int>100</int> </value>
-        </item>
-        <item>
-            <key> <string>max_rows_</string> </key>
-            <value> <int>1000</int> </value>
-        </item>
-        <item>
-            <key> <string>src</string> </key>
-            <value> <string encoding="cdata"><![CDATA[
-
-DELETE FROM subject WHERE <dtml-sqltest uid op=eq type=int>
-
-]]></string> </value>
-        </item>
-        <item>
-            <key> <string>template</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="__newobj__" module="copy_reg"/>
-                </klass>
-                <tuple>
-                  <global name="SQL" module="Shared.DC.ZRDB.DA"/>
-                </tuple>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>__name__</string> </key>
-                        <value> <string encoding="cdata"><![CDATA[
-
-<string>
-
-]]></string> </value>
-                    </item>
-                    <item>
-                        <key> <string>_vars</string> </key>
-                        <value>
-                          <dictionary/>
-                        </value>
-                    </item>
-                    <item>
-                        <key> <string>globals</string> </key>
-                        <value>
-                          <dictionary/>
-                        </value>
-                    </item>
-                    <item>
-                        <key> <string>raw</string> </key>
-                        <value> <string encoding="cdata"><![CDATA[
-
-DELETE FROM subject WHERE <dtml-sqltest uid op=eq type=int>
-
-]]></string> </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string></string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>

Removed: erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_subject_list.catalog_keys.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_subject_list.catalog_keys.xml?rev=40056&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_subject_list.catalog_keys.xml [utf8] (original)
+++ erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_subject_list.catalog_keys.xml (removed)
@@ -1,14 +0,0 @@
-<catalog_method>
- <item key="sql_catalog_object_list" type="int">
-  <value>1</value>
- </item>
- <item key="_is_filtered_archive" type="int">
-  <value>1</value>
- </item>
- <item key="_filter_expression_archive" type="str">
-  <value>python: context.isDocument()</value>
- </item>
- <item key="_filter_expression_cache_key_archive" type="tuple">
-  <value>portal_type</value>
- </item>
-</catalog_method>

Removed: erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_subject_list.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_subject_list.xml?rev=40056&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_subject_list.xml [utf8] (original)
+++ erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_subject_list.xml (removed)
@@ -1,196 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <tuple>
-        <global name="SQL" module="Products.ZSQLMethods.SQL"/>
-        <tuple/>
-      </tuple>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_arg</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="Args" module="Shared.DC.ZRDB.Aqueduct"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_data</string> </key>
-                        <value>
-                          <dictionary>
-                            <item>
-                                <key> <string>getSubjectList</string> </key>
-                                <value>
-                                  <dictionary/>
-                                </value>
-                            </item>
-                            <item>
-                                <key> <string>isDocument</string> </key>
-                                <value>
-                                  <dictionary/>
-                                </value>
-                            </item>
-                            <item>
-                                <key> <string>uid</string> </key>
-                                <value>
-                                  <dictionary/>
-                                </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                    <item>
-                        <key> <string>_keys</string> </key>
-                        <value>
-                          <list>
-                            <string>getSubjectList</string>
-                            <string>isDocument</string>
-                            <string>uid</string>
-                          </list>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>allow_simple_one_argument_traversal</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>arguments_src</string> </key>
-            <value> <string>getSubjectList\r\n
-isDocument\r\n
-uid</string> </value>
-        </item>
-        <item>
-            <key> <string>cache_time_</string> </key>
-            <value> <int>0</int> </value>
-        </item>
-        <item>
-            <key> <string>class_file_</string> </key>
-            <value> <string></string> </value>
-        </item>
-        <item>
-            <key> <string>class_name_</string> </key>
-            <value> <string></string> </value>
-        </item>
-        <item>
-            <key> <string>connection_hook</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>connection_id</string> </key>
-            <value> <string>erp5_sql_connection</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>z_catalog_subject_list</string> </value>
-        </item>
-        <item>
-            <key> <string>max_cache_</string> </key>
-            <value> <int>100</int> </value>
-        </item>
-        <item>
-            <key> <string>max_rows_</string> </key>
-            <value> <int>1000</int> </value>
-        </item>
-        <item>
-            <key> <string>src</string> </key>
-            <value> <string encoding="cdata"><![CDATA[
-
-REPLACE INTO subject VALUES \n
-<dtml-in prefix="loop" expr="_.range(_.len(uid))">\n
-  <dtml-if sequence-start><dtml-else>,</dtml-if>\n
-  <dtml-let subject="getSubjectList[loop_item]">\n
-    <dtml-if subject>\n
-      <dtml-in prefix="word" expr="subject">\n
-<dtml-if sequence-start><dtml-else>,</dtml-if>\n
-(<dtml-sqlvar "uid[loop_item]" type="int">, <dtml-sqlvar word_item type="string">)\n
-      </dtml-in>\n
-    <dtml-else>\n
-(<dtml-sqlvar "uid[loop_item]" type="int">, NULL)\n
-    </dtml-if>\n
-  </dtml-let>\n
-</dtml-in>\n
-
-
-]]></string> </value>
-        </item>
-        <item>
-            <key> <string>template</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="__newobj__" module="copy_reg"/>
-                </klass>
-                <tuple>
-                  <global name="SQL" module="Shared.DC.ZRDB.DA"/>
-                </tuple>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>__name__</string> </key>
-                        <value> <string encoding="cdata"><![CDATA[
-
-<string>
-
-]]></string> </value>
-                    </item>
-                    <item>
-                        <key> <string>_vars</string> </key>
-                        <value>
-                          <dictionary/>
-                        </value>
-                    </item>
-                    <item>
-                        <key> <string>globals</string> </key>
-                        <value>
-                          <dictionary/>
-                        </value>
-                    </item>
-                    <item>
-                        <key> <string>raw</string> </key>
-                        <value> <string encoding="cdata"><![CDATA[
-
-REPLACE INTO subject VALUES \n
-<dtml-in prefix="loop" expr="_.range(_.len(uid))">\n
-  <dtml-if sequence-start><dtml-else>,</dtml-if>\n
-  <dtml-let subject="getSubjectList[loop_item]">\n
-    <dtml-if subject>\n
-      <dtml-in prefix="word" expr="subject">\n
-<dtml-if sequence-start><dtml-else>,</dtml-if>\n
-(<dtml-sqlvar "uid[loop_item]" type="int">, <dtml-sqlvar word_item type="string">)\n
-      </dtml-in>\n
-    <dtml-else>\n
-(<dtml-sqlvar "uid[loop_item]" type="int">, NULL)\n
-    </dtml-if>\n
-  </dtml-let>\n
-</dtml-in>\n
-
-
-]]></string> </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string></string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>

Removed: erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_subject.catalog_keys.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_subject.catalog_keys.xml?rev=40056&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_subject.catalog_keys.xml [utf8] (original)
+++ erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_subject.catalog_keys.xml (removed)
@@ -1,5 +0,0 @@
-<catalog_method>
- <item key="sql_clear_catalog" type="int">
-  <value>1</value>
- </item>
-</catalog_method>

Removed: erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_subject.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_subject.xml?rev=40056&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_subject.xml [utf8] (original)
+++ erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_subject.xml (removed)
@@ -1,147 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <tuple>
-        <global name="SQL" module="Products.ZSQLMethods.SQL"/>
-        <tuple/>
-      </tuple>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_arg</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="Args" module="Shared.DC.ZRDB.Aqueduct"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_data</string> </key>
-                        <value>
-                          <dictionary/>
-                        </value>
-                    </item>
-                    <item>
-                        <key> <string>_keys</string> </key>
-                        <value>
-                          <list/>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>allow_simple_one_argument_traversal</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>arguments_src</string> </key>
-            <value> <string></string> </value>
-        </item>
-        <item>
-            <key> <string>cache_time_</string> </key>
-            <value> <int>0</int> </value>
-        </item>
-        <item>
-            <key> <string>class_file_</string> </key>
-            <value> <string></string> </value>
-        </item>
-        <item>
-            <key> <string>class_name_</string> </key>
-            <value> <string></string> </value>
-        </item>
-        <item>
-            <key> <string>connection_hook</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>connection_id</string> </key>
-            <value> <string>erp5_sql_connection</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>z_create_subject</string> </value>
-        </item>
-        <item>
-            <key> <string>max_cache_</string> </key>
-            <value> <int>100</int> </value>
-        </item>
-        <item>
-            <key> <string>max_rows_</string> </key>
-            <value> <int>1000</int> </value>
-        </item>
-        <item>
-            <key> <string>src</string> </key>
-            <value> <string>CREATE TABLE subject (\n
-  uid BIGINT UNSIGNED NOT NULL,\n
-  subject VARCHAR(255),\n
-  PRIMARY KEY `uid` (`uid`),\n
-  KEY `subject` (`subject`)\n
-) TYPE=InnoDB; \n
-</string> </value>
-        </item>
-        <item>
-            <key> <string>template</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="__newobj__" module="copy_reg"/>
-                </klass>
-                <tuple>
-                  <global name="SQL" module="Shared.DC.ZRDB.DA"/>
-                </tuple>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>__name__</string> </key>
-                        <value> <string encoding="cdata"><![CDATA[
-
-<string>
-
-]]></string> </value>
-                    </item>
-                    <item>
-                        <key> <string>_vars</string> </key>
-                        <value>
-                          <dictionary/>
-                        </value>
-                    </item>
-                    <item>
-                        <key> <string>globals</string> </key>
-                        <value>
-                          <dictionary/>
-                        </value>
-                    </item>
-                    <item>
-                        <key> <string>raw</string> </key>
-                        <value> <string>CREATE TABLE subject (\n
-  uid BIGINT UNSIGNED NOT NULL,\n
-  subject VARCHAR(255),\n
-  PRIMARY KEY `uid` (`uid`),\n
-  KEY `subject` (`subject`)\n
-) TYPE=InnoDB; \n
-</string> </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string></string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>

Modified: erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogResultTableTemplateItem/result_table_list.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogResultTableTemplateItem/result_table_list.xml?rev=40057&r1=40056&r2=40057&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogResultTableTemplateItem/result_table_list.xml [utf8] (original)
+++ erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/CatalogResultTableTemplateItem/result_table_list.xml [utf8] Mon Nov  8 16:52:52 2010
@@ -1,4 +1,3 @@
 <key_list>
  <key>email</key>
- <key>subject</key>
 </key_list>
\ No newline at end of file

Modified: erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/bt/change_log
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/bt/change_log?rev=40057&r1=40056&r2=40057&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/bt/change_log [utf8] (original)
+++ erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/bt/change_log [utf8] Mon Nov  8 16:52:52 2010
@@ -1,3 +1,6 @@
+2010-11-08 Kazuhiko
+* subject related tables are moved to erp5_mysql_innodb_catalog.
+
 2009-04-18 Kazuhiko
 * Version 5.4.1
 

Modified: erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/bt/revision
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/bt/revision?rev=40057&r1=40056&r2=40057&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/bt/revision [utf8] (original)
+++ erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/bt/revision [utf8] Mon Nov  8 16:52:52 2010
@@ -1 +1 @@
-24
\ No newline at end of file
+25
\ No newline at end of file

Modified: erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/bt/template_catalog_method_id_list
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/bt/template_catalog_method_id_list?rev=40057&r1=40056&r2=40057&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/bt/template_catalog_method_id_list [utf8] (original)
+++ erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/bt/template_catalog_method_id_list [utf8] Mon Nov  8 16:52:52 2010
@@ -1,8 +1,4 @@
 erp5_mysql_innodb/z0_drop_email
-erp5_mysql_innodb/z0_drop_subject
 erp5_mysql_innodb/z0_uncatalog_email
-erp5_mysql_innodb/z0_uncatalog_subject
 erp5_mysql_innodb/z_catalog_email_list
-erp5_mysql_innodb/z_catalog_subject_list
-erp5_mysql_innodb/z_create_email
-erp5_mysql_innodb/z_create_subject
\ No newline at end of file
+erp5_mysql_innodb/z_create_email
\ No newline at end of file

Modified: erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/bt/template_catalog_result_table_list
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/bt/template_catalog_result_table_list?rev=40057&r1=40056&r2=40057&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/bt/template_catalog_result_table_list [utf8] (original)
+++ erp5/trunk/bt5/erp5_ingestion_mysql_innodb_catalog/bt/template_catalog_result_table_list [utf8] Mon Nov  8 16:52:52 2010
@@ -1,2 +1 @@
-email
-subject
\ No newline at end of file
+email
\ No newline at end of file

Added: erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_subject.catalog_keys.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_subject.catalog_keys.xml?rev=40057&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_subject.catalog_keys.xml (added)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_subject.catalog_keys.xml [utf8] Mon Nov  8 16:52:52 2010
@@ -0,0 +1,5 @@
+<catalog_method>
+ <item key="sql_clear_catalog" type="int">
+  <value>1</value>
+ </item>
+</catalog_method>

Added: erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_subject.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_subject.xml?rev=40057&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_subject.xml (added)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_subject.xml [utf8] Mon Nov  8 16:52:52 2010
@@ -0,0 +1,132 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="SQL" module="Products.ZSQLMethods.SQL"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_arg</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="Args" module="Shared.DC.ZRDB.Aqueduct"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_data</string> </key>
+                        <value>
+                          <dictionary/>
+                        </value>
+                    </item>
+                    <item>
+                        <key> <string>_keys</string> </key>
+                        <value>
+                          <list/>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>allow_simple_one_argument_traversal</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>arguments_src</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>cache_time_</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>class_file_</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>class_name_</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>connection_hook</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>connection_id</string> </key>
+            <value> <string>erp5_sql_connection</string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>z0_drop_subject</string> </value>
+        </item>
+        <item>
+            <key> <string>max_cache_</string> </key>
+            <value> <int>100</int> </value>
+        </item>
+        <item>
+            <key> <string>max_rows_</string> </key>
+            <value> <int>1000</int> </value>
+        </item>
+        <item>
+            <key> <string>src</string> </key>
+            <value> <string>DROP TABLE IF EXISTS subject</string> </value>
+        </item>
+        <item>
+            <key> <string>template</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="__newobj__" module="copy_reg"/>
+                </klass>
+                <tuple>
+                  <global name="SQL" module="Shared.DC.ZRDB.DA"/>
+                </tuple>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>__name__</string> </key>
+                        <value> <string encoding="cdata"><![CDATA[
+
+<string>
+
+]]></string> </value>
+                    </item>
+                    <item>
+                        <key> <string>_vars</string> </key>
+                        <value>
+                          <dictionary/>
+                        </value>
+                    </item>
+                    <item>
+                        <key> <string>globals</string> </key>
+                        <value>
+                          <dictionary/>
+                        </value>
+                    </item>
+                    <item>
+                        <key> <string>raw</string> </key>
+                        <value> <string>DROP TABLE IF EXISTS subject</string> </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>

Added: erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_subject_list.catalog_keys.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_subject_list.catalog_keys.xml?rev=40057&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_subject_list.catalog_keys.xml (added)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_subject_list.catalog_keys.xml [utf8] Mon Nov  8 16:52:52 2010
@@ -0,0 +1,14 @@
+<catalog_method>
+ <item key="sql_catalog_object_list" type="int">
+  <value>1</value>
+ </item>
+ <item key="_is_filtered_archive" type="int">
+  <value>1</value>
+ </item>
+ <item key="_filter_expression_archive" type="str">
+  <value>python: getattr(context, 'getVersion', None) is not None</value>
+ </item>
+ <item key="_filter_expression_cache_key_archive" type="tuple">
+  <value>portal_type</value>
+ </item>
+</catalog_method>

Added: erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_subject_list.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_subject_list.xml?rev=40057&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_subject_list.xml (added)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_subject_list.xml [utf8] Mon Nov  8 16:52:52 2010
@@ -0,0 +1,195 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="SQL" module="Products.ZSQLMethods.SQL"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_arg</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="Args" module="Shared.DC.ZRDB.Aqueduct"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_data</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>optimised_subject_list</string> </key>
+                                <value>
+                                  <dictionary/>
+                                </value>
+                            </item>
+                            <item>
+                                <key> <string>subject_set_uid</string> </key>
+                                <value>
+                                  <dictionary/>
+                                </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                    <item>
+                        <key> <string>_keys</string> </key>
+                        <value>
+                          <list>
+                            <string>subject_set_uid</string>
+                            <string>optimised_subject_list</string>
+                          </list>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>allow_simple_one_argument_traversal</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>arguments_src</string> </key>
+            <value> <string>subject_set_uid\r\n
+optimised_subject_list</string> </value>
+        </item>
+        <item>
+            <key> <string>cache_time_</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>class_file_</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>class_name_</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>connection_hook</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>connection_id</string> </key>
+            <value> <string>erp5_sql_connection</string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>z_catalog_subject_list</string> </value>
+        </item>
+        <item>
+            <key> <string>max_cache_</string> </key>
+            <value> <int>100</int> </value>
+        </item>
+        <item>
+            <key> <string>max_rows_</string> </key>
+            <value> <int>1000</int> </value>
+        </item>
+        <item>
+            <key> <string>src</string> </key>
+            <value> <string encoding="cdata"><![CDATA[
+
+<dtml-let row_list="[]">\n
+  <dtml-in prefix="loop" expr="_.range(_.len(subject_set_uid))">\n
+    <dtml-if expr="optimised_subject_list[loop_item]">\n
+      <dtml-in prefix="role" expr="optimised_subject_list[loop_item]">\n
+        <dtml-call expr="row_list.append([subject_set_uid[loop_item], role_item])">\n
+      </dtml-in>\n
+    </dtml-if>\n
+  </dtml-in>\n
+  <dtml-if expr="row_list">\n
+INSERT INTO\n
+  subject\n
+  (`subject_set_uid`,  `subject`)\n
+VALUES\n
+    <dtml-in prefix="row" expr="row_list">\n
+(<dtml-sqlvar expr="row_item[0]" type="string">, <dtml-sqlvar expr="row_item[1]" type="string">)\n
+<dtml-if sequence-end><dtml-else>,</dtml-if>\n
+    </dtml-in>\n
+  </dtml-if>\n
+</dtml-let>\n
+
+
+]]></string> </value>
+        </item>
+        <item>
+            <key> <string>template</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="__newobj__" module="copy_reg"/>
+                </klass>
+                <tuple>
+                  <global name="SQL" module="Shared.DC.ZRDB.DA"/>
+                </tuple>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>__name__</string> </key>
+                        <value> <string encoding="cdata"><![CDATA[
+
+<string>
+
+]]></string> </value>
+                    </item>
+                    <item>
+                        <key> <string>_vars</string> </key>
+                        <value>
+                          <dictionary/>
+                        </value>
+                    </item>
+                    <item>
+                        <key> <string>globals</string> </key>
+                        <value>
+                          <dictionary/>
+                        </value>
+                    </item>
+                    <item>
+                        <key> <string>raw</string> </key>
+                        <value> <string encoding="cdata"><![CDATA[
+
+<dtml-let row_list="[]">\n
+  <dtml-in prefix="loop" expr="_.range(_.len(subject_set_uid))">\n
+    <dtml-if expr="optimised_subject_list[loop_item]">\n
+      <dtml-in prefix="role" expr="optimised_subject_list[loop_item]">\n
+        <dtml-call expr="row_list.append([subject_set_uid[loop_item], role_item])">\n
+      </dtml-in>\n
+    </dtml-if>\n
+  </dtml-in>\n
+  <dtml-if expr="row_list">\n
+INSERT INTO\n
+  subject\n
+  (`subject_set_uid`,  `subject`)\n
+VALUES\n
+    <dtml-in prefix="row" expr="row_list">\n
+(<dtml-sqlvar expr="row_item[0]" type="string">, <dtml-sqlvar expr="row_item[1]" type="string">)\n
+<dtml-if sequence-end><dtml-else>,</dtml-if>\n
+    </dtml-in>\n
+  </dtml-if>\n
+</dtml-let>\n
+
+
+]]></string> </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>

Modified: erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_versioning_list.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_versioning_list.xml?rev=40057&r1=40056&r2=40057&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_versioning_list.xml [utf8] (original)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_versioning_list.xml [utf8] Mon Nov  8 16:52:52 2010
@@ -63,6 +63,12 @@
                                 </value>
                             </item>
                             <item>
+                                <key> <string>subject_set_uid</string> </key>
+                                <value>
+                                  <dictionary/>
+                                </value>
+                            </item>
+                            <item>
                                 <key> <string>uid</string> </key>
                                 <value>
                                   <dictionary/>
@@ -79,6 +85,7 @@
                             <string>getLanguage</string>
                             <string>getVersion</string>
                             <string>getRevision</string>
+                            <string>subject_set_uid</string>
                             <string>getEffectiveDate</string>
                             <string>getExpirationDate</string>
                             <string>getCreationDateIndex</string>
@@ -109,10 +116,12 @@
 getLanguage\r\n
 getVersion\r\n
 getRevision\r\n
+subject_set_uid\r\n
 getEffectiveDate\r\n
 getExpirationDate\r\n
 getCreationDateIndex\r\n
-getFrequencyIndex</string> </value>
+getFrequencyIndex\r\n
+</string> </value>
         </item>
         <item>
             <key> <string>cache_time_</string> </key>
@@ -154,6 +163,8 @@ getFrequencyIndex</string> </value>
 
 REPLACE INTO\n
   versioning\n
+  (`uid`, `version`, `language`, `revision`, `subject_set_uid`, `effective_date`,\n
+   `expiration_date`, `creation_date_index`, `frequency_index`)\n
 VALUES\n
 <dtml-in prefix="loop" expr="_.range(_.len(uid))">\n
 (\n
@@ -161,6 +172,7 @@ VALUES\n
   <dtml-sqlvar expr="getVersion[loop_item]" type="string" optional>,\n
   <dtml-sqlvar expr="getLanguage[loop_item]" type="string" optional>,\n
   <dtml-sqlvar expr="getRevision[loop_item]" type="string" optional>,\n
+  <dtml-sqlvar expr="subject_set_uid[loop_item]" type="int" optional>,\n
   <dtml-sqlvar expr="getEffectiveDate[loop_item]" type="datetime" optional>,\n
   <dtml-sqlvar expr="getExpirationDate[loop_item]" type="datetime" optional>,\n
   <dtml-sqlvar expr="getCreationDateIndex[loop_item]" type="int" optional>,\n
@@ -213,6 +225,8 @@ VALUES\n
 
 REPLACE INTO\n
   versioning\n
+  (`uid`, `version`, `language`, `revision`, `subject_set_uid`, `effective_date`,\n
+   `expiration_date`, `creation_date_index`, `frequency_index`)\n
 VALUES\n
 <dtml-in prefix="loop" expr="_.range(_.len(uid))">\n
 (\n
@@ -220,6 +234,7 @@ VALUES\n
   <dtml-sqlvar expr="getVersion[loop_item]" type="string" optional>,\n
   <dtml-sqlvar expr="getLanguage[loop_item]" type="string" optional>,\n
   <dtml-sqlvar expr="getRevision[loop_item]" type="string" optional>,\n
+  <dtml-sqlvar expr="subject_set_uid[loop_item]" type="int" optional>,\n
   <dtml-sqlvar expr="getEffectiveDate[loop_item]" type="datetime" optional>,\n
   <dtml-sqlvar expr="getExpirationDate[loop_item]" type="datetime" optional>,\n
   <dtml-sqlvar expr="getCreationDateIndex[loop_item]" type="int" optional>,\n

Added: erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_subject.catalog_keys.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_subject.catalog_keys.xml?rev=40057&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_subject.catalog_keys.xml (added)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_subject.catalog_keys.xml [utf8] Mon Nov  8 16:52:52 2010
@@ -0,0 +1,5 @@
+<catalog_method>
+ <item key="sql_clear_catalog" type="int">
+  <value>1</value>
+ </item>
+</catalog_method>

Added: erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_subject.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_subject.xml?rev=40057&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_subject.xml (added)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_subject.xml [utf8] Mon Nov  8 16:52:52 2010
@@ -0,0 +1,144 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="SQL" module="Products.ZSQLMethods.SQL"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_arg</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="Args" module="Shared.DC.ZRDB.Aqueduct"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_data</string> </key>
+                        <value>
+                          <dictionary/>
+                        </value>
+                    </item>
+                    <item>
+                        <key> <string>_keys</string> </key>
+                        <value>
+                          <list/>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>allow_simple_one_argument_traversal</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>arguments_src</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>cache_time_</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>class_file_</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>class_name_</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>connection_hook</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>connection_id</string> </key>
+            <value> <string>erp5_sql_connection</string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>z_create_subject</string> </value>
+        </item>
+        <item>
+            <key> <string>max_cache_</string> </key>
+            <value> <int>100</int> </value>
+        </item>
+        <item>
+            <key> <string>max_rows_</string> </key>
+            <value> <int>1000</int> </value>
+        </item>
+        <item>
+            <key> <string>src</string> </key>
+            <value> <string>CREATE TABLE subject (\n
+  subject_set_uid INT UNSIGNED NOT NULL,\n
+  subject VARCHAR(255),\n
+  KEY `subject_set_uid` (`subject_set_uid`),\n
+  KEY `subject` (`subject`)\n
+) TYPE=InnoDB; \n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>template</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="__newobj__" module="copy_reg"/>
+                </klass>
+                <tuple>
+                  <global name="SQL" module="Shared.DC.ZRDB.DA"/>
+                </tuple>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>__name__</string> </key>
+                        <value> <string encoding="cdata"><![CDATA[
+
+<string>
+
+]]></string> </value>
+                    </item>
+                    <item>
+                        <key> <string>_vars</string> </key>
+                        <value>
+                          <dictionary/>
+                        </value>
+                    </item>
+                    <item>
+                        <key> <string>globals</string> </key>
+                        <value>
+                          <dictionary/>
+                        </value>
+                    </item>
+                    <item>
+                        <key> <string>raw</string> </key>
+                        <value> <string>CREATE TABLE subject (\n
+  subject_set_uid INT UNSIGNED NOT NULL,\n
+  subject VARCHAR(255),\n
+  KEY `subject_set_uid` (`subject_set_uid`),\n
+  KEY `subject` (`subject`)\n
+) TYPE=InnoDB; \n
+</string> </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>

Modified: erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_versioning.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_versioning.xml?rev=40057&r1=40056&r2=40057&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_versioning.xml [utf8] (original)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_versioning.xml [utf8] Mon Nov  8 16:52:52 2010
@@ -58,13 +58,15 @@
   `version` varchar(10) default \'\',\n
   `language` varchar(5) default \'\',\n
   `revision` varchar(10) default \'\',\n
+  `subject_set_uid` INT UNSIGNED,\n
   `effective_date` datetime default NULL,\n
   `expiration_date` datetime default NULL,\n
-  `creation_date_index` INT, \n
-  `frequency_index` INT, \n
+  `creation_date_index` INT,\n
+  `frequency_index` INT,\n
   PRIMARY KEY  (`uid`),\n
   KEY `version` (`version`),\n
   KEY `language` (`language`),\n
+  KEY `subject_set_uid` (`subject_set_uid`),\n
   KEY `effective_date` (`effective_date`),\n
   KEY `expiration_date` (`effective_date`),\n
   KEY `frequency_index` (`creation_date_index`, `frequency_index`)\n
@@ -110,13 +112,15 @@
   `version` varchar(10) default \'\',\n
   `language` varchar(5) default \'\',\n
   `revision` varchar(10) default \'\',\n
+  `subject_set_uid` INT UNSIGNED,\n
   `effective_date` datetime default NULL,\n
   `expiration_date` datetime default NULL,\n
-  `creation_date_index` INT, \n
-  `frequency_index` INT, \n
+  `creation_date_index` INT,\n
+  `frequency_index` INT,\n
   PRIMARY KEY  (`uid`),\n
   KEY `version` (`version`),\n
   KEY `language` (`language`),\n
+  KEY `subject_set_uid` (`subject_set_uid`),\n
   KEY `effective_date` (`effective_date`),\n
   KEY `expiration_date` (`effective_date`),\n
   KEY `frequency_index` (`creation_date_index`, `frequency_index`)\n

Added: erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_subject.catalog_keys.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_subject.catalog_keys.xml?rev=40057&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_subject.catalog_keys.xml (added)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_subject.catalog_keys.xml [utf8] Mon Nov  8 16:52:52 2010
@@ -0,0 +1,2 @@
+<catalog_method>
+</catalog_method>

Added: erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_subject.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_subject.xml?rev=40057&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_subject.xml (added)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_subject.xml [utf8] Mon Nov  8 16:52:52 2010
@@ -0,0 +1,159 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="SQL" module="Products.ZSQLMethods.SQL"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_arg</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="Args" module="Shared.DC.ZRDB.Aqueduct"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_data</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>table_0</string> </key>
+                                <value>
+                                  <dictionary/>
+                                </value>
+                            </item>
+                            <item>
+                                <key> <string>table_1</string> </key>
+                                <value>
+                                  <dictionary/>
+                                </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                    <item>
+                        <key> <string>_keys</string> </key>
+                        <value>
+                          <list>
+                            <string>table_0</string>
+                            <string>table_1</string>
+                          </list>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>allow_simple_one_argument_traversal</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>arguments_src</string> </key>
+            <value> <string>table_0\r\n
+table_1</string> </value>
+        </item>
+        <item>
+            <key> <string>cache_time_</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>class_file_</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>class_name_</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>connection_hook</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>connection_id</string> </key>
+            <value> <string>erp5_sql_connection</string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>z_related_subject</string> </value>
+        </item>
+        <item>
+            <key> <string>max_cache_</string> </key>
+            <value> <int>100</int> </value>
+        </item>
+        <item>
+            <key> <string>max_rows_</string> </key>
+            <value> <int>1000</int> </value>
+        </item>
+        <item>
+            <key> <string>src</string> </key>
+            <value> <string encoding="cdata"><![CDATA[
+
+<dtml-var table_0>.uid = catalog.uid AND\n
+<dtml-var table_0>.subject_set_uid = <dtml-var table_1>.subject_set_uid
+
+]]></string> </value>
+        </item>
+        <item>
+            <key> <string>template</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="__newobj__" module="copy_reg"/>
+                </klass>
+                <tuple>
+                  <global name="SQL" module="Shared.DC.ZRDB.DA"/>
+                </tuple>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>__name__</string> </key>
+                        <value> <string encoding="cdata"><![CDATA[
+
+<string>
+
+]]></string> </value>
+                    </item>
+                    <item>
+                        <key> <string>_vars</string> </key>
+                        <value>
+                          <dictionary/>
+                        </value>
+                    </item>
+                    <item>
+                        <key> <string>globals</string> </key>
+                        <value>
+                          <dictionary/>
+                        </value>
+                    </item>
+                    <item>
+                        <key> <string>raw</string> </key>
+                        <value> <string encoding="cdata"><![CDATA[
+
+<dtml-var table_0>.uid = catalog.uid AND\n
+<dtml-var table_0>.subject_set_uid = <dtml-var table_1>.subject_set_uid
+
+]]></string> </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>

Modified: erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogRelatedKeyTemplateItem/related_key_list.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogRelatedKeyTemplateItem/related_key_list.xml?rev=40057&r1=40056&r2=40057&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogRelatedKeyTemplateItem/related_key_list.xml [utf8] (original)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogRelatedKeyTemplateItem/related_key_list.xml [utf8] Mon Nov  8 16:52:52 2010
@@ -46,6 +46,7 @@
  <key>stock_resource_category_uid | category/category_uid/z_related_resource_uid_from_stock</key>
  <key>stock_section_category_strict_membership_uid | category/category_uid/z_related_strict_membership_section_uid_from_stock</key>
  <key>stock_section_category_uid | category/category_uid/z_related_section_uid_from_stock</key>
+ <key>subject | versioning,subject/subject/z_related_subject</key>
  <key>translated_causality_state | translation/translated_message/z_related_translated_causality_state</key>
  <key>translated_causality_state_title | translation/translated_message/z_related_translated_causality_state_title</key>
  <key>translated_opportunity_state | translation/translated_message/z_related_translated_opportunity_state</key>

Modified: erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogResultTableTemplateItem/result_table_list.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogResultTableTemplateItem/result_table_list.xml?rev=40057&r1=40056&r2=40057&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogResultTableTemplateItem/result_table_list.xml [utf8] (original)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogResultTableTemplateItem/result_table_list.xml [utf8] Mon Nov  8 16:52:52 2010
@@ -12,5 +12,6 @@
  <key>predicate_category</key>
  <key>roles_and_users</key>
  <key>stock</key>
+ <key>subject</key>
  <key>versioning</key>
 </key_list>
\ No newline at end of file

Modified: erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/change_log
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/change_log?rev=40057&r1=40056&r2=40057&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/change_log [utf8] (original)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/change_log [utf8] Mon Nov  8 16:52:52 2010
@@ -1,3 +1,7 @@
+2010-11-08 Kazuhiko
+* support cataloging multiple subjects.
+* subject related tables are moved from erp5_ingestion_mysql_innodb_catalog.
+
 2010-11-05 Kazuhiko
 * remove 'z_related_security' method and 'allowedRolesAndUsers' related key, that are not used because of the conflict with existing 'allowedRolesAndUsers' column.
 

Modified: erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/revision
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/revision?rev=40057&r1=40056&r2=40057&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/revision [utf8] (original)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/revision [utf8] Mon Nov  8 16:52:52 2010
@@ -1 +1 @@
-208
\ No newline at end of file
+209
\ No newline at end of file

Modified: erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_catalog_method_id_list
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_catalog_method_id_list?rev=40057&r1=40056&r2=40057&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_catalog_method_id_list [utf8] (original)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_catalog_method_id_list [utf8] Mon Nov  8 16:52:52 2010
@@ -17,6 +17,7 @@ erp5_mysql_innodb/z0_drop_quantity_unit_
 erp5_mysql_innodb/z0_drop_record
 erp5_mysql_innodb/z0_drop_roles_and_users
 erp5_mysql_innodb/z0_drop_stock
+erp5_mysql_innodb/z0_drop_subject
 erp5_mysql_innodb/z0_drop_transformation
 erp5_mysql_innodb/z0_drop_translation
 erp5_mysql_innodb/z0_drop_versioning
@@ -51,6 +52,7 @@ erp5_mysql_innodb/z_catalog_predicate_li
 erp5_mysql_innodb/z_catalog_quantity_unit_conversion_list
 erp5_mysql_innodb/z_catalog_roles_and_users_list
 erp5_mysql_innodb/z_catalog_stock_list
+erp5_mysql_innodb/z_catalog_subject_list
 erp5_mysql_innodb/z_catalog_transformation_list
 erp5_mysql_innodb/z_catalog_translation_list
 erp5_mysql_innodb/z_catalog_versioning_list
@@ -72,6 +74,7 @@ erp5_mysql_innodb/z_create_quantity_unit
 erp5_mysql_innodb/z_create_record
 erp5_mysql_innodb/z_create_roles_and_users
 erp5_mysql_innodb/z_create_stock
+erp5_mysql_innodb/z_create_subject
 erp5_mysql_innodb/z_create_transformation
 erp5_mysql_innodb/z_create_translation
 erp5_mysql_innodb/z_create_versioning
@@ -114,6 +117,7 @@ erp5_mysql_innodb/z_related_strict_membe
 erp5_mysql_innodb/z_related_strict_membership_project_uid_from_stock
 erp5_mysql_innodb/z_related_strict_membership_resource_uid_from_stock
 erp5_mysql_innodb/z_related_strict_membership_section_uid_from_stock
+erp5_mysql_innodb/z_related_subject
 erp5_mysql_innodb/z_related_translated_causality_state
 erp5_mysql_innodb/z_related_translated_causality_state_title
 erp5_mysql_innodb/z_related_translated_opportunity_state

Modified: erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_catalog_related_key_list
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_catalog_related_key_list?rev=40057&r1=40056&r2=40057&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_catalog_related_key_list [utf8] (original)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_catalog_related_key_list [utf8] Mon Nov  8 16:52:52 2010
@@ -1,5 +1,6 @@
 item_resource_category_uid | category/category_uid/z_related_resource_uid_from_item
 stock_section_category_strict_membership_uid | category/category_uid/z_related_strict_membership_section_uid_from_stock
+subject | versioning,subject/subject/z_related_subject
 predicate_uid | predicate/uid/z_related_predicate
 translated_opportunity_state | translation/translated_message/z_related_translated_opportunity_state
 translated_opportunity_state_title | translation/translated_message/z_related_translated_opportunity_state_title

Modified: erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_catalog_result_table_list
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_catalog_result_table_list?rev=40057&r1=40056&r2=40057&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_catalog_result_table_list [utf8] (original)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_catalog_result_table_list [utf8] Mon Nov  8 16:52:52 2010
@@ -11,4 +11,5 @@ predicate
 predicate_category
 roles_and_users
 stock
+subject
 versioning
\ No newline at end of file

Modified: erp5/trunk/products/ERP5Catalog/CatalogTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Catalog/CatalogTool.py?rev=40057&r1=40056&r2=40057&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Catalog/CatalogTool.py [utf8] (original)
+++ erp5/trunk/products/ERP5Catalog/CatalogTool.py [utf8] Mon Nov  8 16:52:52 2010
@@ -745,6 +745,9 @@ class CatalogTool (UniqueObject, ZCatalo
         if predicate_property_dict is not None:
           w.predicate_property_dict = predicate_property_dict
         w.security_uid = security_uid
+        (subject_set_uid, optimised_subject_list) = catalog.getSubjectSetUid(document_w)
+        w.optimised_subject_list = optimised_subject_list
+        w.subject_set_uid = subject_set_uid
 
         return ImplicitAcquisitionWrapper(w, aq_parent(document_object))
 

Modified: erp5/trunk/products/ERP5OOo/tests/testDms.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/testDms.py?rev=40057&r1=40056&r2=40057&view=diff
==============================================================================
--- erp5/trunk/products/ERP5OOo/tests/testDms.py [utf8] (original)
+++ erp5/trunk/products/ERP5OOo/tests/testDms.py [utf8] Mon Nov  8 16:52:52 2010
@@ -2194,7 +2194,6 @@ return 1
     self.assertEquals('test-en-003-title', document.getTitle())
     self.assertEquals('test-en-003-keywords', document.getSubject())
 
-  @expectedFailure
   def test_DocumentIndexation(self):
     """
       Test how a document is being indexed in MySQL.
@@ -2212,10 +2211,11 @@ return 1
     self.assertTrue(document.getReference() in full_text_result[0]['searchabletext'])
     
     # subject indexation
-    subject_result = portal.erp5_sql_connection.manage_test('select * from subject where uid="%s"' %document.getUid())
-    self.assertTrue('subject2' in subject_result[0]['subject'])
-    self.assertTrue('subject1' in subject_result[0]['subject'])
-    
+    for subject_list in (['subject1',], ['subject2',],
+                         ['subject1', 'subject2',],):
+      subject_result = portal.portal_catalog(subject=subject_list)
+      self.assertEquals(len(subject_result), 1)
+      self.assertEquals(subject_result[0].getPath(), document.getPath())
 
 class TestDocumentWithSecurity(TestDocumentMixin):
 

Modified: erp5/trunk/products/ZSQLCatalog/SQLCatalog.py
URL: http://svn.erp5.org/erp5/trunk/products/ZSQLCatalog/SQLCatalog.py?rev=40057&r1=40056&r2=40057&view=diff
==============================================================================
--- erp5/trunk/products/ZSQLCatalog/SQLCatalog.py [utf8] (original)
+++ erp5/trunk/products/ZSQLCatalog/SQLCatalog.py [utf8] Mon Nov  8 16:52:52 2010
@@ -759,6 +759,10 @@ class Catalog(Folder,
     self.security_uid_dict = OIBTree()
     self.security_uid_index = None
 
+  def _clearSubjectCache(self):
+    self.subject_set_uid_dict = OIBTree()
+    self.subject_set_uid_index = None
+
   security.declarePrivate('getSecurityUid')
   def getSecurityUid(self, wrapped_object):
     """
@@ -826,6 +830,49 @@ class Catalog(Folder,
       extend([(role, security_uid) for role in role_list])
     return result
 
+  security.declarePrivate('getSubjectSetUid')
+  def getSubjectSetUid(self, wrapped_object):
+    """
+    Cache a uid for each unique subject tuple.
+    Return a tuple with a subject uid (string) and a new subject tuple
+    if not exist already.
+    """
+    getSubjectList = getattr(wrapped_object, 'getSubjectList', None)
+    if getSubjectList is None:
+      return (None, None)
+    # Get subject information
+    # XXX if more collation is available, we can have smaller number of
+    # unique subject sets.
+    subject_list = tuple(sorted(set([(x or '').lower() for x in getSubjectList()])))
+    if not subject_list:
+      return (None, None)
+    # Make sure no duplicates
+    if getattr(aq_base(self), 'subject_set_uid_dict', None) is None:
+      self._clearSubjectCache()
+    elif self.subject_set_uid_dict.has_key(subject_list):
+      return (self.subject_set_uid_dict[subject_list], None)
+    # If the id_tool is there, it is better to use it, it allows
+    # to create many new subject uids by the same time
+    # because with this tool we are sure that we will have 2 different
+    # uids if two instances are doing this code in the same time
+    id_tool = getattr(self.getPortalObject(), 'portal_ids', None)
+    if id_tool is not None:
+      default = 1
+      # We must keep compatibility with existing sites
+      previous_subject_set_uid = getattr(self, 'subject_set_uid_index', None)
+      if previous_subject_set_uid is not None:
+        default = previous_subject_set_uid
+      subject_set_uid = int(id_tool.generateNewId(id_generator='uid',
+          id_group='subject_set_uid_index', default=default))
+    else:
+      previous_subject_set_uid = getattr(self, 'subject_set_uid_index', None)
+      if previous_subject_set_uid is None:
+        previous_subject_set_uid = 0
+      subject_set_uid = previous_subject_set_uid + 1
+      self.subject_set_uid_index = subject_set_uid
+    self.subject_set_uid_dict[subject_list] = subject_set_uid
+    return (subject_set_uid, subject_list)
+
   def clear(self):
     """
     Clears the catalog by calling a list of methods
@@ -851,6 +898,7 @@ class Catalog(Folder,
       self.insertMaxUid()
 
     self._clearSecurityCache()
+    self._clearSubjectCache()
     self._clearCaches()
 
   def insertMaxUid(self):




More information about the Erp5-report mailing list