From 5424151f96252e1289e9a6f7eb842cd1dc87850a Mon Sep 17 00:00:00 2001 From: Sarah Boyce <42296566+sarahboyce@users.noreply.github.com> Date: Fri, 2 Aug 2024 14:49:36 +0200 Subject: [PATCH] Fixed #35655 -- Reverted "Fixed #35295 -- Used INSERT with multiple rows on Oracle 23c." This reverts commit 175b04942afaff978013db61495f3b39ea12989b due to a crash when Oracle > 23.3. --- django/db/backends/oracle/features.py | 4 ---- django/db/backends/oracle/operations.py | 18 ------------------ 2 files changed, 22 deletions(-) diff --git a/django/db/backends/oracle/features.py b/django/db/backends/oracle/features.py index aa657b3ba459..a83560b89296 100644 --- a/django/db/backends/oracle/features.py +++ b/django/db/backends/oracle/features.py @@ -204,10 +204,6 @@ def supports_comparing_boolean_expr(self): def supports_aggregation_over_interval_types(self): return self.connection.oracle_version >= (23,) - @cached_property - def supports_bulk_insert_with_multiple_rows(self): - return self.connection.oracle_version >= (23,) - @cached_property def bare_select_suffix(self): return "" if self.connection.oracle_version >= (23,) else " FROM DUAL" diff --git a/django/db/backends/oracle/operations.py b/django/db/backends/oracle/operations.py index 507c5fb369cb..86340bbf4ac1 100644 --- a/django/db/backends/oracle/operations.py +++ b/django/db/backends/oracle/operations.py @@ -678,24 +678,6 @@ def bulk_insert_sql(self, fields, placeholder_rows): for field in fields if field ] - if ( - self.connection.features.supports_bulk_insert_with_multiple_rows - # A workaround with UNION of SELECTs is required for models without - # any fields. - and field_placeholders - ): - placeholder_rows_sql = [] - for row in placeholder_rows: - placeholders_row = ( - field_placeholder % placeholder - for field_placeholder, placeholder in zip( - field_placeholders, row, strict=True - ) - ) - placeholder_rows_sql.append(placeholders_row) - return super().bulk_insert_sql(fields, placeholder_rows_sql) - # Oracle < 23c doesn't support inserting multiple rows in a single - # statement, use UNION of SELECTs as a workaround. query = [] for row in placeholder_rows: select = []