Hi everyone, Lately, we’ve been discussing several new use cases that all involve exchanging Iceberg expressions in new areas. Those new uses have hit the limitations of the current expression structure, which was based on the Iceberg Java implementation. To unblock the new features, I’ve written a proposal <https://docs.google.com/document/d/1VthBz0S2I39TeQM8oiF9_gSPQu_gHAjWXvdFpv0QqDk/edit?tab=t.0#heading=h.54u4q3416qx8> that outlines how I think we should extend the current expressions:
- Add function calls (for cases that produce values, like generated columns and stats) - Support catalog functions (UDFs) and SQL functions, not just Iceberg-defined transforms - Add id-based references (for constraints and other persisted filters) The proposal tries to be as expressive as possible without requiring a lot of specification in Iceberg. That’s why it focuses on the structure of expressions and how to clearly identify functions to call, but it does not cover what functions must be supported or how they work. Hopefully this helps us move forward across several use cases that need to exchange expressions. It isn’t intended to duplicate work, like the ID-based references that Prashant proposed. Instead, I’m trying to get all of the changes in one place. Please take a look. Thanks, Ryan
