# File lib/dbd/sqlite/statement.rb, line 89
 89:     def column_info
 90:         columns = [ ]
 91: 
 92:         # FIXME this shit should *really* be abstracted into DBI
 93:         # FIXME this still doesn't handle nullable/unique/default stuff.
 94:         @result_set.columns.each_with_index do |name, i|
 95:             columns[i] = { } unless columns[i]
 96:             columns[i]["name"] = name
 97:             type_name = @result_set.types[i]
 98: 
 99:             if type_name
100:                 m = DBI::DBD::SQLite.parse_type(type_name)
101: 
102:                 columns[i]["type_name"] = m[1]
103:                 columns[i]["precision"] = m[3].to_i if m[3]
104:                 columns[i]["scale"]     = m[5].to_i if m[5]
105:                 DBI_TYPE_MAP.each do |map|
106:                     if columns[i]["type_name"] =~ map[0]
107:                         columns[i]["sql_type"] = map[1]
108:                         break
109:                     end
110:                 end
111: 
112:                 case columns[i]["type_name"]
113:                 when 'double'
114:                     columns[i]["dbi_type"] = DBI::Type::Float
115:                 end
116:             end
117:         end
118: 
119:         return columns
120:     end