# Sqlite3-ruby bug

**URL:** <https://www.ruby-forum.com/t/sqlite3-ruby-bug/83197>\
**Category:** Ruby\
**Created:** [March 17, 2006, 5:34pm UTC](https://www.ruby-forum.com/t/sqlite3-ruby-bug/83197 "2006-03-17T17:34:11Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jon\_ASLambert](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/f08c70/32.png) [@Jon\_ASLambert](https://www.ruby-forum.com/u/Jon_ASLambert)\
**Post date:** [March 17, 2006, 5:34pm UTC](https://www.ruby-forum.com/t/sqlite3-ruby-bug/83197/1 "2006-03-17T17:34:11Z")

</div>

Sane as earlier post. Code to reproduce different.

This is using sqlite3-ruby (1.1.0)

* * *

require ‘sqlite3’  
require ‘pp’  
require ‘base64’

## def self.decode(str) Marshal.load(Base64.decode64(str)) end def self.encode(obj) Base64.encode64(Marshal.dump(obj)).strip end class Foo end db = SQLite3::Database.open(“test.sqlite3”) begin db.execute(“drop table test;”) rescue Exception end db.execute(“create table test (id integer primary key, data object);”) db.type\_translation = true db.translator.add\_translator(“object”) {|type, value| decode value } db.execute(“insert into test values (1, ?);”, 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, #Foo:0x2c26e68]  
C:/apps/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.1.0-mswin32/lib/sqlite3/translator.rb:85:in  
`type_name': undefined method`upcase’ for nil:NilClass (NoMethodError)  
from  
C:/apps/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.1.0-mswin32/lib/sqlite3/translator.rb:77:in  
`translate' from C:/apps/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.1.0-mswin32/lib/sqlite3/resultset.rb:135:in`next’  
from  
C:/apps/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.1.0-mswin32/lib/sqlite3/resultset.rb:134:in  
`next' from C:/apps/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.1.0-mswin32/lib/sqlite3/resultset.rb:160:in`each’  
from  
C:/apps/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.1.0-mswin32/lib/sqlite3/database.rb:215:in  
`execute' from C:/apps/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.1.0-mswin32/lib/sqlite3/database.rb:186:in`prepare’  
from  
C:/apps/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.1.0-mswin32/lib/sqlite3/database.rb:210:in  
`execute’  
from C:/work/teensymud/trunk/testsql.rb:28

Tool completed with exit code 1

Switching type\_translation off allows pragma to work.
