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