'Delete a filter by deleting it from all subqueries.
If a KeyError is raised during the attempt, it is ignored, unless
every subquery raised a KeyError. If any other exception is
raised, any deletes will be rolled back.
Args:
query_filter: the filter to delete.
Raises:
KeyError: No subquery had an entry containing query_filter.'

def __delitem__(self, query_filter):

    subquery_count = len(self.__bound_queries)
    keyerror_count = 0
    saved_items = []
    for (index, query) in enumerate(self.__bound_queries):
        try:
            saved_items.append(query.get(query_filter, None))
            del query[query_filter]
        except KeyError:
            keyerror_count += 1
        except:
            for (q, old_value) in itertools.izip(self.__bound_queries[:index], saved_items):
                if (old_value is not None):
                    q[query_filter] = old_value
            raise
    if (keyerror_count == subquery_count):
        raise KeyError(query_filter)
