~ubuntu-branches/ubuntu/quantal/python-django/quantal-security

« back to all changes in this revision

Viewing changes to django/db/models/sql/expressions.py

  • Committer: Bazaar Package Importer
  • Author(s): Chris Lamb
  • Date: 2010-05-21 07:52:55 UTC
  • mfrom: (1.3.6 upstream)
  • mto: This revision was merged to the branch mainline in revision 28.
  • Revision ID: james.westby@ubuntu.com-20100521075255-ii78v1dyfmyu3uzx
Tags: upstream-1.2
ImportĀ upstreamĀ versionĀ 1.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
from django.core.exceptions import FieldError
2
 
from django.db import connection
3
2
from django.db.models.fields import FieldDoesNotExist
4
3
from django.db.models.sql.constants import LOOKUP_SEP
5
4
 
12
11
        self.contains_aggregate = False
13
12
        self.expression.prepare(self, query, allow_joins)
14
13
 
15
 
    def as_sql(self, qn=None):
16
 
        return self.expression.evaluate(self, qn)
 
14
    def prepare(self):
 
15
        return self
 
16
 
 
17
    def as_sql(self, qn, connection):
 
18
        return self.expression.evaluate(self, qn, connection)
17
19
 
18
20
    def relabel_aliases(self, change_map):
19
21
        for node, col in self.cols.items():
54
56
    # Vistor methods for final expression evaluation #
55
57
    ##################################################
56
58
 
57
 
    def evaluate_node(self, node, qn):
58
 
        if not qn:
59
 
            qn = connection.ops.quote_name
60
 
 
 
59
    def evaluate_node(self, node, qn, connection):
61
60
        expressions = []
62
61
        expression_params = []
63
62
        for child in node.children:
64
63
            if hasattr(child, 'evaluate'):
65
 
                sql, params = child.evaluate(self, qn)
 
64
                sql, params = child.evaluate(self, qn, connection)
66
65
            else:
67
66
                sql, params = '%s', (child,)
68
67
 
77
76
 
78
77
        return connection.ops.combine_expression(node.connector, expressions), expression_params
79
78
 
80
 
    def evaluate_leaf(self, node, qn):
81
 
        if not qn:
82
 
            qn = connection.ops.quote_name
83
 
 
 
79
    def evaluate_leaf(self, node, qn, connection):
84
80
        col = self.cols[node]
85
81
        if hasattr(col, 'as_sql'):
86
 
            return col.as_sql(qn), ()
 
82
            return col.as_sql(qn, connection), ()
87
83
        else:
88
84
            return '%s.%s' % (qn(col[0]), qn(col[1])), ()