hongkunxu opened a new pull request, #20167: URL: https://github.com/apache/pinot/pull/20167
## Summary Fix an authorization mismatch between the Controller and Broker for single-stage queries against logical tables. A user with read access to `airlineStats` can query a logical table referencing `airlineStats_REALTIME` directly through the Broker, but receives `AccessDenied` through the Controller `/sql` endpoint and query console. The Controller incorrectly checks permission on the logical table name. ## Changes - Authorize logical-table queries against every underlying physical table, matching Broker behavior. - Resolve the canonical logical table name through the table cache before selecting a Broker. - Add regression coverage for OFFLINE, REALTIME, and hybrid logical tables, denied physical-table access, and case/database resolution. Access to the reference table alone is insufficient when the logical table includes additional physical tables: all underlying tables must be authorized. ## Testing - `PinotQueryResourceTest`: 53 tests passed. - Formatting, checkstyle, and license checks passed. -- 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]
