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;--

Reply via email to