Class: Janko::Upsert
- Inherits:
-
Object
- Object
- Janko::Upsert
- Includes:
- Agrippa::Mutable
- Defined in:
- lib/janko/upsert.rb
Overview
Instance Method Summary collapse
- #cleanup ⇒ Object
- #default_state ⇒ Object
- #prepare ⇒ Object
- #process ⇒ Object
- #push(*values) ⇒ Object
- #result ⇒ Object
Instance Method Details
#cleanup ⇒ Object
43 44 45 46 47 48 |
# File 'lib/janko/upsert.rb', line 43 def cleanup return unless prepared? connection.exec("DEALLOCATE \"#{@prepared}\"") @prepared = nil self end |
#default_state ⇒ Object
13 14 15 |
# File 'lib/janko/upsert.rb', line 13 def default_state { collector: MergeResult.new } end |
#prepare ⇒ Object
21 22 23 24 25 26 |
# File 'lib/janko/upsert.rb', line 21 def prepare return(self) if prepared? @prepared = "upsert_#{SecureRandom.hex(8)}" connection.prepare(@prepared, query) self end |
#process ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/janko/upsert.rb', line 35 def process raise(RuntimeError, "Can't #process without from_table") \ unless read_from_table? result.clear collect_result(exec_query) self end |
#push(*values) ⇒ Object
28 29 30 31 32 33 |
# File 'lib/janko/upsert.rb', line 28 def push(*values) raise(RuntimeError, "Can't #push when reading from a table.") \ if read_from_table? collect_result(exec_query(columns.pack(*values))) self end |
#result ⇒ Object
17 18 19 |
# File 'lib/janko/upsert.rb', line 17 def result collector end |