'Defers to the child policy\'s
:meth:`.LoadBalancingPolicy.make_query_plan` and filters the results.
Note that this filtering may break desirable properties of the wrapped
policy in some cases. For instance, imagine if you configure this
policy to filter out ``host2``, and to wrap a round-robin policy that
rotates through three hosts in the order ``host1, host2, host3``,
``host2, host3, host1``, ``host3, host1, host2``, repeating. This
policy will yield ``host1, host3``, ``host3, host1``, ``host3, host1``,
disproportionately favoring ``host3``.'

def make_query_plan(self, working_keyspace=None, query=None):

    child_qp = self._child_policy.make_query_plan(working_keyspace=working_keyspace, query=query)
    for host in child_qp:
        if self.predicate(host):
            (yield host)
