isidentical commented on PR #3912:
URL: 
https://github.com/apache/arrow-datafusion/pull/3912#issuecomment-1302622371

   > How about analyze()?
   
   `analyze()` is the endpoint we have that takes a context and then produces 
the boundaries. `apply()` in that sense is taking the context and updating the 
existing boundaries for that expression. E.g. where `a + 1 > 20 AND a < 70`, we 
need a way of changing the context to mark `a`'s lower boundaries to be `19` 
(`20 - 1`). Normally if `a` was just a column (like `a < 70`), we could 
downcast it to a `ColumnExpr` during the comparison; learn its position in the 
current schema and update it directly on the context. But since `a + 1` is the 
expression that has the lower boundary of `20`; I was thinking we can provide 
an additional method where each physical expression can decide how they want to 
propagate the information to their respective sub-expressions until they reach 
a column. 
   
   Like the example in 
[here](https://github.com/apache/arrow-datafusion/issues/3898#issuecomment-1286012013).


-- 
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: github-unsubscr...@arrow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to