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

Reply via email to