Merge pull request #41410 from eileencodes/define-empty-result
Add ActiveRecord::Result.empty
This commit is contained in:
commit
bddb2c9b19
@ -65,7 +65,7 @@ def select_all(arel, name = nil, binds = [], preparable: nil, async: false)
|
||||
|
||||
select(sql, name, binds, prepare: prepared_statements && preparable, async: async && FutureResult::SelectAll)
|
||||
rescue ::RangeError
|
||||
ActiveRecord::Result.new([], [])
|
||||
ActiveRecord::Result.empty
|
||||
end
|
||||
|
||||
# Returns a record hash with the column names as keys and column values
|
||||
|
@ -90,7 +90,7 @@ class SelectAll < FutureResult # :nodoc:
|
||||
def exec_query(*, **)
|
||||
super
|
||||
rescue ::RangeError
|
||||
ActiveRecord::Result.new([], [])
|
||||
ActiveRecord::Result.empty
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -195,7 +195,7 @@ def pluck(*column_names)
|
||||
relation.select_values = columns
|
||||
result = skip_query_cache_if_necessary do
|
||||
if where_clause.contradiction?
|
||||
ActiveRecord::Result.new([], [])
|
||||
ActiveRecord::Result.empty
|
||||
else
|
||||
klass.connection.select_all(relation.arel, "#{klass.name} Pluck")
|
||||
end
|
||||
|
@ -36,6 +36,10 @@ class Result
|
||||
|
||||
attr_reader :columns, :rows, :column_types
|
||||
|
||||
def self.empty # :nodoc:
|
||||
EMPTY
|
||||
end
|
||||
|
||||
def initialize(columns, rows, column_types = {})
|
||||
@columns = columns
|
||||
@rows = rows
|
||||
@ -43,6 +47,9 @@ def initialize(columns, rows, column_types = {})
|
||||
@column_types = column_types
|
||||
end
|
||||
|
||||
EMPTY = new([].freeze, [].freeze, {}.freeze)
|
||||
private_constant :EMPTY
|
||||
|
||||
# Returns true if this result set includes the column named +name+
|
||||
def includes_column?(name)
|
||||
@columns.include? name
|
||||
|
Loading…
Reference in New Issue
Block a user