SubQueryPreProcessor { public static IFunction findNextSubqueryOnFilter(QueryTreeNode qtn) { return findNextSubqueryOnFilter(qtn, false); }  static QueryTreeNode opitmize(QueryTreeNode qtn); static IFunction findNextSubqueryOnFilter(QueryTreeNode qtn); static IFunction findNextSubqueryOnFilter(QueryTreeNode qtn, boolean existCorrelated); static List<IFunction> findAllSubqueryOnFilter(QueryTreeNode qtn); static List<IFunction> findAllSubqueryOnFilter(QueryTreeNode qtn, boolean existCorrelated); static IFunction assignmentSubqueryOnFilter(QueryTreeNode qtn, Map<Long, Object> subquerySettings);  }
@Test public void testQuery_子查询_correlate_in模式() throws SqlParserException { String sql = "SELECT * FROM TABLE1 WHERE ID IN (SELECT ID FROM TABLE2 WHERE TABLE2.NAME = TABLE1.NAME)"; QueryTreeNode qn = query(sql); qn.build(); IFunction func = SubQueryPreProcessor.findNextSubqueryOnFilter(qn); Assert.assertTrue(func == null); }