web/lib/django/db/models/sql/expressions.py
changeset 29 cc9b7e14412b
parent 0 0d40e90630ef
--- a/web/lib/django/db/models/sql/expressions.py	Wed May 19 17:43:59 2010 +0200
+++ b/web/lib/django/db/models/sql/expressions.py	Tue May 25 02:43:45 2010 +0200
@@ -1,5 +1,4 @@
 from django.core.exceptions import FieldError
-from django.db import connection
 from django.db.models.fields import FieldDoesNotExist
 from django.db.models.sql.constants import LOOKUP_SEP
 
@@ -12,8 +11,11 @@
         self.contains_aggregate = False
         self.expression.prepare(self, query, allow_joins)
 
-    def as_sql(self, qn=None):
-        return self.expression.evaluate(self, qn)
+    def prepare(self):
+        return self
+
+    def as_sql(self, qn, connection):
+        return self.expression.evaluate(self, qn, connection)
 
     def relabel_aliases(self, change_map):
         for node, col in self.cols.items():
@@ -54,15 +56,12 @@
     # Vistor methods for final expression evaluation #
     ##################################################
 
-    def evaluate_node(self, node, qn):
-        if not qn:
-            qn = connection.ops.quote_name
-
+    def evaluate_node(self, node, qn, connection):
         expressions = []
         expression_params = []
         for child in node.children:
             if hasattr(child, 'evaluate'):
-                sql, params = child.evaluate(self, qn)
+                sql, params = child.evaluate(self, qn, connection)
             else:
                 sql, params = '%s', (child,)
 
@@ -77,12 +76,9 @@
 
         return connection.ops.combine_expression(node.connector, expressions), expression_params
 
-    def evaluate_leaf(self, node, qn):
-        if not qn:
-            qn = connection.ops.quote_name
-
+    def evaluate_leaf(self, node, qn, connection):
         col = self.cols[node]
         if hasattr(col, 'as_sql'):
-            return col.as_sql(qn), ()
+            return col.as_sql(qn, connection), ()
         else:
             return '%s.%s' % (qn(col[0]), qn(col[1])), ()