def columns(self, model=None):
        """
        Returns a generator that loops through the columns that are associated with this query.
        
        :return     <generator>(orb.Column)
        """
        column = self.column(model=model)
        if column:
            yield column

        check = self.__value
        if not isinstance(check, (list, set, tuple)):
            check = (check,)

        for val in check:
            if isinstance(val, (Query, QueryCompound)):
                for col in val.columns(model):
                    yield col