MCPcopy
hub / github.com/django/django / db_default_sql

Method db_default_sql

django/db/backends/base/schema.py:439–456  ·  view source on GitHub ↗

Return the sql and params for the field's database default.

(self, field)

Source from the content-addressed store, hash-verified

437 return "%s"
438
439 def db_default_sql(self, field):
440 """Return the sql and params for the field's database default."""
441 from django.db.models.expressions import Value
442
443 db_default = field._db_default_expression
444 sql = (
445 self._column_default_sql(field) if isinstance(db_default, Value) else "(%s)"
446 )
447 query = Query(model=field.model)
448 compiler = query.get_compiler(connection=self.connection)
449 default_sql, params = compiler.compile(db_default)
450 if self.connection.features.requires_literal_defaults:
451 # Some databases don't support parameterized defaults (Oracle,
452 # SQLite). If this is the case, the individual schema backend
453 # should implement prepare_default().
454 default_sql %= tuple(self.prepare_default(p) for p in params)
455 params = []
456 return sql % default_sql, params
457
458 def _column_generated_persistency_sql(self, field):
459 """Return the SQL to define the persistency of generated fields."""

Callers 6

_iter_column_sqlMethod · 0.95
_alter_fieldMethod · 0.95
_remake_tableMethod · 0.80
_set_field_new_typeMethod · 0.80

Calls 5

_column_default_sqlMethod · 0.95
get_compilerMethod · 0.95
prepare_defaultMethod · 0.95
QueryClass · 0.90
compileMethod · 0.45

Tested by

no test coverage detected