Class: TeradataCli::ResultSet

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Enumerable
Defined in:
lib/teradata-cli/connection.rb

Instance Method Summary collapse

Constructor Details

#initialize(status, cli) ⇒ ResultSet

Returns a new instance of ResultSet.



615
616
617
618
619
620
621
622
623
624
# File 'lib/teradata-cli/connection.rb', line 615

def initialize(status, cli)
  @status = status
  @cli = cli
  @next = nil
  @closed = false
  @metadata_read = false
  @metadata = nil
  @valued = false
  @entries = nil
end

Instance Method Details

#closeObject



678
679
680
681
682
# File 'lib/teradata-cli/connection.rb', line 678

def close
  check_connection
  @cli.skip_current_statement
  @closed = true
end

#closed?Boolean

Returns:

  • (Boolean)


674
675
676
# File 'lib/teradata-cli/connection.rb', line 674

def closed?
  @closed
end

#each_record(&block) ⇒ Object Also known as: each



684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
# File 'lib/teradata-cli/connection.rb', line 684

def each_record(&block)
  return @entries.each(&block) if @entries
  check_connection
  unless @metadata_read
    @metadata = @cli.
    unless @metadata
      @closed = true
      return
    end
    @metadata_read = true
  end
  while rec = @cli.read_record
    yield @metadata.unmarshal(rec)
  end
  @closed = true
end

#each_result_setObject



649
650
651
652
653
654
655
656
657
658
659
660
# File 'lib/teradata-cli/connection.rb', line 649

def each_result_set
  rs = self
  while rs
    begin
      yield rs
    ensure
      rs.close unless rs.closed?
    end
    rs = rs.next
  end
  nil
end

#entriesObject

read all record and return it



704
705
706
707
708
# File 'lib/teradata-cli/connection.rb', line 704

def entries
  return @entries if @entries
  check_connection
  map {|rec| rec }
end

#fetch_allObject

read all records and save it for later reference.



711
712
713
714
715
716
# File 'lib/teradata-cli/connection.rb', line 711

def fetch_all
  return if @entries
  check_connection
  @entries = map {|rec| rec }
  nil
end

#inspectObject



626
627
628
# File 'lib/teradata-cli/connection.rb', line 626

def inspect
  "\#<ResultSet #{@status.inspect} next=#{@next.inspect}>"
end

#nextObject



639
640
641
642
643
644
645
646
647
# File 'lib/teradata-cli/connection.rb', line 639

def next
  return @next if @next
  close unless closed?
  value
  rs = @cli.read_result_set
  @next = rs
  rs.value if rs
  rs
end

#valueObject



668
669
670
671
672
# File 'lib/teradata-cli/connection.rb', line 668

def value
  return if @valued
  @status.value
  @valued = true
end

#value_allObject



662
663
664
665
666
# File 'lib/teradata-cli/connection.rb', line 662

def value_all
  each_result_set do |rs|
    ;
  end
end