django-bulk-hooks 0.2.39__py3-none-any.whl → 0.2.40__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of django-bulk-hooks might be problematic. Click here for more details.

@@ -7,7 +7,8 @@ This service coordinates bulk database operations with validation and MTI handli
7
7
  import logging
8
8
 
9
9
  from django.db import transaction
10
- from django.db.models import AutoField, ForeignKey
10
+ from django.db.models import AutoField, ForeignKey, Case, When, Value
11
+ from django.db.models.functions import Cast
11
12
 
12
13
  logger = logging.getLogger(__name__)
13
14
 
@@ -487,16 +488,16 @@ class BulkExecutor:
487
488
 
488
489
  # Handle NULL values specially for ForeignKey fields
489
490
  if is_fk and value is None:
490
- # For ForeignKey fields with None values, use Value(None) with proper output_field
491
- # This ensures the SQL generates proper NULL with correct type casting
491
+ # For ForeignKey fields with None values, use Cast to ensure proper NULL type
492
+ # PostgreSQL needs explicit type casting for NULL values in CASE statements
492
493
  logger.info(
493
494
  f"DEBUG NULL FIX APPLIED - Field: {field_name}, "
494
- f"PK: {pk}, Using Value(None) with output_field: {type(case_output_field).__name__}"
495
+ f"PK: {pk}, Using Cast(Value(None), output_field={type(case_output_field).__name__})"
495
496
  )
496
497
  when_statements.append(
497
498
  When(
498
499
  **{field_group.filter_field: pk},
499
- then=Value(None, output_field=case_output_field),
500
+ then=Cast(Value(None), output_field=case_output_field),
500
501
  ),
501
502
  )
502
503
  else:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: django-bulk-hooks
3
- Version: 0.2.39
3
+ Version: 0.2.40
4
4
  Summary: Hook-style hooks for Django bulk operations like bulk_create and bulk_update.
5
5
  License: MIT
6
6
  Keywords: django,bulk,hooks
@@ -13,14 +13,14 @@ django_bulk_hooks/manager.py,sha256=3mFzB0ZzHHeXWdKGObZD_H0NlskHJc8uYBF69KKdAXU,
13
13
  django_bulk_hooks/models.py,sha256=4Vvi2LiGP0g4j08a5liqBROfsO8Wd_ermBoyjKwfrPU,2512
14
14
  django_bulk_hooks/operations/__init__.py,sha256=BtJYjmRhe_sScivLsniDaZmBkm0ZLvcmzXFKL7QY2Xg,550
15
15
  django_bulk_hooks/operations/analyzer.py,sha256=8xNdsoeOCHsIIP7ztIuFHDewBR2dDSS6auOrSU8zmqE,9007
16
- django_bulk_hooks/operations/bulk_executor.py,sha256=74uOhw0DtJntwZdNA8gNV8_Zqo1hh7fLnv5920FqSHc,25780
16
+ django_bulk_hooks/operations/bulk_executor.py,sha256=gvIIssYJMNk4advEZySI3Q204vwHq2P8v8nGV8Y05_0,25851
17
17
  django_bulk_hooks/operations/coordinator.py,sha256=iSi-x3fq6_3UygWGeQY8Fq_gZWIqq_8N7WddPhVeygk,23526
18
18
  django_bulk_hooks/operations/mti_handler.py,sha256=G-pxkzIqHqXGshRGksqmsN1J3rlzePUZrSv4wm7D3cQ,19162
19
19
  django_bulk_hooks/operations/mti_plans.py,sha256=YP7LcV9Z8UqNS_x74OswF9_5swqruRTdAu6z-J_R6C0,3377
20
20
  django_bulk_hooks/operations/record_classifier.py,sha256=KzUoAhfoqzFVrOabNZAby9Akb54h-fAQZmb8O-fIx_0,6221
21
21
  django_bulk_hooks/queryset.py,sha256=rvJgQLwtSJztwc68nkJ6xwCsnbXQvkvS6_dbGGj8TFo,5886
22
22
  django_bulk_hooks/registry.py,sha256=QyeA2OqNdMAMaLjFU9UF0YGhKiPKbZkmFQpLgof7uNs,9038
23
- django_bulk_hooks-0.2.39.dist-info/LICENSE,sha256=dguKIcbDGeZD-vXWdLyErPUALYOvtX_fO4Zjhq481uk,1088
24
- django_bulk_hooks-0.2.39.dist-info/METADATA,sha256=BaDqcn9vA5gCqO6JO1Z0eqJr-lukpdbhOsyPGw-zITE,9265
25
- django_bulk_hooks-0.2.39.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
26
- django_bulk_hooks-0.2.39.dist-info/RECORD,,
23
+ django_bulk_hooks-0.2.40.dist-info/LICENSE,sha256=dguKIcbDGeZD-vXWdLyErPUALYOvtX_fO4Zjhq481uk,1088
24
+ django_bulk_hooks-0.2.40.dist-info/METADATA,sha256=zU71BFDY6FukdTMSbdDeTl1fqTXkyLl_HyFgoZlbHtQ,9265
25
+ django_bulk_hooks-0.2.40.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
26
+ django_bulk_hooks-0.2.40.dist-info/RECORD,,