#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 , 13 months ago
comment:2 by , 13 months ago
Has patch: | set |
---|
comment:3 by , 13 months ago
Triage Stage: | Unreviewed → Accepted |
---|
Note:
See TracTickets
for help on using tickets.
PR