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 +4 -4
- data/lib/bulk_dependency_eraser/deleter.rb +15 -2
- data/lib/bulk_dependency_eraser/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6cc809556aa24a68e132b8b18c5107452d98a7659594c8ae60807d4a41192941
|
4
|
+
data.tar.gz: e21b344baed301a3b8732d9b8b6d517fa38353de1169eb3842f752d1aec31be9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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
|
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))
|