def all_select_fields(prefix = true)
      @all_select_fields ||= []
      @all_select_fields[prefix ? 0 : 1] ||= begin
        fields = select_fields.reject { |c| c.blank? or c == "base" }
        (parent ? parent.all_select_fields(prefix) : []) + (prefix ? with_table(fields) : fields)