#35024 closed Bug (fixed)
Creating model objects crashes on fields with database converters when RETURNING is not supported.
| Reported by: | Mariusz Felisiak | Owned by: | Mariusz Felisiak |
|---|---|---|---|
| Component: | Database layer (models, ORM) | Version: | 5.0 |
| Severity: | Release blocker | Keywords: | |
| Cc: | Adam Johnson | Triage Stage: | Accepted |
| Has patch: | yes | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
Creating model objects crashes on fields with database converters when RETURNING is not supported. For example
class GeneratedBooleanFieldModel(Model): value = IntegerField(null=True) has_value = GeneratedField( expression=Q(value__isnull=False), output_field=BooleanField(), db_persist=False, )
crashes with:
File "/home/jenkins/workspace/pull-requests-focal/database/spatialite/label/focal-pr/python/python3.10/django/db/models/query.py", line 1845, in _insert
return query.get_compiler(using=using).execute_sql(returning_fields)
File "/home/jenkins/workspace/pull-requests-focal/database/spatialite/label/focal-pr/python/python3.10/django/db/models/sql/compiler.py", line 1853, in execute_sql
rows = list(self.apply_converters(rows, converters))
File "/home/jenkins/workspace/pull-requests-focal/database/spatialite/label/focal-pr/python/python3.10/django/db/models/sql/compiler.py", line 1500, in apply_converters
value = row[pos]
IndexError: list index out of range
This is a long standing issue, however it caused a crash of GeneratedField for all output fields that have backend-specific converters when RETURNING clause is not supported (MySQL and SQLite < 3.35). We should exacerbate severity to a release blocker.
Regression in d9de74141e8a920940f1b91ed0a3ccb835b55729.
Change History (5)
comment:1 by , 2 years ago
comment:2 by , 2 years ago
| Has patch: | set |
|---|
comment:3 by , 2 years ago
| Triage Stage: | Unreviewed → Accepted |
|---|
Note:
See TracTickets
for help on using tickets.
PR