LuciferYang commented on issue #67994:
URL: https://github.com/apache/doris/issues/67994#issuecomment-5675644634

   Correcting my own trigger claim, which the analysis above is right to 
qualify.
   
   I wrote that `IS NULL` / `IS NOT NULL` already qualify as pushed common 
expressions. Zone-map evaluability was the wrong thing to check. 
`ScanLocalStateBase::_normalize_is_null_predicate` 
(`be/src/exec/operator/scan_operator.cpp:967-1011`) converts `is_null_pred` 
into a column range, so such a predicate normally leaves the common-expression 
set and arrives as a `ColumnPredicate`, which makes the earlier predicate loop 
install the constant reader first. So no currently merged shape is demonstrated 
to reach this; the reachable one is the column-vs-column comparison from 
#67774, which can never become a `ColumnPredicate`.
   
   Two other corrections to my wording: the bad entry lasts until the 
per-segment column cache evicts it or the segment is evicted, not necessarily 
the whole segment residency; and the defect is the dropped constant on the 
lookup, independent of any trigger.
   
   On the fix: the same-key replacement trap named in point 2 is real. 
`_insert_locked_nocheck` pushes a second LRU node and only overwrites the map 
iterator, and eviction erases `_cache_map[tail->key]`, which can drop the live 
entry of that key. My patch makes it a same-key in-place update instead of a 
second insert. I will extend the unit tests to assert the constant reader's 
zone map and iterator output rather than only its type, and add the concurrent 
physical-versus-constant case.
   
   Point 3 is the reason #67995 exists separately: a cache upgrade cannot 
repair a zone-map evaluation that already consumed the physical `[0,0]`, so the 
builders have to request the constant themselves.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to