Jackie-Jiang opened a new pull request, #20262: URL: https://github.com/apache/pinot/pull/20262
## Summary A server sets up a table when it adds the first segment of it. Until then it has not loaded any of the optional segments it can be asked for, yet the query fails: the single-stage executor returns `SERVER_TABLE_MISSING`, and the multi-stage leaf throws `Failed to find data manager for table`. An optional segment is meant to be skipped without failing the query. The server now answers with an empty result when the table is not set up and the request has no segment the server must have: - `ServerQueryExecutorV1Impl` runs the query over the new `EmptyTableExecutionInfo`, so the result, the explain output and the response metadata are the same as for a table whose optional segments are all skipped. - `LogicalTableExecutionInfo` leaves out a physical table that is not set up and has only optional segments. - The multi-stage leaf builds its request without the table schema, which it only passes to the query optimizer, and lets the executor answer it. `ServerPlanRequestUtils` now looks up the table data manager in one place instead of three, and `compileInstanceRequest` loses its unused `tableConfig` parameter. A table that is not set up still fails the query when the request has a segment the server must have. ## Context The broker does not send such a request today. The routing table leaves out a server that would only get optional segments (the `TODO: allow servers only with optional segments` in `BaseBrokerRoutingManager`), and the multi-stage engine does not send optional segments yet. Both need servers that tolerate the request first, because brokers are upgraded before servers. 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- 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]
