[Erp5-report] r33897 nicolas.dumazet - in /erp5/trunk/products/ERP5/bootstrap/erp5_mysql_in...

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Mar 19 08:30:55 CET 2010


Author: nicolas.dumazet
Date: Fri Mar 19 08:30:54 2010
New Revision: 33897

URL: http://svn.erp5.org?rev=33897&view=rev
Log:
group transformation indexation to avoid using many (too small) transactions

Added:
    erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_transformation_list.catalog_keys.xml
    erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_transformation_list.xml
Removed:
    erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_transformation.catalog_keys.xml
    erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_transformation.xml
Modified:
    erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/SQLCatalog_catalogTransformation.xml
    erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/SQLCatalog_catalogTransformationList.xml
    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

Modified: erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/SQLCatalog_catalogTransformation.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/SQLCatalog_catalogTransformation.xml?rev=33897&r1=33896&r2=33897&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/SQLCatalog_catalogTransformation.xml [utf8] (original)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/SQLCatalog_catalogTransformation.xml [utf8] Fri Mar 19 08:30:54 2010
@@ -53,41 +53,51 @@
         </item>
         <item>
             <key> <string>_body</string> </key>
-            <value> <string encoding="cdata"><![CDATA[
-
-# This script indexes the preferred Transformation to produce\n
+            <value> <string># This script indexes the preferred Transformation to produce\n
 # a variation of a product.\n
-# Only the transformation is passed as a parameter, the resource being\n
-# transformation.getResourceValue()\n
+# transformation_item_list is a list of:\n
+#   transformation, variation_list_list\n
+# transformation is a transformation to index, while variation_list_list\n
+# is a list of variation categories that are relevant for the produced resource\n
+\n
 \n
 from Products.ERP5Type.Document import newTempMovement\n
 \n
-transformation = context.restrictedTraverse(transformation_relative_url)\n
-resource = transformation.getResourceValue()\n
+# List of dictionaries:\n
+#   { id:resource_id,\n
+#     variation_text: resource_variation_text,\n
+#     row_dict_list: list of rows to insert; each row is represented as a dict.}\n
+row_dict_dict_list = []\n
 \n
-row_dict_list = []\n
-movement = newTempMovement(resource, \'temp\',\n
-                           variation_category_list=variation_list,\n
-                           resource=resource.getRelativeUrl(),\n
-                           quantity=1.0)\n
+for transformation_relative_url, variation_list_list in transformation_item_list:\n
+  transformation = context.restrictedTraverse(transformation_relative_url)\n
+  resource = transformation.getResourceValue()\n
 \n
-base_row = dict(uid=resource.getUid(), variation_text=movement.getVariationText())\n
+  if resource is None:\n
+    continue\n
+  for variation_list in variation_list_list:\n
+    movement = newTempMovement(resource, \'temp\',\n
+                               variation_category_list=variation_list,\n
+                               resource=resource.getRelativeUrl(),\n
+                               quantity=1.0)\n
+    base_row = dict(uid=resource.getUid(), variation_text=movement.getVariationText())\n
 \n
-for amount in transformation.getAggregatedAmountList(movement):\n
-  transformed_resource_uid = amount.getResourceUid()\n
-  quantity = amount.getQuantity()\n
-  if transformed_resource_uid is not None and quantity is not None:\n
-    row_dict = base_row.copy()\n
-    row_dict.update(transformed_uid=transformed_resource_uid,\n
-                    transformed_variation_text=amount.getVariationText(),\n
-                    quantity=quantity)\n
-    row_dict_list.append(row_dict)\n
+    row_dict_list = []\n
+    for amount in transformation.getAggregatedAmountList(movement):\n
+      transformed_resource_uid = amount.getResourceUid()\n
+      quantity = amount.getQuantity()\n
+      if transformed_resource_uid is not None and quantity is not None:\n
+        row_dict = base_row.copy()\n
+        row_dict.update(transformed_uid=transformed_resource_uid,\n
+                        transformed_variation_text=amount.getVariationText(),\n
+                        quantity=quantity)\n
+        row_dict_list.append(row_dict)\n
 \n
-if len(row_dict_list) > 0:\n
-  context.z_catalog_transformation(row_dict_list=row_dict_list)\n
-
-
-]]></string> </value>
+    base_row[\'row_dict_list\'] = row_dict_list\n
+    row_dict_dict_list.append(base_row)\n
+\n
+context.z_catalog_transformation_list(row_dict_dict_list=row_dict_dict_list)\n
+</string> </value>
         </item>
         <item>
             <key> <string>_code</string> </key>
@@ -97,7 +107,7 @@
         </item>
         <item>
             <key> <string>_params</string> </key>
-            <value> <string>transformation_relative_url, variation_list</string> </value>
+            <value> <string>transformation_item_list</string> </value>
         </item>
         <item>
             <key> <string>errors</string> </key>
@@ -117,31 +127,34 @@
                   <dictionary>
                     <item>
                         <key> <string>co_argcount</string> </key>
-                        <value> <int>2</int> </value>
+                        <value> <int>1</int> </value>
                     </item>
                     <item>
                         <key> <string>co_varnames</string> </key>
                         <value>
                           <tuple>
-                            <string>transformation_relative_url</string>
-                            <string>variation_list</string>
+                            <string>transformation_item_list</string>
                             <string>Products.ERP5Type.Document</string>
                             <string>newTempMovement</string>
+                            <string>row_dict_dict_list</string>
+                            <string>_getiter_</string>
+                            <string>transformation_relative_url</string>
+                            <string>variation_list_list</string>
                             <string>_getattr_</string>
                             <string>context</string>
                             <string>transformation</string>
                             <string>resource</string>
-                            <string>row_dict_list</string>
+                            <string>None</string>
+                            <string>variation_list</string>
                             <string>movement</string>
                             <string>dict</string>
                             <string>base_row</string>
-                            <string>_getiter_</string>
+                            <string>row_dict_list</string>
                             <string>amount</string>
                             <string>transformed_resource_uid</string>
                             <string>quantity</string>
-                            <string>None</string>
                             <string>row_dict</string>
-                            <string>len</string>
+                            <string>_write_</string>
                           </tuple>
                         </value>
                     </item>

Modified: erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/SQLCatalog_catalogTransformationList.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/SQLCatalog_catalogTransformationList.xml?rev=33897&r1=33896&r2=33897&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/SQLCatalog_catalogTransformationList.xml [utf8] (original)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/SQLCatalog_catalogTransformationList.xml [utf8] Fri Mar 19 08:30:54 2010
@@ -53,19 +53,36 @@
         </item>
         <item>
             <key> <string>_body</string> </key>
-            <value> <string># Indexing all transformation lines for all possible variations of a Resource can be very costly.\n
+            <value> <string encoding="cdata"><![CDATA[
+
+# Indexing all transformation lines for all possible variations of a Resource can be very costly.\n
 # Avoid doing this in a single transaction, and split the operation.\n
-#\n
-# One activity is generated per (resource, variation_category_list) possibility\n
+\n
+batch_size = 100\n
+current_batch = []\n
+current_size = 0\n
 \n
 for i, transformation in enumerate(getDefaultConversionTransformationValue):\n
   if transformation is None:\n
     continue\n
   transformation_relative_url = transformation.getRelativeUrl()\n
-  for variation_category_list in getTransformationVariationCategoryCartesianProduct[i]:\n
-    context.activate(activity=\'SQLQueue\').SQLCatalog_catalogTransformation(transformation_relative_url,\n
-                                                        variation_category_list)\n
-</string> </value>
+  variation_list_list = getTransformationVariationCategoryCartesianProduct[i]\n
+  size = len(transformation)*len(variation_list_list)\n
+\n
+  if size + current_size < batch_size:\n
+    current_batch.append((transformation_relative_url, variation_list_list))\n
+    current_size += size\n
+  else:\n
+    context.activate(activity=\'SQLQueue\').SQLCatalog_catalogTransformation(current_batch)\n
+    current_batch = (transformation_relative_url, variation_list_list),\n
+    current_size = size\n
+\n
+\n
+if current_batch:\n
+  context.activate(activity=\'SQLQueue\').SQLCatalog_catalogTransformation(current_batch)\n
+
+
+]]></string> </value>
         </item>
         <item>
             <key> <string>_code</string> </key>
@@ -103,6 +120,9 @@
                           <tuple>
                             <string>getDefaultConversionTransformationValue</string>
                             <string>getTransformationVariationCategoryCartesianProduct</string>
+                            <string>batch_size</string>
+                            <string>current_batch</string>
+                            <string>current_size</string>
                             <string>_getiter_</string>
                             <string>enumerate</string>
                             <string>i</string>
@@ -111,7 +131,10 @@
                             <string>_getattr_</string>
                             <string>transformation_relative_url</string>
                             <string>_getitem_</string>
-                            <string>variation_category_list</string>
+                            <string>variation_list_list</string>
+                            <string>len</string>
+                            <string>size</string>
+                            <string>_inplacevar_</string>
                             <string>context</string>
                           </tuple>
                         </value>

Removed: erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_transformation.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_transformation.catalog_keys.xml?rev=33896&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_transformation.catalog_keys.xml [utf8] (original)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_transformation.catalog_keys.xml (removed)
@@ -1,2 +1,0 @@
-<catalog_method>
-</catalog_method>

Removed: erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_transformation.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_transformation.xml?rev=33896&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_transformation.xml [utf8] (original)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_transformation.xml (removed)
@@ -1,186 +1,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>row_dict_list</string> </key>
-                                <value>
-                                  <dictionary/>
-                                </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                    <item>
-                        <key> <string>_keys</string> </key>
-                        <value>
-                          <list>
-                            <string>row_dict_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>row_dict_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_transformation</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 `transformation` WHERE\n
-  <dtml-sqltest expr="row_dict_list[0][\'uid\']" column="uid" type="int">\n
-  AND\n
-  <dtml-sqltest expr="row_dict_list[0][\'variation_text\']" column="variation_text" type="string">;\n
-<dtml-var sql_delimiter>\n
-\n
-INSERT INTO `transformation`\n
-VALUES\n
-    <dtml-in row_dict_list prefix="loop">\n
-(\n
-  <dtml-sqlvar expr="loop_item[\'uid\']" type="int">,\n
-  <dtml-sqlvar expr="loop_item[\'variation_text\']" type="string">,\n
-  <dtml-sqlvar expr="loop_item[\'transformed_uid\']" type="int">,\n
-  <dtml-sqlvar expr="loop_item[\'transformed_variation_text\']" type="string">,\n
-  <dtml-sqlvar expr="loop_item[\'quantity\']" type="float">\n
-)\n
-<dtml-unless sequence-end>,</dtml-unless>\n
-    </dtml-in>
-
-]]></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 `transformation` WHERE\n
-  <dtml-sqltest expr="row_dict_list[0][\'uid\']" column="uid" type="int">\n
-  AND\n
-  <dtml-sqltest expr="row_dict_list[0][\'variation_text\']" column="variation_text" type="string">;\n
-<dtml-var sql_delimiter>\n
-\n
-INSERT INTO `transformation`\n
-VALUES\n
-    <dtml-in row_dict_list prefix="loop">\n
-(\n
-  <dtml-sqlvar expr="loop_item[\'uid\']" type="int">,\n
-  <dtml-sqlvar expr="loop_item[\'variation_text\']" type="string">,\n
-  <dtml-sqlvar expr="loop_item[\'transformed_uid\']" type="int">,\n
-  <dtml-sqlvar expr="loop_item[\'transformed_variation_text\']" type="string">,\n
-  <dtml-sqlvar expr="loop_item[\'quantity\']" type="float">\n
-)\n
-<dtml-unless sequence-end>,</dtml-unless>\n
-    </dtml-in>
-
-]]></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_transformation_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_transformation_list.catalog_keys.xml?rev=33897&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_transformation_list.catalog_keys.xml (added)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_transformation_list.catalog_keys.xml [utf8] Fri Mar 19 08:30:54 2010
@@ -1,0 +1,2 @@
+<catalog_method>
+</catalog_method>

Added: erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_transformation_list.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_transformation_list.xml?rev=33897&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_transformation_list.xml (added)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_transformation_list.xml [utf8] Fri Mar 19 08:30:54 2010
@@ -1,0 +1,204 @@
+<?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>row_dict_dict_list</string> </key>
+                                <value>
+                                  <dictionary/>
+                                </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                    <item>
+                        <key> <string>_keys</string> </key>
+                        <value>
+                          <list>
+                            <string>row_dict_dict_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>row_dict_dict_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_transformation_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 row_dict_dict_list prefix="outer">\n
+DELETE FROM `transformation` WHERE\n
+  <dtml-sqltest expr="outer_item[\'uid\']" column="uid" type="int">\n
+  AND\n
+  <dtml-sqltest expr="outer_item[\'variation_text\']" column="variation_text" type="string">;\n
+<dtml-var sql_delimiter>\n
+<dtml-call "row_list.extend(outer_item[\'row_dict_list\'])">\n
+</dtml-in>\n
+\n
+<dtml-if "len(row_list)>0">\n
+<dtml-var sql_delimiter>\n
+\n
+INSERT INTO `transformation`\n
+VALUES\n
+    <dtml-in row_list prefix="loop">\n
+(\n
+  <dtml-sqlvar expr="loop_item[\'uid\']" type="int">,\n
+  <dtml-sqlvar expr="loop_item[\'variation_text\']" type="string">,\n
+  <dtml-sqlvar expr="loop_item[\'transformed_uid\']" type="int">,\n
+  <dtml-sqlvar expr="loop_item[\'transformed_variation_text\']" type="string">,\n
+  <dtml-sqlvar expr="loop_item[\'quantity\']" type="float">\n
+)\n
+<dtml-unless sequence-end>,</dtml-unless>\n
+    </dtml-in>\n
+</dtml-if>\n
+</dtml-let>
+
+]]></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 row_dict_dict_list prefix="outer">\n
+DELETE FROM `transformation` WHERE\n
+  <dtml-sqltest expr="outer_item[\'uid\']" column="uid" type="int">\n
+  AND\n
+  <dtml-sqltest expr="outer_item[\'variation_text\']" column="variation_text" type="string">;\n
+<dtml-var sql_delimiter>\n
+<dtml-call "row_list.extend(outer_item[\'row_dict_list\'])">\n
+</dtml-in>\n
+\n
+<dtml-if "len(row_list)>0">\n
+<dtml-var sql_delimiter>\n
+\n
+INSERT INTO `transformation`\n
+VALUES\n
+    <dtml-in row_list prefix="loop">\n
+(\n
+  <dtml-sqlvar expr="loop_item[\'uid\']" type="int">,\n
+  <dtml-sqlvar expr="loop_item[\'variation_text\']" type="string">,\n
+  <dtml-sqlvar expr="loop_item[\'transformed_uid\']" type="int">,\n
+  <dtml-sqlvar expr="loop_item[\'transformed_variation_text\']" type="string">,\n
+  <dtml-sqlvar expr="loop_item[\'quantity\']" type="float">\n
+)\n
+<dtml-unless sequence-end>,</dtml-unless>\n
+    </dtml-in>\n
+</dtml-if>\n
+</dtml-let>
+
+]]></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/bt/revision
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/revision?rev=33897&r1=33896&r2=33897&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] Fri Mar 19 08:30:54 2010
@@ -1,1 +1,1 @@
-183
+184

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=33897&r1=33896&r2=33897&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] Fri Mar 19 08:30:54 2010
@@ -48,7 +48,7 @@
 erp5_mysql_innodb/z_catalog_predicate_list
 erp5_mysql_innodb/z_catalog_roles_and_users_list
 erp5_mysql_innodb/z_catalog_stock_list
-erp5_mysql_innodb/z_catalog_transformation
+erp5_mysql_innodb/z_catalog_transformation_list
 erp5_mysql_innodb/z_catalog_translation_list
 erp5_mysql_innodb/z_catalog_versioning_list
 erp5_mysql_innodb/z_clear_reserved




More information about the Erp5-report mailing list