Wraps the query by selecting all fields from itself

        :rtype: :class:`Query <querybuilder.query.Query>`
        :return: The wrapped query

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