…r_map, and #select_hash Previously, sequel_pg only modified the internals of #fetch_rows, which is the most important method as all other retrieval goes through it. However, the #map, #to_hash and related methods are inefficient in Sequel, as they build a temporary hash for each row, only to throw each temporary hash away. This commit optimizes these methods to not create the temporary hash, by having fetch_rows return a number of different types (e.g. single values, arrays of values, only a single hash). In my testing, there is about a 2x speedup using these optimized methods over the previous case where only fetch_rows was optimized, and only a very small performance hit for the general usage of fetch_rows.