Hi everyone, I'm Robin, a relatively new contributor to Apache Polaris. I'm excited to get more involved in the community and continue contributing!
I'd like to share a proposed implementation plan for* Generic Table location validation *and gather feedback from the broader Polaris community. Background and context: This work builds on the original Generic Table Support proposal and Yun's earlier implementation in PR #4237. Original proposal (Issue #1048, including the design document): https://github.com/apache/polaris/issues/1048 Previous implementation (PR #4237): https://github.com/apache/polaris/pull/4237 Many thanks to Yun and everyone involved in the original design, implementation, and discussions! I'd like to approach the remaining work incrementally to keep each change focused and easier to review. Proposed implementation plan Part 1 - Explicit base-location validation - Validate non-null, non-empty base-location values against the catalog's allowed locations and parent namespace rules, respecting the existing configuration. - Preserve current behavior for omitted, null, or empty locations, as well as name conflicts. - Keep location overlap checks out of scope for this initial change. The implementation is available in PR #5748: https://github.com/apache/polaris/pull/5748 Local validation has passed, including focused tests, format compileAll, :polaris-runtime-service:check, and REST API checks. (I noticed we recently onboard a bot for code review, I will start addressing those comments!) Part 2 - Location overlap checks - Address overlapping locations between Generic Tables. - Address overlaps between Generic Tables and Iceberg tables. - Respect the existing overlap configuration and optimized-check behavior. Follow-up - Credential vending - Explore Generic Table credential vending as a separate follow-up, subject to further community discussion after the location-validation work. I'd particularly appreciate feedback on: 1. Whether this incremental approach and the proposed scope boundaries make sense. 2. Whether there are compatibility or configuration concerns that Part 1 should address. 3. Whether there are important concerns from the earlier PR discussions that I should prioritize. I really appreciate the guidance and patience from the community as I get more familiar with the codebase. I'm looking forward to learning from everyone and contributing more! Thanks, Robin
