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.



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

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



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

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

#closed?Boolean

Returns:

  • (Boolean)


672
673
674
# File 'lib/teradata-cli/connection.rb', line 672

def closed?
  @closed
end

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



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

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



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

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



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

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

#fetch_allObject

read all records and save it for later reference.



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

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

#inspectObject



624
625
626
# File 'lib/teradata-cli/connection.rb', line 624

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

#nextObject



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

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

#valueObject



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

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

#value_allObject



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

def value_all
  each_result_set do |rs|
    ;
  end
end