module ActiveRecord::ConnectionAdapters::SQLServer::CoreExt::Calculations
Public Instance Methods
calculate(operation, column_name)
click to toggle source
Same as original except we don't perform PostgreSQL hack that removes ordering.
# File lib/active_record/connection_adapters/sqlserver/core_ext/calculations.rb, line 11 def calculate(operation, column_name) if has_include?(column_name) relation = apply_join_dependency if operation.to_s.downcase == "count" unless distinct_value || distinct_select?(column_name || select_for_count) relation.distinct! relation.select_values = [ klass.primary_key || table[Arel.star] ] end end relation.calculate(operation, column_name) else perform_calculation(operation, column_name) end end
Private Instance Methods
build_count_subquery(relation, column_name, distinct)
click to toggle source
Calls superclass method
# File lib/active_record/connection_adapters/sqlserver/core_ext/calculations.rb, line 30 def build_count_subquery(relation, column_name, distinct) super(relation.unscope(:order), column_name, distinct) end
type_cast_calculated_value(value, type, operation = nil)
click to toggle source
# File lib/active_record/connection_adapters/sqlserver/core_ext/calculations.rb, line 34 def type_cast_calculated_value(value, type, operation = nil) case operation when "count" then value.to_i when "sum" then type.deserialize(value || 0) when "average" then value&.respond_to?(:to_d) ? value.to_d : value else type.deserialize(value) end end