public PickTableLayoutForPredicate pickTableLayoutForPredicate()
    {
        return new PickTableLayoutForPredicate(metadata);
    }
@Test
    public void eliminateTableScanWhenNoLayoutExist()
    {
        tester().assertThat(pickTableLayout.pickTableLayoutForPredicate())
                .on(p -> {
                    p.variable("orderstatus", createVarcharType(1));
                    return p.filter(p.rowExpression("orderstatus = 'G'"),
                            p.tableScan(
                                    ordersTableHandle,
                                    ImmutableList.of(p.variable("orderstatus", createVarcharType(1))),
                                    ImmutableMap.of(p.variable("orderstatus", createVarcharType(1)), new TpchColumnHandle("orderstatus", createVarcharType(1)))));
                })
                .matches(values("A"));

        tester().assertThat(pickTableLayout.pickTableLayoutForPredicate())
                .on(p -> {
                    p.variable("orderstatus", createVarcharType(1));
                    return p.filter(p.rowExpression("orderstatus = 'G'"),
                            p.tableScan(
                                    ordersTableHandle,
                                    ImmutableList.of(variable("orderstatus", createVarcharType(1))),
                                    ImmutableMap.of(variable("orderstatus", createVarcharType(1)), new TpchColumnHandle("orderstatus", createVarcharType(1)))));
                })
                .matches(values("A"));
    }