def load_columns( table )
cols = {}
idx = 0
@db.execute("PRAGMA table_info(#{@db.quote(table.name)})") do |row|
col = Amalgalite::Column.new( "main", table.name, row['name'], row['cid'])
col.default_value = row['dflt_value']
col.declared_data_type = row['type']
col.not_null_constraint = row['notnull']
col.primary_key = row['pk']
if col.default_value and col.default_value.kind_of?( String ) and ( col.default_value.length >= 2 ) then
fc = col.default_value[0].chr
lc = col.default_value[-1].chr
if fc == lc and ( fc == "'" || fc == '"' ) then
col.default_value = col.default_value[1..-2]
end
end
unless table.temporary? then
@db.api.table_column_metadata( "main", table.name, col.name ).each_pair do |key, value|
col.send("#{key}=", value)
end
end
col.schema = self
cols[col.name] = col
idx += 1
end
return cols
end