(Based on conversation with Igor)
There are a lot of subquery conditions out there that are inexpensive to
evaluate and have good selectivity.
If we just implement MDEV-83, we may get regressions. We need to take
subquery condition's selectivity into account.
It is difficult to get a meaningful estimate for an arbitrary, correlated
One possible solution is to measure selectivity during execution and reattach
predicates on the fly.
We don't want to change the query plan all the time, one way to dynamically
move items between item trees is to wrap them inside Item_func_trig_cond so
we can switch them on and off.