class FluentQuery::Drivers::Shared::Results::DBI
PostgreSQL query native token.
Public Class Methods
finalize(id)
click to toggle source
Dispatches object destroying.
# File lib/fluent-query/drivers/shared/results/dbi.rb, line 58 def self.finalize(id) if @@_sources[id] @@_sources[id].finish @@_sources.delete(id) end end
new(source)
click to toggle source
Initializes result.
Calls superclass method
# File lib/fluent-query/drivers/shared/results/dbi.rb, line 43 def initialize(source) super() @_source = source @_columns = nil ObjectSpace::define_finalizer(self, self.class.method(:finalize).to_proc) @@_sources[self.object_id] = @_source end
Public Instance Methods
all()
click to toggle source
Returns all selected rows.
# File lib/fluent-query/drivers/shared/results/dbi.rb, line 70 def all self.to_enum.map { |i| i } end
column_names()
click to toggle source
Returns the column names.
# File lib/fluent-query/drivers/shared/results/dbi.rb, line 142 def column_names if @@column_names.nil? @@column_names = @_source.column_names.map { |i| i.to_sym } end @@column_names end
count()
click to toggle source
Returns rows count.
# File lib/fluent-query/drivers/shared/results/dbi.rb, line 165 def count @_source.all.count end
each(&block)
click to toggle source
Handles iterating.
# File lib/fluent-query/drivers/shared/results/dbi.rb, line 133 def each(&block) self.hash &block end
free!()
click to toggle source
Frees result resources.
# File lib/fluent-query/drivers/shared/results/dbi.rb, line 174 def free! @_source.finish @@_sources.delete(self.object_id) end
hash() { |result| ... }
click to toggle source
Yields all rows as hashes.
# File lib/fluent-query/drivers/shared/results/dbi.rb, line 114 def hash result = nil first = true while result or first first = false result = self.one if result yield result end end end
one()
click to toggle source
Returns one row.
# File lib/fluent-query/drivers/shared/results/dbi.rb, line 79 def one row = @_source.fetch_hash if row row = row.map_keys { |i| i.to_sym } result = FluentQuery::Data::new(row) else result = nil end return result end
repeat!()
click to toggle source
Repeats the query leaded to the result.
# File lib/fluent-query/drivers/shared/results/dbi.rb, line 155 def repeat! @_source.execute() self end
single()
click to toggle source
Returns first value of first row.
# File lib/fluent-query/drivers/shared/results/dbi.rb, line 97 def single result = @_source.fetch if not result.nil? result = result.first else result = nil end return result end