django-bulk-hooks 0.2.42__tar.gz → 0.2.43__tar.gz

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.

Files changed (26) hide show
  1. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/PKG-INFO +1 -1
  2. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/django_bulk_hooks/operations/mti_handler.py +11 -5
  3. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/pyproject.toml +1 -1
  4. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/LICENSE +0 -0
  5. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/README.md +0 -0
  6. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/django_bulk_hooks/__init__.py +0 -0
  7. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/django_bulk_hooks/changeset.py +0 -0
  8. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/django_bulk_hooks/conditions.py +0 -0
  9. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/django_bulk_hooks/constants.py +0 -0
  10. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/django_bulk_hooks/context.py +0 -0
  11. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/django_bulk_hooks/decorators.py +0 -0
  12. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/django_bulk_hooks/dispatcher.py +0 -0
  13. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/django_bulk_hooks/enums.py +0 -0
  14. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/django_bulk_hooks/factory.py +0 -0
  15. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/django_bulk_hooks/handler.py +0 -0
  16. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/django_bulk_hooks/helpers.py +0 -0
  17. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/django_bulk_hooks/manager.py +0 -0
  18. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/django_bulk_hooks/models.py +0 -0
  19. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/django_bulk_hooks/operations/__init__.py +0 -0
  20. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/django_bulk_hooks/operations/analyzer.py +0 -0
  21. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/django_bulk_hooks/operations/bulk_executor.py +0 -0
  22. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/django_bulk_hooks/operations/coordinator.py +0 -0
  23. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/django_bulk_hooks/operations/mti_plans.py +0 -0
  24. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/django_bulk_hooks/operations/record_classifier.py +0 -0
  25. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/django_bulk_hooks/queryset.py +0 -0
  26. {django_bulk_hooks-0.2.42 → django_bulk_hooks-0.2.43}/django_bulk_hooks/registry.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: django-bulk-hooks
3
- Version: 0.2.42
3
+ Version: 0.2.43
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
@@ -259,11 +259,17 @@ class MTIHandler:
259
259
  uf for uf in (update_fields or []) if uf in model_fields_by_name
260
260
  ]
261
261
 
262
- # Enable upsert even if no fields to update at this level
263
- # This prevents unique constraint violations on parent tables
264
- level_update_conflicts = True
265
- level_unique_fields = normalized_unique
266
- level_update_fields = filtered_updates # Can be empty list
262
+ # If no fields to update at this level but we need upsert to prevent
263
+ # unique constraint violations, use one of the unique fields as a dummy
264
+ # update field (updating it to itself is a safe no-op)
265
+ if not filtered_updates and normalized_unique:
266
+ filtered_updates = [normalized_unique[0]]
267
+
268
+ # Only enable upsert if we have fields to update (real or dummy)
269
+ if filtered_updates:
270
+ level_update_conflicts = True
271
+ level_unique_fields = normalized_unique
272
+ level_update_fields = filtered_updates
267
273
 
268
274
  # Create parent level
269
275
  parent_level = ParentLevel(
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "django-bulk-hooks"
3
- version = "0.2.42"
3
+ version = "0.2.43"
4
4
  description = "Hook-style hooks for Django bulk operations like bulk_create and bulk_update."
5
5
  authors = ["Konrad Beck <konrad.beck@merchantcapital.co.za>"]
6
6
  readme = "README.md"