in bigquery-antipattern-recognition/src/main/java/com/google/zetasql/toolkit/antipattern/parser/visitors/whereorder/CheckAndInWhereVisitor.java [42:60]
public void visit(ASTNodes.ASTAndExpr andExprNode) {
Iterator<ASTExpression> andNodeExprIterator = andExprNode.getConjuncts().iterator();
List<Op> whereOpTypeList = new ArrayList<>();
while(andNodeExprIterator.hasNext()) {
ASTExpression astExpression = andNodeExprIterator.next();
if(astExpression instanceof ASTNodes.ASTBinaryExpression) {
Op op = ((ASTNodes.ASTBinaryExpression) astExpression).getOp();
if(OPCODE_COSTS.get(op)!=null){
whereOpTypeList.add(op);
}
}
}
if(!Ordering.from(COMPARATOR).isOrdered(whereOpTypeList)) {
hasSuboptimalOrder = true;
}
}