Sounds like a great idea. +1 to having separate PRs, might be easier to
review/rebase.

On Wed, Jun 17, 2026 at 7:27 AM Eduard Tudenhöfner <[email protected]>
wrote:

> I'm in favor of switching to the new switch expression as it makes the
> code easier to read. However, I would handle changing *instanceof* stuff
> in a separate PR.
>
> On Wed, Jun 17, 2026 at 1:15 AM Neelesh Salian <[email protected]>
> wrote:
>
>> Hi folks,
>>
>> Reviving this with 1.12 on the horizon. I think this is a good time to do
>> a scoped change.
>> I'd like to port  #15494 <https://github.com/apache/iceberg/pull/15494> 
>> forward
>> to a fresh PR and drive it for 1.12. Spoke to Max offline and he's agreed.
>> Manu, I'll fold in anything from #15176
>> <https://github.com/apache/iceberg/pull/15176> that's not already
>> covered.
>>
>> Scope is switches and pattern-matching instanceof in iceberg-core, same
>> as #15494 <https://github.com/apache/iceberg/pull/15494>'s intent. Text
>> blocks, records, and sealed classes stay "use when appropriate" per the
>> Java 17 Features thread [1], not in this PR.
>>
>> Please let me know if there are any objections to the approach or the
>> scope. If none, I'll add this to the 1.12 milestone and open the PR.
>>
>> Thanks, Neelesh
>>
>> [1] https://lists.apache.org/thread/b29jyys3lnr72dbscb5rlg9601c4hbh1
>>
>>
>> On Fri, Jan 30, 2026 at 6:09 AM Manu Zhang <[email protected]>
>> wrote:
>>
>>> Thanks Peter for opening the discussion. I agree option 2 might work for
>>> most people.
>>> We can merge/cherry-pick PRs after cutting the release branch. Actually,
>>> Intellij IDEA has built-in support for such optimizations so it's quite
>>> easy to rebase/reapply the changes.
>>>
>>> Regards,
>>> Manu
>>>
>>> On Fri, Jan 30, 2026 at 6:27 PM Maximilian Michels <[email protected]>
>>> wrote:
>>>
>>>> Hi Peter,
>>>>
>>>> Thanks for starting the discussion! I'm in favor of making use of Java
>>>> 17 language. There isn't much we gain from dropping Java 11, if we
>>>> keep the language target to 11. Features like pattern matching, text
>>>> blocks, and sealed classes will help us to write cleaner and more
>>>> maintainable code.
>>>>
>>>> Approach (2) seems like a good compromise to minimize the disruption
>>>> for organizations which backport changes and can't necessarily migrate
>>>> to a new Java version mid-cycle. The only caveat I see is that some
>>>> downstream project might not properly support Java 17. For example, we
>>>> still support Flink 1.20, but Flink only has proper Java 17 support
>>>> from Flink 2.0 on.
>>>>
>>>> Cheers,
>>>> Max
>>>>
>>>> On Fri, Jan 30, 2026 at 9:47 AM Péter Váry <[email protected]>
>>>> wrote:
>>>> >
>>>> > After dropping Java 11, we discussed whether we should start using
>>>> the newer language features now available to us [1]. The general sentiment
>>>> was that we should.
>>>> >
>>>> > Manu has since opened a large PR [2] that migrates all switch
>>>> statements to the new switch syntax. While this is a valuable improvement,
>>>> the size and scope of the change are quite disruptive. This is especially
>>>> true for other large, ongoing PRs and for teams that maintain internal
>>>> forks of Iceberg.
>>>> >
>>>> > I see three possible ways forward:
>>>> >
>>>> > Bite the bullet now and do the migration in one large PR.
>>>> > Wait until shortly before the release and merge the PR then. This
>>>> could help organizations that are closely tied to the Apache release cycle
>>>> but tend to cherry-pick changes mid-cycle.
>>>> > Apply the new switch syntax incrementally, using it only in new code
>>>> or when the surrounding code is otherwise being modified.
>>>> >
>>>> > My preference would be option 1 or 2. I’m happy to review the code if
>>>> we decide to proceed in either of those directions, but I’d like to hear
>>>> others’ thoughts before we make any sweeping changes.
>>>> >
>>>> > Thanks,
>>>> > Peter
>>>> >
>>>> > References:
>>>> >
>>>> > [1] Dev thread - Java 17 features
>>>> > https://lists.apache.org/thread/b29jyys3lnr72dbscb5rlg9601c4hbh1
>>>> > [2] PR - Replace switch statement with switch expression
>>>> > https://github.com/apache/iceberg/pull/15176
>>>>
>>>

Reply via email to