lib/baza/jdbc_result.rb in baza-0.0.20 vs lib/baza/jdbc_result.rb in baza-0.0.21

- old
+ new

@@ -1,36 +1,42 @@ # This class controls the result for the Java-MySQL-driver. class Baza::JdbcResult < Baza::ResultBase - INT_TYPES = {-6 => true, -5 => true, 4 => true, 5 => true} - FLOAT_TYPES = {2 => true, 3 => true, 7 => true, 8 => true} - TIME_TYPES = {93 => true} - DATE_TYPES = {91 => true} - STRING_TYPES = {-1 => true, 1 => true, 12 => true} - NIL_TYPES = {0 => true} + INT_TYPES = {-6 => true, -5 => true, 4 => true, 5 => true}.freeze + FLOAT_TYPES = {2 => true, 3 => true, 7 => true, 8 => true}.freeze + TIME_TYPES = {93 => true}.freeze + DATE_TYPES = {91 => true}.freeze + STRING_TYPES = {-1 => true, 1 => true, 12 => true}.freeze + NIL_TYPES = {0 => true}.freeze # Constructor. This should not be called manually. def initialize(driver, stmt, result_set, preload_results) @result_set = result_set @stmt = stmt - @type_translation = driver.baza.opts[:type_translation] + @type_translation = driver.db.opts[:type_translation] @rows = [] @index = -1 read_results if preload_results end def fetch if @read_results return false if @rows.empty? - row = @rows.shift + @rows.shift else - return read_row + read_row end end def each - while data = fetch - yield data + loop do + data = fetch + + if data + yield data + else + break + end end end private @@ -59,10 +65,12 @@ def read_results @read_results = true loop do - if row = read_row + row = read_row + + if row @rows << row else break end end