(self, compiler, connection, function=None, template=None)
| 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 | |
| 191 | class CombinedSearchVector(SearchVectorCombinable, CombinedExpression): |
nothing calls this directly
no test coverage detected