Return the sql and params for the field's database default.
(self, field)
| 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.""" |
no test coverage detected