From: "Jon A. Lambert" Date: 2006-03-18T01:12:48+09:00 Subject: ruby-sqlite 2.2.3 bug This is using sqlite-ruby (2.2.3) ----------------------- require 'sqlite' require 'pp' class Foo end db = SQLite::Database.open("test.sqlite") begin db.execute("drop table test;") rescue end db.execute("create table test (id integer primary key, data object);") db.type_translation = true db.translator.add_translator("object") {|type, value| db.class.decode value } db.execute("insert into test values (1, ?);", db.class.encode(Foo.new)) db.execute("select * from test;") do |row| pp row end #db.type_translation = false <== uncomment to make work pp db.execute("pragma table_info(test)") <======= bug here db.table_info("test") do |row| <===== and here pp row end ---------------------- [1, #] C:/apps/ruby/lib/ruby/gems/1.8/gems/sqlite-ruby-2.2.3-mswin32/lib/sqlite/translator.rb:85:in `type_name': undefined method `upcase' for nil:NilClass (NoMethodError) from C:/apps/ruby/lib/ruby/gems/1.8/gems/sqlite-ruby-2.2.3-mswin32/lib/sqlite/translator.rb:77:in `translate' from C:/apps/ruby/lib/ruby/gems/1.8/gems/sqlite-ruby-2.2.3-mswin32/lib/sqlite/resultset.rb:136:in `next' from C:/apps/ruby/lib/ruby/gems/1.8/gems/sqlite-ruby-2.2.3-mswin32/lib/sqlite/resultset.rb:135:in `next' from C:/apps/ruby/lib/ruby/gems/1.8/gems/sqlite-ruby-2.2.3-mswin32/lib/sqlite/resultset.rb:161:in `each' from C:/apps/ruby/lib/ruby/gems/1.8/gems/sqlite-ruby-2.2.3-mswin32/lib/sqlite/database.rb:199:in `execute' from C:/work/teensymud/trunk/testsql.rb:21 Switching type_translation off allows pragma to work. Also example in documentation, shows 'db.decode' instead of 'db.class.decode' -- J. Lambert