bulk_dependency_eraser 4.2.1 → 4.2.3

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: f1ee041fa51d9506fdabf317bd2b72fab8be589073d5fa8c8940c6e5654a6bf6
4
- data.tar.gz: 8d68033f0554c47a1818ce8e5f96ed047598c6dd3e302151e53589e3475ebdf8
3
+ metadata.gz: 5409fc52fbc918546360e196bd06c0be4837f0aa848af8a99aeed4015219f0e7
4
+ data.tar.gz: d3818d4f8c8e2a3be0c81c5e3b37bc0295d2e7ca077c08a45e7ae143975f2f3e
5
5
  SHA512:
6
- metadata.gz: feae06d17b683a2a19518eca228fa04374265946cf308f45bd95c0e507fcf2a14cb74a79b45a03d03d7d5ad029769f85a68585234cb31c9ca2e45a38be6a80c7
7
- data.tar.gz: 928c7bcc857f6ea3bc97165a93d11d7aaf74b15a90c5219e4bfb38137a22d27edf1edcacdc638b3d0bd39d14c91dfd92957663b2e3bb3cb9e473f997817d4080
6
+ metadata.gz: 14d334bd9f2baf4008a653c8f19b0544bc32e02e36dea965f6fa08ad3f317ca4e3bff5eb2417aeb70549a54d109341884d87c9af7591c2a258b018d6444d993d
7
+ data.tar.gz: 1f84b22cd3cfadf48d5450225c4cc3cbd4e3302acf15cd6c357904538b7427631a5d735621b3ecf4e574a31184525d9601630c9fd8c939d9e7f10fea6060e573
@@ -192,12 +192,16 @@ module BulkDependencyEraser
192
192
  # If the query has a limit, then we don't want to clobber with batching.
193
193
  if batching_disabled? || !query.where({}).limit_value.nil?
194
194
  # query without batching
195
- query_results = query.pluck(*columns)
195
+ # query_results = query.pluck(*columns)
196
+ query_results = query.pluck(*columns.collect{ |c| "#{query.klass.table_name}.#{c}"})
196
197
  elsif opts_c.disable_batch_ordering || opts_c.disable_batch_ordering_for_klasses.include?(current_klass_name)
197
198
  # query with orderless batching
198
199
  offset = 0
199
200
  loop do
200
- new_query_results = query.offset(offset).limit(batch_size).pluck(*columns)
201
+ # This use-case didn't work. Rails converts the query filter to a left_outer_join, and can't then pull the CTID column in some use-cases
202
+ # new_query_results = query.offset(offset).limit(batch_size).pluck(*columns)
203
+ # This implementation does work. Prevents rails ORM from converting to a join
204
+ new_query_results = query.offset(offset).limit(batch_size).pluck(*columns.collect{ |c| "#{query.klass.table_name}.#{c}"})
201
205
  query_results += new_query_results
202
206
 
203
207
  break if new_query_results.size < batch_size
@@ -208,7 +212,8 @@ module BulkDependencyEraser
208
212
  else
209
213
  # query with ordered batching
210
214
  query.in_batches(of: batch_size) do |subset_query|
211
- query_results += subset_query.pluck(*columns)
215
+ # query_results += subset_query.pluck(*columns)
216
+ query_results += subset_query.pluck(*columns.collect{ |c| "#{query.klass.table_name}.#{c}"})
212
217
  end
213
218
  end
214
219
  end
@@ -232,7 +237,8 @@ module BulkDependencyEraser
232
237
  query_primary_keys.each_with_index do |primary_key, plucked_index|
233
238
  query_additional_identifiers[primary_key] ||= {}
234
239
  results_per_additional_column.each do |column, column_results|
235
- query_additional_identifiers[primary_key][column] = column_results[plucked_index]
240
+ # stringify the column key. All keys in the additional_identifiers are strings; The unification is nice and also JSONable.
241
+ query_additional_identifiers[primary_key][column.to_s] = column_results[plucked_index]
236
242
  end
237
243
  end
238
244
 
@@ -1,3 +1,3 @@
1
1
  module BulkDependencyEraser
2
- VERSION = "4.2.1".freeze
2
+ VERSION = "4.2.3".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.1
4
+ version: 4.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - benjamin.dana.software.dev@gmail.com