MCPcopy
hub / github.com/django/django / create_sql

Method create_sql

django/db/models/indexes.py:186–224  ·  view source on GitHub ↗
(self, model, schema_editor, using="", **kwargs)

Source from the content-addressed store, hash-verified

184 return sql % tuple(schema_editor.quote_value(p) for p in params)
185
186 def create_sql(self, model, schema_editor, using="", **kwargs):
187 include = [
188 model._meta.get_field(field_name).column for field_name in self.include
189 ]
190 condition = self._get_condition_sql(model, schema_editor)
191 if self.expressions:
192 index_expressions = []
193 for expression in self.expressions:
194 index_expression = IndexExpression(expression)
195 index_expression.set_wrapper_classes(schema_editor.connection)
196 index_expressions.append(index_expression)
197 expressions = ExpressionList(*index_expressions).resolve_expression(
198 Query(model, alias_cols=False),
199 )
200 fields = None
201 col_suffixes = None
202 else:
203 fields = [
204 model._meta.get_field(field_name)
205 for field_name, _ in self.fields_orders
206 ]
207 if schema_editor.connection.features.supports_index_column_ordering:
208 col_suffixes = [order[1] for order in self.fields_orders]
209 else:
210 col_suffixes = [""] * len(self.fields_orders)
211 expressions = None
212 return schema_editor._create_index_sql(
213 model,
214 fields=fields,
215 name=self.name,
216 using=using,
217 db_tablespace=self.db_tablespace,
218 col_suffixes=col_suffixes,
219 opclasses=self.opclasses,
220 condition=condition,
221 include=include,
222 expressions=expressions,
223 **kwargs,
224 )
225
226 def remove_sql(self, model, schema_editor, **kwargs):
227 return schema_editor._delete_index_sql(model, self.name, **kwargs)

Calls 9

_get_condition_sqlMethod · 0.95
set_wrapper_classesMethod · 0.95
ExpressionListClass · 0.90
QueryClass · 0.90
IndexExpressionClass · 0.85
get_fieldMethod · 0.45
appendMethod · 0.45
resolve_expressionMethod · 0.45
_create_index_sqlMethod · 0.45