[Erp5-report] r30033 - in /erp5/trunk/products/ZSQLCatalog: ./ interfaces/

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Oct 27 15:14:04 CET 2009


Author: vincent
Date: Tue Oct 27 15:13:59 2009
New Revision: 30033

URL: http://svn.erp5.org?rev=30033&view=rev
Log:
Split buildSQLQuery into 2 parts: one responsible for building the EntireQuery (and responsible for parameter backward compatibility), and a second to just render that EntireQuery as a dict. This will help testing EntireQuery.
Update interface accordingly.

Modified:
    erp5/trunk/products/ZSQLCatalog/SQLCatalog.py
    erp5/trunk/products/ZSQLCatalog/interfaces/query_catalog.py

Modified: erp5/trunk/products/ZSQLCatalog/SQLCatalog.py
URL: http://svn.erp5.org/erp5/trunk/products/ZSQLCatalog/SQLCatalog.py?rev=30033&r1=30032&r2=30033&view=diff
==============================================================================
--- erp5/trunk/products/ZSQLCatalog/SQLCatalog.py [utf8] (original)
+++ erp5/trunk/products/ZSQLCatalog/SQLCatalog.py [utf8] Tue Oct 27 15:13:59 2009
@@ -2119,10 +2119,8 @@
     return order_by_list
 
   @profiler_decorator
-  def buildSQLQuery(self, query_table='catalog', REQUEST=None,
-                          ignore_empty_string=1, only_group_columns=False,
-                          limit=None, extra_column_list=(),
-                          **kw):
+  def buildEntireQuery(self, kw, query_table='catalog', ignore_empty_string=1,
+                       limit=None, extra_column_list=()):
     group_by_list = kw.pop('group_by_list', kw.pop('group_by', kw.pop('group_by_expression', ())))
     if isinstance(group_by_list, basestring):
       group_by_list = [x.strip() for x in group_by_list.split(',')]
@@ -2172,7 +2170,7 @@
     # compatiblity, but I'm not sure if there can be a serious use for it in
     # new API.
     order_by_override_list = kw.pop('select_expression_key', ())
-    query = EntireQuery(
+    return EntireQuery(
       query=self.buildQuery(kw, ignore_empty_string=ignore_empty_string),
       order_by_list=order_by_list,
       order_by_override_list=order_by_override_list,
@@ -2182,6 +2180,15 @@
       catalog_table_name=query_table,
       extra_column_list=extra_column_list,
       from_expression=from_expression)
+
+  @profiler_decorator
+  def buildSQLQuery(self, query_table='catalog', REQUEST=None,
+                          ignore_empty_string=1, only_group_columns=False,
+                          limit=None, extra_column_list=(),
+                          **kw):
+    query = self.buildEntireQuery(kw, query_table=query_table,
+      ignore_empty_string=ignore_empty_string, limit=limit,
+      extra_column_list=extra_column_list)
     result = query.asSQLExpression(self, only_group_columns).asSQLExpressionDict()
     return result
 

Modified: erp5/trunk/products/ZSQLCatalog/interfaces/query_catalog.py
URL: http://svn.erp5.org/erp5/trunk/products/ZSQLCatalog/interfaces/query_catalog.py?rev=30033&r1=30032&r2=30033&view=diff
==============================================================================
--- erp5/trunk/products/ZSQLCatalog/interfaces/query_catalog.py [utf8] (original)
+++ erp5/trunk/products/ZSQLCatalog/interfaces/query_catalog.py [utf8] Tue Oct 27 15:13:59 2009
@@ -63,10 +63,9 @@
         It must be a valid ComplexQuery logical operator ('and', 'or').
     """
 
-  def buildSQLQuery(query_table='catalog', REQUEST=None,
-                    ignore_empty_string=1, only_group_columns=False,
-                    limit=None, extra_column_list=None,
-                    **kw):
+  def buildEntireQuery(kw, query_table='catalog', REQUEST=None,
+                       ignore_empty_string=1, limit=None,
+                       extra_column_list=None)
     """
       Construct and return an instance of EntireQuery class from given
       parameters by calling buildQuery.
@@ -137,9 +136,24 @@
         This prevents given column from being ignored even if they could not
         be mapped.
         There is no replacement.
+    """
+
+
+  def buildSQLQuery(query_table='catalog', REQUEST=None,
+                    ignore_empty_string=1, only_group_columns=False,
+                    limit=None, extra_column_list=None,
+                    **kw):
+    """
+      Return an SQLExpression-generated dictionary (see
+      SQLExpression.asSQLExpressionDict). That SQLExpression is generated by
+      an EntireQuery, itself generated by buildEntireQuery from given
+      parameters.
+
       only_group_columns
         Replaces former stat__ parameter.
         Used to globally disalow use of non-group columns in SQL.
+
+      For other parameters, see buildEntireQuery.
     """
 
   def getSearchKey(column, search_key=None):




More information about the Erp5-report mailing list