    # File lib/amalgalite/schema.rb, line 134
        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']

            # need to remove leading and trailing ' or " from the default value
            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
              # get more exact information
              @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