agavra opened a new pull request, #9560: URL: https://github.com/apache/pinot/pull/9560
This PR improves the traversal code around StageNode. It sets up a common pattern for visiting nodes, collecting information, rewriting and making other changes. This PR is setup for one that will help us implement a global sort stage for LIMIT/OFFSET queries and support sort push down. There are four main parts to look at: 1. I added the `StageNodeVisitor` interface and implemented `visit` in all of the Stage Node implementations 2. I refactored the `partitionKey` optimization (that removes a shuffle if not necessary) into a Visitor (`ShuffleRewriter`) 3. I refactored constructing the `QueryPlan` metadata into a visitor (this is in preparation for the next PR) (`QueryPlanGenerator`) 4. I refactored constructing the `Operator` into a visitor (`PhyscialPlanBuilder`) Lastly, I added some quality of life improvements in debug-ability and I identified a "bug" in nested loop joins - though I'll fix that one in a future PR (see `FIXME` comment) -- 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]
