# File sql-serialize.rb, line 626
  def sql_select (dbi)
    sql = nil
    if sql_fetch_primary_key_value.nil?
      sql = "SELECT * FROM " + sql_quote_name(self.type.name.sub(/#<Module .*?>::/, "")) + " WHERE "
      sql << sql_quote_name("sql_assoc_id") << " = " << @sql_assoc_id.to_s
    else
      sql = "SELECT * FROM " + sql_quote_name(self.type.name.sub(/#<Module .*?>::/, "")) + " WHERE "
      sql << sql_quote_name(@sql_primary_key.id2name) << " = "
      sql << sql_fetch_primary_key_value
    end

    columns = Hash.new
    dbi.columns(self.type.name.sub( /#<Module .*?>::/, "")).each { |column|
      columns[column.name] = column.type_name
    }

    dbi.execute(sql) { |stm|
      stm.fetch_hash.each_pair { |key,val|
        next if val.nil?
        key = key.dup # this should unfreeze them

        val = val.dup
        key.untaint
        val.untaint
        sql_set_typecast_value(columns[key],key,val)
      }
    }
  end