docs: def wrap(self, alias=None):
          """
          Wraps the query by selecting all fields from itself
  
          :rtype: :class:`Query <querybuilder.query.Query>`
          :return: The wrapped query
          """
          field_names = self.get_field_names()
          query = Query(self.connection).from_table(deepcopy(self), alias=alias)
          self.__dict__.update(query.__dict__)
  
          # set explicit field names
          self.tables[0].set_fields(field_names)
          field_names = self.get_field_names()
  
          return self