Hi all,

Ruby 1.6.7, dbi .16, oracle .2.11

I'm getting some odd behavior returning DBI::Row objects in iterative context.  I *think* this is 
because of the way dbi is designed (to re-use the same reference), but I still think the behavior 
is wrong:


require "dbi"

class Test
   def initialize
      @dbh = DBI.connect(dsn,user,password)
      @sth = @dbh.prepare("select field1, field2 from some_table")
      @sth.execute
   end

   def myiter
      while r = @sth.fetch
         if block_given?
            yield r.dup
         else
            return r
         end
      end
   end
end

t = Test.new

t.myiter{|row|
   row.push("X")
   puts row.join(', ')
}

if we assume our query returns 4 rows we get this:

data, data, X
data, data, X, X
data, data, X, X, X
data, data, X, X, X, X

Is this expected behavior or a bug?  I realize one solution is to just dup the row in "myiter", 
but I wanted to check.

Regards,

Dan