Hi everyone, Following up on an item from yesterday's Read Restrictions sync [1].
*Background* PR #13879 (Read Restrictions) [2] is near a vote. Prashant noted 3 approvals but flagged one remaining structural gap: expressions in the spec currently reference columns by name rather than field ID, meaning policies can break on column rename or drop. Separately, the expressions spec (PR #16652) [3] was adopted last week via community vote [4]. However, #13879 still uses the older term-based grammar and has not yet been updated to reflect the adopted spec. *Two things that need to happen before the vote* 1. Mirror the new expression grammar from #16652 into #13879 . adopting left/right labels in place of term so the REST spec stays consistent with the now-adopted expressions spec. 2. Add IDReference [5] . so read restriction policies bind to field IDs rather than column names, surviving column renames and schema evolution. Ryan's reasoning for doing both together: adding IDReference on top of the old term structure would require parsers to handle yet another variant of a deprecated structure. The cleaner path is to adopt the new grammar and land IDReference there. *Proposed next step* I'd like to take a first pass at these spec changes in collaboration with Prashant. I'll aim to have something up for review by Wednesday July 15 or earlier, and will sync with Prashant before posting. Happy to hear if I've mischaracterized anything from the sync, or if there are concerns with this approach. Nevin Zheng Software Engineer, Datastrato [email protected] | Iceberg Slack: Nevin Zheng | GitHub: nevzheng *References* [1] Read Restrictions Sync 2026-07-07 (recording) — where this item was discussed, ~12:07 https://youtu.be/I_aOSlBT4RM [2] PR #13879 — Read Restrictions spec (main PR under discussion) https://github.com/apache/iceberg/pull/13879 [3] PR #16652 — Expressions spec (adopted; grammar to be mirrored into #13879) https://github.com/apache/iceberg/pull/16652 [4] [VOTE] Adopt the expressions spec — passed June 2026 (establishes #16652 as ratified) https://mail-archive.com/[email protected]/msg14111.html [5] GitHub discussion comment — specific IDReference gap flagged on #13879 (agenda item from sync) https://github.com/apache/iceberg/pull/13879#discussion_r3537531907 [6] Read Restrictions community syncs doc — full history of WG discussions https://docs.google.com/document/d/1iGNydKY7XT1N5Nz056vDPM0P8v0MFymGqNtOlUGUp-c/ Nevin Zheng 🧑🏻💻 Software Engineer · 🛢️ Databaseologist 🪐 Datastrato ✉️ [email protected] Robert'); DROP TABLE students;--
