presto-main/src/main/java/io/prestosql/sql/planner/EffectivePredicateExtractor.java/EffectivePredicateExtractor/visitTableScan
class EffectivePredicateExtractor:        @Override
        public Expression visitTableScan(TableScanNode node, Void context)
        {
            Map<ColumnHandle, Symbol> assignments = ImmutableBiMap.copyOf(node.getAssignments()).inverse();

            TupleDomain<ColumnHandle> predicate = node.getEnforcedConstraint();
            if (useTableProperties && !node.getEnforcedConstraint().isAll()) {
                // extract table properties only when predicate has been pushed to table scan at least once
                predicate = metadata.getTableProperties(session, node.getTable()).getPredicate();
            }

            // TODO: replace with metadata.getTableProperties() when table layouts are fully removed
            return domainTranslator.toPredicate(predicate.simplify().transform(assignments::get));
        }