Sha256: 5aae61effb3477029facfe3c987e47bf22df586dcaa2b37f553fe695ec64a6f8

Contents?: true

Size: 735 Bytes

Versions: 12

Compression:

Stored size: 735 Bytes

Contents

module ActiveRecord::Turntable
  class Mixer
    class Fader
      class CalculateShardsSumResult < Fader
        def execute
          results = @shards_query_hash.map do |shard, query|
            args = @args.dup
            args[1] = args[1].dup if args[1].present?
            shard.connection.send(@called_method, query, *@args, &@block)
          end
          merge_results(results)
        end

        private

          def merge_results(results)
            ActiveRecord::Result.new(
              results.first.columns,
              results[0].rows.zip(*results[1..-1].map(&:rows)).map { |r| [r.map(&:first).inject(&:+)] },
              results.first.column_types
            )
          end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
activerecord-turntable-4.4.1 lib/active_record/turntable/mixer/fader/calculate_shards_sum_result.rb
activerecord-turntable-4.4.0 lib/active_record/turntable/mixer/fader/calculate_shards_sum_result.rb
activerecord-turntable-4.3.0 lib/active_record/turntable/mixer/fader/calculate_shards_sum_result.rb
activerecord-turntable-4.2.0 lib/active_record/turntable/mixer/fader/calculate_shards_sum_result.rb
activerecord-turntable-4.1.0 lib/active_record/turntable/mixer/fader/calculate_shards_sum_result.rb
activerecord-turntable-4.0.0 lib/active_record/turntable/mixer/fader/calculate_shards_sum_result.rb
activerecord-turntable-3.1.0 lib/active_record/turntable/mixer/fader/calculate_shards_sum_result.rb
activerecord-turntable-3.0.1 lib/active_record/turntable/mixer/fader/calculate_shards_sum_result.rb
activerecord-turntable-3.0.0 lib/active_record/turntable/mixer/fader/calculate_shards_sum_result.rb
activerecord-turntable-3.0.0.alpha3 lib/active_record/turntable/mixer/fader/calculate_shards_sum_result.rb
activerecord-turntable-3.0.0.alpha2 lib/active_record/turntable/mixer/fader/calculate_shards_sum_result.rb
activerecord-turntable-3.0.0.alpha1 lib/active_record/turntable/mixer/fader/calculate_shards_sum_result.rb