Opened 4 months ago

Last modified 4 months ago

#35655 closed Bug

Django crashes with Oracle database Version > 23.3 — at Version 4

Reported by: Suraj Shaw Owned by: Suraj Shaw
Component: Database layer (models, ORM) Version: 5.1
Severity: Release blocker Keywords:
Cc: Suraj Shaw, Csirmaz Bendegúz, Mariusz Felisiak Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by Suraj Shaw)

The recent optimisation in Django for multi-row insert in case of Oracle db version greater than 23+ is crashing with specific db versions. The issue is being reported https://github.com/oracle/python-oracledb/issues/356. The upcoming version 5.1 release have this changes and may cause crashes with database versions greater than 23.3.
Link to the PR which added this optimisation - https://github.com/django/django/pull/17969/

Change History (4)

comment:1 by Suraj Shaw, 4 months ago

Summary: Django crashes with oracle_db_version > 23.3Django crashes with Oracle database Version > 23.3

comment:2 by Suraj Shaw, 4 months ago

The issue is reproducible.

Probable Fixes:

1 -> Switch to earlier version for multi-row insert (using select-union combination) till the issue is being resolved.
2-> Migrate to ExecuteMany() instead of Execute() for multi-row insert. When the number of bind variables are higher ExecuteMany() will be performing much better. So yet another reason for migration.
3-> Migrate from NVARCHAR2 to VARCHAR2 as it also resolves the issue with multi-row insert.

Last edited 4 months ago by Suraj Shaw (previous) (diff)

comment:3 by Suraj Shaw, 4 months ago

Easy pickings: unset

comment:4 by Suraj Shaw, 4 months ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.
Back to Top