[ 
https://issues.apache.org/jira/browse/CALCITE-5477?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17730224#comment-17730224
 ] 

Gian Merlino commented on CALCITE-5477:
---------------------------------------

Speaking as a Druid committer, my preference is that we can use release builds 
of Calcite that are compatible with Guava 16.0.1, which we are stuck on for now 
due to a relatively small, but influential and vocal sector of the community 
that is interested in support for Hadoop 2. And as anyone that worked with 
Hadoop 2 knows— it has a way of keeping you stuck on old versions of things. I 
think we will be able to resolve this situation with some time and effort, but 
I would prefer it not block our ability to upgrade Calcite too!

Speaking as a Calcite committer, I wonder if the nicest solution is 
internalizing the problematic Guava code: meaning copy `Preconditions` into the 
Calcite codebase itself. That way we get the performance benefits of the new 
overloads, can still build with guava 31, and can offer compatibility with 
ancient guavas to people who are interested in that kind of thing.

Thoughts?

> Compatibility with Guava < 20.0
> -------------------------------
>
>                 Key: CALCITE-5477
>                 URL: https://issues.apache.org/jira/browse/CALCITE-5477
>             Project: Calcite
>          Issue Type: Improvement
>            Reporter: Gian Merlino
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.35.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Related to CALCITE-5428.
> Preconditions.checkArgument gained new overloads in Guava 20.0, which 
> prevents code built using Guava 20.0 from running properly with earlier 
> versions of Guava. (When building against a later version of Guava, as 
> Calcite does by default, the Java compiler generates calls to methods that 
> don't exist in those earlier versions.)
> Example: in Guava 20.0 there is {{checkArgument(boolean, String, int)}}; in 
> earlier versions this would be handled by {{checkArgument(boolean, String, 
> Object...)}}.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to