class PostgresPR::RowDescription

Public Instance Methods

dump() click to toggle source
Calls superclass method PostgresPR::Message::dump
# File lib/postgres-pr/message.rb, line 456
def dump
  sz = @fields.inject(2) {|sum, fld| sum + 18 + fld.name.size + 1 }
  super(sz) do |buffer|
    buffer.write_int16_network(@fields.size)
    @fields.each { |f|
      buffer.write_cstring(f.name)
      buffer.write_int32_network(f.oid)
      buffer.write_int16_network(f.attr_nr)
      buffer.write_int32_network(f.type_oid)
      buffer.write_int16_network(f.typlen)
      buffer.write_int32_network(f.atttypmod)
      buffer.write_int16_network(f.formatcode)
    }
  end
end
parse(buffer) click to toggle source
Calls superclass method PostgresPR::Message#parse
# File lib/postgres-pr/message.rb, line 472
def parse(buffer)
  super do
    n_fields = buffer.read_int16_network
    @fields = (1..n_fields).collect {
      f = FieldInfo.new
      f.name       = buffer.read_cstring
      f.oid        = buffer.read_int32_network
      f.attr_nr    = buffer.read_int16_network
      f.type_oid   = buffer.read_int32_network
      f.typlen     = buffer.read_int16_network
      f.atttypmod  = buffer.read_int32_network
      f.formatcode = buffer.read_int16_network
      f
    }
  end
end