Class: Vertica::Protocol::RowDescription

Inherits:
BackendMessage show all
Defined in:
lib/vertica/protocol/backend/row_description.rb

Constant Summary

Constants inherited from BackendMessage

BackendMessage::MessageIdMap

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from BackendMessage

factory, message_id

Methods inherited from Message

message_id

Constructor Details

#initialize(data) ⇒ RowDescription

Returns a new instance of RowDescription.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/vertica/protocol/backend/row_description.rb', line 8

def initialize(data)
  @fields = []
  field_count = data.unpack('n').first
  pos = 2
  field_count.times do |field_index|
    field_info = data.unpack("@#{pos}Z*NnNnNn")
    @fields << {
      :name               => field_info[0].force_encoding('UTF-8'),
      :table_oid          => field_info[1],
      :attribute_number   => field_info[2],
      :data_type_oid      => field_info[3],
      :data_type_size     => field_info[4],
      :data_type_modifier => field_info[5],
      :data_format        => field_info[6],
    }

    pos += 19 + field_info[0].size
  end
end

Instance Attribute Details

#fieldsObject (readonly)

Returns the value of attribute fields.



6
7
8
# File 'lib/vertica/protocol/backend/row_description.rb', line 6

def fields
  @fields
end