#1030: A potential SQLite3-Ruby bug ----------------------------------+----------------------------------------- Reporter: yasuimao@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: ----------------------------------+----------------------------------------- I encountered a potential bug with SQLite3-Ruby. I installed SQLite3-Ruby with macgem. The version of SQLite is the one on the system (3.6.12) and the version of SQLite3-Ruby is 1.3.2. I'm not sure if this is specific on my system or a bug. sqlite3 test.rb {{{ #!/usr/local/bin/macruby require "rubygems" require "sqlite3" sql = <<-SQL CREATE table test_table ( col1 integer, col2 integer, col3 integer ); SQL db = SQLite3::Database.new("test.db") db.transaction do db.execute("DROP TABLE test_table") if db.execute("SELECT tbl_name FROM sqlite_master WHERE type == 'table'").include?(["test_table"]) db.execute(sql) db.execute("INSERT into test_table (col1,col2,col3) values (?,?,?)",0,0,0) p db.execute("SELECT col1,col2,col3 FROM test_table") end }}} Results MacRuby 0.8 nightly {{{ #=> [[nil, 0, 0]] }}} Ruby 1.8.7 {{{ #=> [[0,0,0]] }}} If there are more than two items (into two columns) in this way, the first item to insert (not the first column on the table) is always nil. If values are in the command string using #{} or only one item is inserted, no issue. {{{ db.execute("INSERT into test_table (col1,col2,col3) values (0,0,0)") OR db.execute("INSERT into test_table (col1,col2,col3) values (#{0},#{0},#{0})") }}} Result - MacRuby 0.8 nightly, Ruby 1.8.7 {{{ #=> [[0,0,0]] }}} I'll see if I can attach this sample script file. -- Ticket URL: <http://www.macruby.org/trac/ticket/1030> MacRuby <http://macruby.org/>