MCPcopy
hub / github.com/django/django / as_sql

Method as_sql

django/contrib/postgres/search.py:153–188  ·  view source on GitHub ↗
(self, compiler, connection, function=None, template=None)

Source from the content-addressed store, hash-verified

151 return resolved
152
153 def as_sql(self, compiler, connection, function=None, template=None):
154 clone = self.copy()
155 clone.set_source_expressions(
156 [
157 Coalesce(
158 (
159 expression
160 if isinstance(expression.output_field, (CharField, TextField))
161 else Cast(expression, TextField())
162 ),
163 Value(""),
164 )
165 for expression in clone.get_source_expressions()
166 ]
167 )
168 config_sql = None
169 config_params = []
170 if template is None:
171 if clone.config:
172 config_sql, config_params = compiler.compile(clone.config)
173 template = "%(function)s(%(config)s, %(expressions)s)"
174 else:
175 template = clone.template
176 sql, params = super(SearchVector, clone).as_sql(
177 compiler,
178 connection,
179 function=function,
180 template=template,
181 config=config_sql,
182 )
183 extra_params = []
184 if clone.weight:
185 weight_sql, extra_params = compiler.compile(clone.weight)
186 sql = "setweight({}, {})".format(sql, weight_sql)
187
188 return sql, (*config_params, *params, *extra_params)
189
190
191class CombinedSearchVector(SearchVectorCombinable, CombinedExpression):

Callers

nothing calls this directly

Calls 10

CoalesceClass · 0.90
CastClass · 0.90
TextFieldClass · 0.90
ValueClass · 0.90
copyMethod · 0.45
compileMethod · 0.45
as_sqlMethod · 0.45
formatMethod · 0.45

Tested by

no test coverage detected