class EffectivePredicateExtractor {

    public Expression extract(Session session, PlanNode node, TypeProvider types, TypeAnalyzer typeAnalyzer)
    {
        return node.accept(new Visitor(domainTranslator, metadata, session, types, typeAnalyzer, useTableProperties), null);
    }

    public  EffectivePredicateExtractor(DomainTranslator domainTranslator, Metadata metadata, boolean useTableProperties);

}