LOG.debug("Extracting column set for fragment #" + catalog_frag.getName() + ": " + catalog_tables);
final CatalogUtil.Cache cache = CatalogUtil.getCatalogCache(catalog_stmt);
Pair<String, Collection<String>> key = Pair.of(CatalogKey.createKey(catalog_frag), table_keys);
PredicatePairs cset = cache.EXTRACTED_PREDICATES.get(key);
if (cset == null) {
AbstractPlanNode root_node = PlanNodeUtil.getPlanNodeTreeForPlanFragment(catalog_frag);
// LOG.debug("PlanFragment Node:\n" +
// PlanNodeUtil.debug(root_node));
cset = new PredicatePairs();
CatalogUtil.extractPlanNodePredicates(catalog_stmt, catalog_db, cset, root_node, convert_params, catalog_tables);
cache.EXTRACTED_PREDICATES.put(key, cset);