> Henry Robinson writes:

>> Question 2,
>>>> explain select s from yy2 where year in (select year from yy where year 
>>>> between 2000 and 2005);
>>>> +----------------------------------------------------------+
>>>> | Explain String                                           |
>>>> +----------------------------------------------------------+
>>>> | Estimated Per-Host Requirements: Memory=16.00MB VCores=2 |
>>>> |                                                          |
>>>> | 04:EXCHANGE [UNPARTITIONED]                              |
>>>> | |                                                        |
>>>> | 02:HASH JOIN [LEFT SEMI JOIN, BROADCAST]                 |
>>>> | |  hash predicates: year = year                          |
>>>> | |  runtime filters: RF000 <- year                        |
>>>> | |                                                        |
>>>> | |--03:EXCHANGE [BROADCAST]                               |
>>>> | |  |                                                     |
>>>> | |  01:SCAN HDFS [dpp.yy]                                 |
>>>> | |     partitions=2/4 files=2 size=468B                   |
>>>> | |                                                        |
>>>> | 00:SCAN HDFS [dpp.yy2]                                   |
>>>> |    partitions=2/3 files=2 size=468B                      |
>>>> |    runtime filters: RF000 -> year                        |
>>>> +----------------------------------------------------------+
>>
>> How does the planner be able to tell that there gonna be 2/3
>> partitions surviving after runtime fitering?
>
> The planner doesn't know about runtime filters' selectivity. But the between 
> predicate does eliminate the 1999 partition which can be statically 
> determined by the planner. That's what changes the number of expected scanned 
> partitions in the plan.

So this example isn't related to runtime filtering. It's just a
case of predicate transitivity and static partition pruning right?

Reply via email to