'Checks that a filterset will not create invalid select statement'

def _validate_select_where(self):

    equal_ops = [self.model._get_column_by_db_name(w.field) for w in self._where if (isinstance(w.operator, EqualsOperator) and (not isinstance(w.value, Token)))]
    token_comparison = any([w for w in self._where if isinstance(w.value, Token)])
    if ((not any(((w.primary_key or w.index) for w in equal_ops))) and (not token_comparison) and (not self._allow_filtering)):
        raise QueryException('Where    clauses    require    either        =,    a    IN    or    a    CONTAINS    (collection)    comparison    with    either    a    primary    key    or    indexed    field')
    if (not self._allow_filtering):
        if (not any((w.index for w in equal_ops))):
            if ((not any([w.partition_key for w in equal_ops])) and (not token_comparison)):
                raise QueryException('Filtering    on    a    clustering    key    without    a    partition    key    is    not    allowed    unless    allow_filtering()    is    called    on    the    querset')
