Method: Simple::SQL::Connection#all
- Defined in:
- lib/simple/sql/connection/base.rb
#all(sql, *args, into: nil, &block) ⇒ Object
Runs a query, with optional arguments, and returns the result. If the SQL query returns rows with one column, this method returns an array of these values. Otherwise it returns an array of arrays.
Example:
-
Simple::SQL.all("SELECT id FROM users")returns an array of id values -
Simple::SQL.all("SELECT id, email FROM users")returns an array ofarrays `[ <id>, <email> ]`.
Simple::SQL.all “SELECT id, email FROM users” do |id, email|
# do something
end
35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/simple/sql/connection/base.rb', line 35 def all(sql, *args, into: nil, &block) raise ArgumentError, "all no longer support blocks, use each instead." if block rows, pg_source_oid, column_info = each_without_conversion(sql, *args, into: into) result = convert_rows_to_result rows, into: into, pg_source_oid: pg_source_oid # [TODO] - resolve associations. Note that this is only possible if the type # is not an Array (i.e. into is nil) result.pagination_scope = sql if sql.is_a?(::Simple::SQL::Connection::Scope) && sql.paginated? result.column_info = column_info result end |