#35024: Creating model objects crashes on fields with database converters when
RETURNING is not supported.
-------------------------------------+-------------------------------------
               Reporter:  Mariusz    |          Owner:  Mariusz Felisiak
  Felisiak                           |
                   Type:  Bug        |         Status:  assigned
              Component:  Database   |        Version:  5.0
  layer (models, ORM)                |
               Severity:  Release    |       Keywords:
  blocker                            |
           Triage Stage:             |      Has patch:  0
  Unreviewed                         |
    Needs documentation:  0          |    Needs tests:  0
Patch needs improvement:  0          |  Easy pickings:  0
                  UI/UX:  0          |
-------------------------------------+-------------------------------------
 Creating model objects crashes on fields with database converters when
 RETURNING is not supported. For example

 {{{#!python
 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.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/35024>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/0107018c445a094a-cb2de8be-312f-4384-babb-9f7249ad279b-000000%40eu-central-1.amazonses.com.

Reply via email to