docs: def select(self, *attributes):
          """
          Select the passed +attributes+ from the table, subject to the
          restrictions provided by the other methods in this class.
  
          ex)
  
          >>> Repo("foos").select("name", "id")
          SELECT foos.name, foos.id FROM foos
          """
          namespaced_attributes = [
              "{table}.{attr}".format(table=self.table_name, attr=attr)
              for attr in attributes
          ]
          cmd = ('select {attrs} from {table} '
                 '{join_clause}{where_clause}{order_clause}'
                 '{group_clause}{having_clause}{limit_clause}').format(
              table=self.table_name,
              attrs=", ".join(namespaced_attributes),
              where_clause=self.where_clause,
              join_clause=self.join_clause,
              order_clause=self.order_clause,
              group_clause=self.group_clause,
              having_clause=self.having_clause,
              limit_clause=self.limit_clause,
          ).rstrip()
          return Repo.db.execute(cmd, self.where_values + self.having_values + \
                                 self.limit_value)