Jackie-Jiang commented on pull request #5483: URL: https://github.com/apache/incubator-pinot/pull/5483#issuecomment-642848504
> It seems like we are adding some duplicate code (like Predicate, FilterInfo). We already have them. > > I agree that on server we can move to QueryRequest and build all the execution related information once (segment independent). But that can also be done while we continue to leverage existing interfaces and POJOs. We already have Expression, FilterQueryTree, Predicate etc. Why do we need a new implementation? This PR introduces all the classes needed to replace the `BrokerRequest`. The reason for introducing new classes instead of changing the existing ones is that we can make incremental changes to replace them layer by layer (aggregation, selection, transform, projection, filter, etc.) without touching other layers. After deprecating `BrokerRequest` completely, the old classes will be removed. `TransformExpressionTree` -> `Expression` `FilterQueryTree` -> `FilterInfo` `Predicate` -> new `Predicate` with compiled expressions ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org