Class: Sequel::Postgres::Dataset
- Inherits:
-
Object
- Object
- Sequel::Postgres::Dataset
- Defined in:
- lib/sequel_pg/sequel_pg.rb
Overview
Add faster versions of Dataset#map, #to_hash, #select_map, #select_order_map, and #select_hash
Instance Attribute Summary collapse
-
#optimize_model_load ⇒ Object
If this dataset has turned model loading on or off, use the default value from the Database object.
Instance Method Summary collapse
-
#each ⇒ Object
If model loads are being optimized and this is a model load, use the optimized version.
-
#map(sym = nil) ⇒ Object
In the case where an argument is given, use an optimized version.
-
#to_hash(key_column, value_column = nil) ⇒ Object
In the case where both arguments given, use an optimized version.
-
#to_hash_groups(key_column, value_column = nil) ⇒ Object
In the case where both arguments given, use an optimized version.
Instance Attribute Details
#optimize_model_load ⇒ Object
If this dataset has turned model loading on or off, use the default value from the Database object.
30 31 32 |
# File 'lib/sequel_pg/sequel_pg.rb', line 30 def optimize_model_load defined?(@optimize_model_load) ? @optimize_model_load : db.optimize_model_load end |
Instance Method Details
#each ⇒ Object
If model loads are being optimized and this is a model load, use the optimized version.
54 55 56 57 58 59 60 |
# File 'lib/sequel_pg/sequel_pg.rb', line 54 def each if (rp = row_proc) && optimize_model_load? clone(:_sequel_pg_type=>:model, :_sequel_pg_value=>rp).fetch_rows(sql, &Proc.new) else super end end |
#map(sym = nil) ⇒ Object
In the case where an argument is given, use an optimized version.
14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/sequel_pg/sequel_pg.rb', line 14 def map(sym=nil) if sym if block_given? super else rows = [] clone(:_sequel_pg_type=>:map, :_sequel_pg_value=>sym).fetch_rows(sql){|s| rows << s} rows end else super end end |
#to_hash(key_column, value_column = nil) ⇒ Object
In the case where both arguments given, use an optimized version.
35 36 37 38 39 40 41 |
# File 'lib/sequel_pg/sequel_pg.rb', line 35 def to_hash(key_column, value_column = nil) if value_column clone(:_sequel_pg_type=>:hash, :_sequel_pg_value=>[key_column, value_column]).fetch_rows(sql){|s| return s} else super end end |
#to_hash_groups(key_column, value_column = nil) ⇒ Object
In the case where both arguments given, use an optimized version.
44 45 46 47 48 49 50 |
# File 'lib/sequel_pg/sequel_pg.rb', line 44 def to_hash_groups(key_column, value_column = nil) if value_column clone(:_sequel_pg_type=>:hash_groups, :_sequel_pg_value=>[key_column, value_column]).fetch_rows(sql){|s| return s} else super end end |