Class: Vertica::Protocol::Bind

Inherits:
FrontendMessage show all
Defined in:
lib/vertica/protocol/frontend/bind.rb

Instance Method Summary collapse

Methods inherited from FrontendMessage

#to_bytes

Methods inherited from Message

message_id

Constructor Details

#initialize(portal_name, prepared_statement_name, parameter_values) ⇒ Bind

Returns a new instance of Bind.



6
7
8
9
10
# File 'lib/vertica/protocol/frontend/bind.rb', line 6

def initialize(portal_name, prepared_statement_name, parameter_values)
  @portal_name = portal_name
  @prepared_statement_name = prepared_statement_name
  @parameter_values = parameter_values
end

Instance Method Details

#message_bodyObject



12
13
14
15
16
# File 'lib/vertica/protocol/frontend/bind.rb', line 12

def message_body
  bytes = [@portal_name, @prepared_statement_name, 0, @parameter_values.length].pack('Z*Z*nn')
  bytes << @parameter_values.map { |val| val.nil? ? [-1].pack('N') : [val.length, val].pack('Na*') }.join('')
  bytes << [0].pack('n')
end