limit_columns.map { |s| "octet_length(#{s})" }.join(" + "))
new_limit = 0
read_total = 0
- limit_query.find_each do |record|
+ limit_query.each do |record|
new_limit += 1
read_total += record.read_length.to_i
- break if ((read_total >= Rails.configuration.max_index_database_read) or
- (new_limit >= @limit))
+ if read_total >= Rails.configuration.max_index_database_read
+ new_limit -= 1 if new_limit > 1
+ break
+ elsif new_limit >= @limit
+ break
+ end
end
@limit = new_limit
@objects = @objects.limit(@limit)
return @attrs if @attrs
@attrs = params[resource_name]
if @attrs.is_a? String
- @attrs = Oj.load @attrs, symbol_keys: true
+ @attrs = Oj.strict_load @attrs, symbol_keys: true
end
unless @attrs.is_a? Hash
message = "No #{resource_name}"
def load_json_value(hash, key, must_be_class=nil)
if hash[key].is_a? String
- hash[key] = Oj.load(hash[key], symbol_keys: false)
+ hash[key] = Oj.strict_load(hash[key], symbol_keys: false)
if must_be_class and !hash[key].is_a? must_be_class
raise TypeError.new("parameter #{key.to_s} must be a #{must_be_class.to_s}")
end