in connector/src/main/scala/org/apache/spark/sql/cassandra/SolrPredicateRules.scala [316:336]
def findUselessIsNotNulls(filters: Set[Filter], tableDef: TableDef): Set[IsNotNull] = {
val primaryKeyColumnNames = tableDef.primaryKey.map(_.columnName)
val isNotNullColumns = filters.collect{ case IsNotNull(attr) => attr -> IsNotNull(attr) }.toMap
val restrictedColumns = filters.collect {
case LessThan(attr, _) => attr
case LessThanOrEqual(attr, _) => attr
case GreaterThan(attr, _) => attr
case GreaterThanOrEqual(attr, _) => attr
case EqualNullSafe(attr, _) => attr
case EqualTo(attr, _) => attr
}
val uselessIsNotNulls = (primaryKeyColumnNames ++ restrictedColumns)
.flatMap( attr => isNotNullColumns.get(attr))
.toSet
logDebug(s"Found isNotNulls $uselessIsNotNulls that are already not needed")
uselessIsNotNulls
}