We are stuck because our upstreams are stuck. 

Not moving up that minimum would not worsen the situation. 

> On Sep 6, 2016, at 8:34 PM, Julian Hyde <jh...@apache.org> wrote:
> 
> As I said, Calcite doesn’t require a particular version of Guava. We support 
> any version newer than 11.
> 
> But we would really, really appreciate it if you (and other downstream 
> projects) moved off the obsoleted old versions.
> 
> Julian
> 
>> On Sep 6, 2016, at 8:29 PM, Andrew Purtell <andrew.purt...@gmail.com> wrote:
>> 
>> Downstreamers might be stuck. 
>> 
>> Bringing together a number of components written against different versions 
>> of Guava, you will find both forward and backward incompatibilities are 
>> possible if stepping outside of a narrow range, and even at the same time. 
>> If Calcite is required by something and itself requires yet another version 
>> of Guava the viable intersection could become the null set. 
>> 
>> As a library, export of Guava types is unfriendly. 
>> 
>>> On Sep 6, 2016, at 7:18 PM, Julian Hyde <jh...@apache.org 
>>> <mailto:jh...@apache.org>> wrote:
>>> 
>>> Alternative proposal:
>>> We keep Guava in the public API.
>>> Down-streamers can use whatever version of Guava they choose.
>>> 
>>> This is what we do today. It’s working fine (except that the down streamers 
>>> seem to want to stay on old versions forever).
>>> 
>>> Julian
>>> 
>>> 
>>>> On Sep 6, 2016, at 6:43 PM, Josh Elser <josh.el...@gmail.com> wrote:
>>>> 
>>>> (from the peanut gallery)
>>>> 
>>>> I have no strong opinions but find myself presently leaning towards Ted's 
>>>> suggestions.
>>>> 
>>>> Ideally, I think that we should not expose things in a "public API" which 
>>>> we do not have the ability to guarantee compatibility of. A round-about 
>>>> way of saying "Calcite public API should only be Calcite classes or Java 
>>>> 'standard library' classes". Included Guava classes in the API would be 
>>>> disallowed. The basic reasoning behind this is that it guarantees that we 
>>>> have full control of our "destiny" without having to worry about 
>>>> dependency versions.
>>>> 
>>>> On the quick read of Ted's suggestion, it matches that (hide the Guava 
>>>> class in the API's implementation with a generic type in the API). But, I 
>>>> can also appreciate the problems you outline as well, Julian.
>>>> 
>>>> Julian Hyde wrote:
>>>>> Yes, I misread your suggestion. I see now you are suggesting a 
>>>>> compromise. The worst that can happen is that the API users make a few 
>>>>> unnecessary defensive copies, or due to missing documentation they have 
>>>>> to spend a little longer researching the API in order to discover that it 
>>>>> is “safe”.
>>>>> 
>>>>> I am not particularly inclined to compromise, because I would like Java 
>>>>> to be a high level language. An immutable collection is inherently 
>>>>> simpler than a mutable collection. Consider the problem of 
>>>>> contravariance[1] in generics: if I have a function
>>>>> 
>>>>> int countLegs(List<? extends Animal>  animals)
>>>>> 
>>>>> and I pass into it an argument of type
>>>>> 
>>>>> List<? extends Dog>
>>>>> 
>>>>> then the Java compiler rejects it, because it thinks that the function 
>>>>> might try to add a Cat to the list. But we know that this is impossible, 
>>>>> because countLegs does not modify the list. If immutability is part of 
>>>>> the declared type of the list, the type validation rules can be looser.
>>>>> 
>>>>> Julian
>>>>> 
>>>>> [1] 
>>>>> https://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science)<https://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science)>
>>>>>  
>>>>> <https://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science)%3Chttps://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science)%3E><https://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science)%3Chttps://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science)%3E
>>>>>  
>>>>> <https://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science)%3Chttps://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science)%3E>>
>>>>> 
>>>>> 
>>>>>> On Sep 6, 2016, at 2:41 PM, Ted Dunning<ted.dunn...@gmail.com 
>>>>>> <mailto:ted.dunn...@gmail.com> <mailto:ted.dunn...@gmail.com 
>>>>>> <mailto:ted.dunn...@gmail.com>>>  wrote:
>>>>>> 
>>>>>> Julian,
>>>>>> 
>>>>>> I think you miss the point of my suggestion.
>>>>>> 
>>>>>> String is not called ImmutableString. The contract of no immutability is
>>>>>> carried by outside tribal knowledge and documentation. It is enforced by
>>>>>> not allowing mutation.
>>>>>> 
>>>>>> If you declare a List, but assign an ImmutableList, you are in a similar
>>>>>> situation except that the tribal knowledge has to be more forceful 
>>>>>> because
>>>>>> of the normal expectation of List as mutable.
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>>> On Wed, Sep 7, 2016 at 7:11 AM, Julian Hyde<jh...@apache.org 
>>>>>>> <mailto:jh...@apache.org> <mailto:jh...@apache.org 
>>>>>>> <mailto:jh...@apache.org>>>  wrote:
>>>>>>> 
>>>>>>> How bad would it be for API designers and users if java.lang.String were
>>>>>>> mutable? I would say really, really bad. You could add a lot of 
>>>>>>> comments to
>>>>>>> the API documentation, but you’d never really be sure that everyone was
>>>>>>> adhering to the contract.
>>>>>>> 
>>>>>>>> On Sep 6, 2016, at 1:59 PM, Ted Dunning<ted.dunn...@gmail.com 
>>>>>>>> <mailto:ted.dunn...@gmail.com> <mailto:ted.dunn...@gmail.com 
>>>>>>>> <mailto:ted.dunn...@gmail.com>>> wrote:
>>>>>>>> 
>>>>>>>> What is so bad about declaring that variable as a List and making it an
>>>>>>>> ImmutableList underneath?
>>>>>>>> 
>>>>>>>> Guard it in the programmer's mind by comments and naming. And if they
>>>>>>> don't
>>>>>>>> believe you, it still can't be changed.
>>>>>>>> 
>>>>>>>> This avoids Guava leakage in the API and still gives you (nearly) all 
>>>>>>>> of
>>>>>>>> the benefits of the ImmutableList type.
>>>>>>>> 
>>>>>>>> Kind of give a little to get a little.
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>>> On Wed, Sep 7, 2016 at 5:10 AM, Julian Hyde<jh...@apache.org 
>>>>>>>>> <mailto:jh...@apache.org> <mailto:jh...@apache.org 
>>>>>>>>> <mailto:jh...@apache.org>>>  wrote:
>>>>>>>>> 
>>>>>>>>> What is so bad about Guava? I have always found it to be a high 
>>>>>>>>> quality
>>>>>>>>> library. I hear that they have broken backwards compatibility on one 
>>>>>>>>> or
>>>>>>> two
>>>>>>>>> occasions, but I’ve never been affected by that personally.
>>>>>>>>> 
>>>>>>>>>> On Sep 6, 2016, at 12:04 PM, Andrew Purtell<apurt...@apache.org 
>>>>>>>>>> <mailto:apurt...@apache.org> <mailto:apurt...@apache.org 
>>>>>>>>>> <mailto:apurt...@apache.org>>>
>>>>>>> wrote:
>>>>>>>>>> No argument that naming should set expectations of immutability if
>>>>>>> that's
>>>>>>>>>> what should be conveyed, but Guava types (or Guava anything) is a 
>>>>>>>>>> means
>>>>>>>>> to
>>>>>>>>>> an end that can inflict significant pain on downstreamers.
>>>>>>>>>> 
>>>>>>>>>>> On Tue, Sep 6, 2016 at 11:59 AM, Julian Hyde<jh...@apache.org 
>>>>>>>>>>> <mailto:jh...@apache.org> <mailto:jh...@apache.org 
>>>>>>>>>>> <mailto:jh...@apache.org>>> wrote:
>>>>>>>>>>> 
>>>>>>>>>>> Calcite’s API has a large surface area. The API consists not just of
>>>>>>>>>>> method calls, but also data objects. For example, the Project class
>>>>>>> [1]
>>>>>>>>>>> represents a project node in a relational algebra expression. Its 
>>>>>>>>>>> main
>>>>>>>>>>> field is “public final ImmutableList<RexNode>  exps”. It is very
>>>>>>>>> important
>>>>>>>>>>> that everyone, especially the client, understands that that list is
>>>>>>>>>>> immutable. When you create a Project, you do not need to make a
>>>>>>>>> defensive
>>>>>>>>>>> copy of the list because no one is able to modify it.
>>>>>>>>>>> 
>>>>>>>>>>> Imagine the mayhem if java.lang.String was mutable. As an API 
>>>>>>>>>>> designer
>>>>>>>>> you
>>>>>>>>>>> would have to spell out whether the caller or the provider is 
>>>>>>>>>>> allowed
>>>>>>> to
>>>>>>>>>>> change the string, and at what time. You would worry about thread
>>>>>>>>> safety,
>>>>>>>>>>> if the string has been shared with another thread. Well, I believe
>>>>>>> that
>>>>>>>>>>> Guava immutable collections prevent the same kinds of mayhem. I 
>>>>>>>>>>> would
>>>>>>>>> call
>>>>>>>>>>> that good API design.
>>>>>>>>>>> 
>>>>>>>>>>> The immutable collections and functions are in every Guava version, 
>>>>>>>>>>> so
>>>>>>>>> we
>>>>>>>>>>> really don’t care which Guava version we use, as long as it is not
>>>>>>>>> shaded.
>>>>>>>>>>> Julian
>>>>>>>>>>> 
>>>>>>>>>>> [1] https://calcite.apache.org/apidocs/org/apache/calcite/
>>>>>>>>>>> rel/core/Project.html<https://calcite.apache.org/
>>>>>>>>>>> apidocs/org/apache/calcite/rel/core/Project.html>
>>>>>>>>>>> 
>>>>>>>>>>>>> On Sep 3, 2016, at 6:02 PM, Andrew 
>>>>>>>>>>>>> Purtell<andrew.purt...@gmail.com
>>>>>>>>>>>> wrote:
>>>>>>>>>>>> I wouldn't call embedding Guava types in a public API either a
>>>>>>> service
>>>>>>>>>>> for users nor good API design, given the pain I've personally seen 
>>>>>>>>>>> it
>>>>>>>>>>> inflict on multiple projects given Google's uncaring nature on cross
>>>>>>>>>>> version compatibility.
>>>>>>>>>>>>> On Sep 3, 2016, at 5:35 PM, Jacques Nadeau<jacq...@apache.org>
>>>>>>>>> wrote:
>>>>>>>>>>>>> Do you have a sense of how often we expose these?
>>>>>>>>>>>>> 
>>>>>>>>>>>>> One random thought, shade Guava and continue to expose the
>>>>>>>>> shaded.guava
>>>>>>>>>>>>> classes in public APIs.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> People could choose to use the unshaded or shaded.
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On Sat, Sep 3, 2016 at 11:26 AM, Julian Hyde<jh...@apache.org>
>>>>>>>>> wrote:
>>>>>>>>>>>>>> I'm not keen on shading Guava, because I want to include some of
>>>>>>>>>>>>>> Guava's classes in Calcite's public API: for example 
>>>>>>>>>>>>>> ImmutableList
>>>>>>>>> and
>>>>>>>>>>>>>> Function. Using these classes in APIs makes better APIs. They
>>>>>>> should
>>>>>>>>>>>>>> be in the JDK, but sadly they're not, so we use Guava.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Calcite's policy has been to support a wide range of Guava 
>>>>>>>>>>>>>> versions
>>>>>>>>>>>>>> but to drop support for really old versions. We can use features 
>>>>>>>>>>>>>> in
>>>>>>>>>>>>>> newer versions via reflection, as long as we don't introduce a 
>>>>>>>>>>>>>> link
>>>>>>>>>>>>>> dependency (i.e. we call via reflection) and we can provide
>>>>>>> fallback
>>>>>>>>>>>>>> for older versions. All of this is identical to our policy for
>>>>>>> JDKs,
>>>>>>>>>>>>>> really.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> All we need is that our dependencies move off the really old
>>>>>>> versions
>>>>>>>>>>>>>> in a timely fashion.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Julian
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On Sat, Sep 3, 2016 at 10:20 AM, Andrew Purtell
>>>>>>>>>>>>>> <andrew.purt...@gmail.com>  wrote:
>>>>>>>>>>>>>>> Use hbase-shaded-client as Maven dep (1.1 and up)
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> On Sep 3, 2016, at 10:12 AM, James Taylor<
>>>>>>> jamestay...@apache.org>
>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>> Does shading of protobuf on the HBase client work (or is that
>>>>>>>>>>> dependent
>>>>>>>>>>>>>> on
>>>>>>>>>>>>>>>> that brave work Stack is doing)?
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> On Sat, Sep 3, 2016 at 10:10 AM, Andrew Purtell<
>>>>>>>>>>>>>> andrew.purt...@gmail.com>
>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> James - When Stack is finished coprocessors will work with
>>>>>>> shaded
>>>>>>>>>>>>>>>>> protobuf. Not yet.
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> On Sep 3, 2016, at 10:07 AM, James Taylor<
>>>>>>>>> jamestay...@apache.org
>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> Also agree - shading of guava&  protobuf would be super
>>>>>>> valuable.
>>>>>>>>>>>>>> Phoenix
>>>>>>>>>>>>>>>>>> ended up not supporting shading of protobuf because of
>>>>>>>>> difficulties
>>>>>>>>>>>>>>>>> getting
>>>>>>>>>>>>>>>>>> it to work (maybe because HBase dependency?). I think we
>>>>>>> support
>>>>>>>>>>>>>> shading
>>>>>>>>>>>>>>>>> of
>>>>>>>>>>>>>>>>>> Guava, though. Is that correct, Sergey?
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> On Sat, Sep 3, 2016 at 10:02 AM, Jacques Nadeau<
>>>>>>>>>>> jacq...@apache.org>
>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>> +1 on shading guava/protobuf.
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> On Sat, Sep 3, 2016 at 9:48 AM, Andrew Purtell<
>>>>>>>>>>>>>>>>> andrew.purt...@gmail.com>
>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> Since Calcite should become a widely used library (smile) I
>>>>>>>>>>> think it
>>>>>>>>>>>>>>>>>>> would
>>>>>>>>>>>>>>>>>>>> be prudent to shade Guava and protobuf if Calcite depends 
>>>>>>>>>>>>>>>>>>>> on
>>>>>>>>>>> them.
>>>>>>>>>>>>>> Then
>>>>>>>>>>>>>>>>>>> you
>>>>>>>>>>>>>>>>>>>> will play very nicely indeed on the classpath no matter 
>>>>>>>>>>>>>>>>>>>> what
>>>>>>>>>>>>>> versions
>>>>>>>>>>>>>>>>> are
>>>>>>>>>>>>>>>>>>>> required by calling code.
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> Jacques - Good lord. Let me see about shading HBase use of
>>>>>>>>>>> Guava, or
>>>>>>>>>>>>>>>>>>>> eliminating it. Unfortunately that will be no help in the
>>>>>>> short
>>>>>>>>>>>>>> term.
>>>>>>>>>>>>>>>>>>>> Related, our Stack is wrestling with shading protobuf
>>>>>>> already,
>>>>>>>>>>> and
>>>>>>>>>>>>>> is
>>>>>>>>>>>>>>>>>>> neck
>>>>>>>>>>>>>>>>>>>> deep in the Swamp of Classloading at the moment.
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> On Sep 3, 2016, at 9:06 AM, Jacques Nadeau<
>>>>>>>>> jacq...@apache.org>
>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>> It isn't a real solution but in Drill we solved the HBase
>>>>>>>>>>>>>>>>>>> incompatibility
>>>>>>>>>>>>>>>>>>>>> issue on the server side (for tests only) by patching 
>>>>>>>>>>>>>>>>>>>>> Guava
>>>>>>> 18
>>>>>>>>>>> to
>>>>>>>>>>>>>>>>> allow
>>>>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>>> HBase Guava calls that are missing. They are really quite
>>>>>>>>>>> trivial
>>>>>>>>>>>>>> and
>>>>>>>>>>>>>>>>>>>>> support Andrew's arguments that Guava is the devil...
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> https://github.com/apache/drill/blob/master/exec/java-
>>>>>>>>>>>>>>>>>>>> exec/src/main/java/org/apache/drill/exec/util/GuavaPatcher.
>>>>>>>>> java
>>>>>>>>>>>>>>>>>>>>> On Sat, Sep 3, 2016 at 8:16 AM, Andrew Purtell<
>>>>>>>>>>>>>>>>>>> andrew.purt...@gmail.com
>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> While that seems very unfriendly of them, the main issue 
>>>>>>>>>>>>>>>>>>>>>> is
>>>>>>>>>>> Guava
>>>>>>>>>>>>>> is
>>>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>>>> devil (and protobuf is a minor demon). Would shading be 
>>>>>>>>>>>>>>>>>>>>>> an
>>>>>>>>>>> option?
>>>>>>>>>>>>>>>>>>>>>>> On Sep 3, 2016, at 2:03 AM, CPC<acha...@gmail.com>
>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>> Cassandra driver 3.x require min guava 16.0.1. If it
>>>>>>> detects
>>>>>>>>>>> an
>>>>>>>>>>>>>>>>>>> earlier
>>>>>>>>>>>>>>>>>>>>>>> version in classpath it stops working.
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> On Sep 3, 2016 04:26, "Julian Hyde"<jh...@apache.org>
>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>> James&  Andrew, I hear you. We’ll stay on Guava 12 if 
>>>>>>>>>>>>>>>>>>>>>>>> we
>>>>>>>>> have
>>>>>>>>>>>>>> to.
>>>>>>>>>>>>>>>>>>>>>>>> But can we try an experiment to see if it’s possible to
>>>>>>> get
>>>>>>>>>>> away
>>>>>>>>>>>>>>>>>>> with
>>>>>>>>>>>>>>>>>>>>>> 14?
>>>>>>>>>>>>>>>>>>>>>>>> I propose that Maryann (who is developing the branch of
>>>>>>>>>>> Phoenix
>>>>>>>>>>>>>>>>> that
>>>>>>>>>>>>>>>>>>>>>> uses
>>>>>>>>>>>>>>>>>>>>>>>> Calcite) tries running with https://github.com/apache/
>>>>>>>>>>>>>>>>>>>> calcite/pull/277
>>>>>>>>>>>>>>>>>>>>>> <
>>>>>>>>>>>>>>>>>>>>>>>> https://github.com/apache/calcite/pull/277>. If we
>>>>>>>>> discover
>>>>>>>>>>>>>>>>>>> problems,
>>>>>>>>>>>>>>>>>>>>>> we
>>>>>>>>>>>>>>>>>>>>>>>> can try various solutions, like make the DateRangeRules
>>>>>>>>>>>>>> disabled by
>>>>>>>>>>>>>>>>>>>>>> default
>>>>>>>>>>>>>>>>>>>>>>>> (these, and the Druid adapter, are the only parts of
>>>>>>>>> Calcite
>>>>>>>>>>>>>> that
>>>>>>>>>>>>>>>>>>> need
>>>>>>>>>>>>>>>>>>>>>>>> Guava 14), or even copy the Guava classes that we need.
>>>>>>> If
>>>>>>>>>>> there
>>>>>>>>>>>>>>>>>>>> aren’t
>>>>>>>>>>>>>>>>>>>>>>>> problems, it means that we’ve slipped out of the 
>>>>>>>>>>>>>>>>>>>>>>>> shackles
>>>>>>>>> of
>>>>>>>>>>>>>>>>> inertia
>>>>>>>>>>>>>>>>>>>>>> that
>>>>>>>>>>>>>>>>>>>>>>>> are trying to drag us into an early grave.
>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> Julian
>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>> On Sep 2, 2016, at 5:35 PM, James Taylor<
>>>>>>>>>>>>>> jamestay...@apache.org>
>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>> On the server-side, HBase depends on Guava 12 (because
>>>>>>>>>>> Hadoop
>>>>>>>>>>>>>>>>>>> depends
>>>>>>>>>>>>>>>>>>>>>> on
>>>>>>>>>>>>>>>>>>>>>>>>> the same). For that reason, we've made sure Phoenix 
>>>>>>>>>>>>>>>>>>>>>>>>> can
>>>>>>>>> work
>>>>>>>>>>>>>> with
>>>>>>>>>>>>>>>>>>>> this
>>>>>>>>>>>>>>>>>>>>>>>>> version too. Phoenix may not need to depend on Calcite
>>>>>>> on
>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>>>>>> server-side,
>>>>>>>>>>>>>>>>>>>>>>>>> and Phoenix and HBase both have shading, so there may 
>>>>>>>>>>>>>>>>>>>>>>>>> be
>>>>>>>>>>> some
>>>>>>>>>>>>>>>>>>> avenues
>>>>>>>>>>>>>>>>>>>>>> of
>>>>>>>>>>>>>>>>>>>>>>>>> escape.
>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>> Sorry for the muddled answer.
>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>> On Fri, Sep 2, 2016 at 5:21 PM, Andrew Purtell<
>>>>>>>>>>>>>>>>>>> apurt...@apache.org
>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>> Use of Guava 14 introduces at least a compile time
>>>>>>>>> problem
>>>>>>>>>>>>>> with
>>>>>>>>>>>>>>>>>>>> HBase,
>>>>>>>>>>>>>>>>>>>>>>>> upon
>>>>>>>>>>>>>>>>>>>>>>>>>> which Phoenix depends, so I'm not sure Phoenix can 
>>>>>>>>>>>>>>>>>>>>>>>>>> move
>>>>>>>>>>> off of
>>>>>>>>>>>>>>>>> 13.
>>>>>>>>>>>>>>>>>>>> I'd
>>>>>>>>>>>>>>>>>>>>>>>> be
>>>>>>>>>>>>>>>>>>>>>>>>>> happy to be proven wrong.
>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>> On Fri, Sep 2, 2016 at 4:35 PM, Julian Hyde<
>>>>>>>>>>>>>> jh...@apache.org>
>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>> Calcite currently supports a wide range of Guava
>>>>>>>>> versions,
>>>>>>>>>>>>>> from
>>>>>>>>>>>>>>>>>>>>>> 12.0.1
>>>>>>>>>>>>>>>>>>>>>>>> to
>>>>>>>>>>>>>>>>>>>>>>>>>>> 19.0*. For https://issues.apache.org/
>>>>>>>>>>>>>> jira/browse/CALCITE-1334<
>>>>>>>>>>>>>>>>>>>>>>>>>>> https://issues.apache.org/jira/browse/CALCITE-1334>
>>>>>>> I’d
>>>>>>>>>>>>>> like to
>>>>>>>>>>>>>>>>>>>> use
>>>>>>>>>>>>>>>>>>>>>>>>>>> RangeSet, which was introduced in Guava 14.
>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>> Would anyone have a problem if we made Calcite’s
>>>>>>> minimum
>>>>>>>>>>>>>> Guava
>>>>>>>>>>>>>>>>>>>>>> version
>>>>>>>>>>>>>>>>>>>>>>>>>>> 14.0.1?
>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>> I see that Hive uses 14.0.1, Phoenix uses 13, Drill
>>>>>>> uses
>>>>>>>>>>> 18.
>>>>>>>>>>>>>>>>>>>>>>>>>>> Julian
>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>> * Except for the Druid adapter, which requires 14; 
>>>>>>>>>>>>>>>>>>>>>>>>>>> see
>>>>>>>>>>>>>>>>>>>>>>>>>>> https://issues.apache.org/jira/browse/CALCITE-1325<
>>>>>>>>>>>>>>>>>>>>>>>>>>> https://issues.apache.org/jira/browse/CALCITE-1325>
>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>>>>>>>>> Best regards,
>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>> - Andy
>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>> Problems worthy of attack prove their worth by 
>>>>>>>>>>>>>>>>>>>>>>>>>> hitting
>>>>>>>>>>> back. -
>>>>>>>>>>>>>>>>>>> Piet
>>>>>>>>>>>>>>>>>>>>>> Hein
>>>>>>>>>>>>>>>>>>>>>>>>>> (via Tom White)
>>>>>>>>>> 
>>>>>>>>>> --
>>>>>>>>>> Best regards,
>>>>>>>>>> 
>>>>>>>>>> - Andy
>>>>>>>>>> 
>>>>>>>>>> Problems worthy of attack prove their worth by hitting back. - Piet
>>>>>>> Hein
>>>>>>>>>> (via Tom White)
> 

Reply via email to