Thanks for explanation. So for single minor fragment left deep tree case as
shown below there will be only one `RuntimeFilterOperator` (RTF) inserted above
left most Scan. Now when `next() `is called then first upper HJ build side will
be evaluated which will create BloomFilter and send to RTF operator. Later
`next()` will be called on probe side of first upper HJ which will again result
in calling `next() `on build side of lower hash join. When build side of lower
join is completed then it will again send its BloomFilter to RTF operator.
Considering bloom filter received is from 2 different HJ operators (hence
different `srcHashJoinOpId`) it will discard the first one and keep the second
one. I guess this is done because join condition column can be different in
different HashJoin ?
```
HJ
/ \
HJ Scan
/ \
Scan Scan
```
```
HJ
/ \
HJ Scan
/ \
RTF Scan
|
Scan
```
[ Full content available at: https://github.com/apache/drill/pull/1459 ]
This message was relayed via gitbox.apache.org for [email protected]