Module: Sequel::Postgres::Streaming

Defined in:
lib/sequel/extensions/pg_streaming.rb

Overview

Database methods necessary to support streaming. You should load this extension into your database object:

DB.extension(:pg_streaming)

Then you can call #stream on your datasets to use the streaming support:

DB[:table].stream.each{|row| ...}

Or change a set so that all dataset calls use streaming:

DB.stream_all_queries = true

Defined Under Namespace

Modules: AdapterMethods, DatasetMethods

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#stream_all_queriesObject

Returns the value of attribute stream_all_queries.



21
22
23
# File 'lib/sequel/extensions/pg_streaming.rb', line 21

def stream_all_queries
  @stream_all_queries
end

Class Method Details

.extended(db) ⇒ Object

Also extend the database’s datasets to support streaming. This extension requires modifying connections, so disconnect so that new connections will get the methods.



26
27
28
29
30
# File 'lib/sequel/extensions/pg_streaming.rb', line 26

def self.extended(db)
  db.extend_datasets(DatasetMethods)
  db.stream_all_queries = false
  db.disconnect
end

Instance Method Details

#connect(server) ⇒ Object

Make sure all new connections have the appropriate methods added.



33
34
35
36
37
# File 'lib/sequel/extensions/pg_streaming.rb', line 33

def connect(server)
  conn = super
  conn.extend(AdapterMethods)
  conn
end