Class: PostgresPR::RowDescription
- Defined in:
- lib/postgres-pr/message.rb
Defined Under Namespace
Classes: FieldInfo
Constant Summary
Constants inherited from Message
Instance Method Summary collapse
Methods inherited from Message
#buffer, create, dump, fields, read, register_message_type
Instance Method Details
#dump ⇒ Object
450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 |
# File 'lib/postgres-pr/message.rb', line 450 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) ⇒ Object
467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 |
# File 'lib/postgres-pr/message.rb', line 467 def parse(buffer) super do fields = [] n_fields = buffer.read_int16_network while n_fields > 0 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 fields << f n_fields -= 1 end @fields = fields end end |