bulk_dependency_eraser 4.2.3 → 4.3.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5409fc52fbc918546360e196bd06c0be4837f0aa848af8a99aeed4015219f0e7
4
- data.tar.gz: d3818d4f8c8e2a3be0c81c5e3b37bc0295d2e7ca077c08a45e7ae143975f2f3e
3
+ metadata.gz: 6cc809556aa24a68e132b8b18c5107452d98a7659594c8ae60807d4a41192941
4
+ data.tar.gz: e21b344baed301a3b8732d9b8b6d517fa38353de1169eb3842f752d1aec31be9
5
5
  SHA512:
6
- metadata.gz: 14d334bd9f2baf4008a653c8f19b0544bc32e02e36dea965f6fa08ad3f317ca4e3bff5eb2417aeb70549a54d109341884d87c9af7591c2a258b018d6444d993d
7
- data.tar.gz: 1f84b22cd3cfadf48d5450225c4cc3cbd4e3302acf15cd6c357904538b7427631a5d735621b3ecf4e574a31184525d9601630c9fd8c939d9e7f10fea6060e573
6
+ metadata.gz: 3715bf4c61448253a260e6b968c68bd4f27350f2fe960787c58c60023cade1a62af66ad611c1bf50d7c9c261c9d5f847d9fe28ebb3f31975a4dbe0122de5e56e
7
+ data.tar.gz: 38dc0a80a042241fbb5964f8da4c0228e4f978cbaba9ebb328b6bd25d78133519c5573b453120cabbc899f8e8b1a041511579e9c5f946a5b65b49a2350761e92
@@ -54,6 +54,7 @@ module BulkDependencyEraser
54
54
  # Applied to deletion queries
55
55
  # - 1st priority of scopes
56
56
  deletion_proc_scopes_per_class_name: {},
57
+ use_ctid_over_primary_key: false,
57
58
  }.freeze
58
59
 
59
60
  def initialize class_names_and_ids: {}, additional_identifiers_by_id: {}, opts: {}
@@ -140,7 +141,13 @@ module BulkDependencyEraser
140
141
  # Get column-names/keys of any additional identifer columns
141
142
  detected_additional_identifier_columns = additional_identifiers&.values&.flat_map(&:keys)&.uniq || []
142
143
  delete_in_db do
143
- deletion_query = query.where(id: ids)
144
+ deletion_query = query
145
+ if opts_c.use_ctid_over_primary_key && detected_additional_identifier_columns.include?('ctid')
146
+ # Do nothing, query will be deleted via ctid
147
+ else
148
+ deletion_query = deletion_query.where(id: ids)
149
+ end
150
+
144
151
  # Apply any additional query identifiers (i.e. :ctid column)
145
152
  detected_additional_identifier_columns.each do |column|
146
153
  deletion_query = deletion_query.where(column => additional_identifiers.values.pluck(column))
@@ -160,7 +167,13 @@ module BulkDependencyEraser
160
167
  # Get column-names/keys of any additional identifer columns
161
168
  detected_additional_identifier_columns = additional_identifiers_subset&.values&.flat_map(&:keys)&.uniq || []
162
169
  delete_in_db do
163
- deletion_query = query.where(id: ids_subset)
170
+ deletion_query = query
171
+ if opts_c.use_ctid_over_primary_key && detected_additional_identifier_columns.include?('ctid')
172
+ # Do nothing, query will be deleted via ctid
173
+ else
174
+ deletion_query = deletion_query.where(id: ids_subset)
175
+ end
176
+
164
177
  # Apply any additional query identifiers (i.e. :ctid column)
165
178
  detected_additional_identifier_columns.each do |column|
166
179
  deletion_query = deletion_query.where(column => additional_identifiers_subset.values.pluck(column))
@@ -1,3 +1,3 @@
1
1
  module BulkDependencyEraser
2
- VERSION = "4.2.3".freeze
2
+ VERSION = "4.3.0".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bulk_dependency_eraser
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.3
4
+ version: 4.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - benjamin.dana.software.dev@gmail.com