Due to the incompatibility, you will need to wait for a new release in the 5.x branch to get 5.x working with HBase 2.0.x.

Phoenix 5.0.0 is also only compatible with 2.0.0 (found this out a few months ago) as PHOENIX-4826[1] adds support for HBase 2.0.1, but is currently unreleased.

My suggestion would be to wait for the 5.1.0 release if you're able to. If you really need to deploy something right now, I'd suggest using the latest version of the 4.x.x branch (4.14.1) and HBase 1.4.x.

Francis

[1] https://issues.apache.org/jira/browse/PHOENIX-4826

On 15/05/2019 2:50 pm, Jestan Nirojan wrote:
Hi Jaanai,

Sorry I could not understand much from https://issues.apache.org/jira/browse/PHOENIX-5268 Because of this recent change, there will not be a Phoenix release for HBase 2.0.x in future Or there is an existing  compatibility issue ?
What is the Phoenix version recommended for a new deployment ? :) ,

thanks and regards,
-Jestan Nirojan

On Wed, May 15, 2019 at 7:04 AM Jaanai Zhang <cloud.pos...@gmail.com <mailto:cloud.pos...@gmail.com>> wrote:

    Hi, Jestan

    Now Phoenix 5.0.0 is not compatible with HBase 2.0.5,
    https://issues.apache.org/jira/browse/PHOENIX-5268

    ----------------------------------------
        Jaanai Zhang
        Best regards!



    Jestan Nirojan <jestanniro...@gmail.com
    <mailto:jestanniro...@gmail.com>> 于2019年5月15日周三 上午5:04写道:

        Hi William,

        Thanks, It is working with
        coalesce(functionThatMightReturnNull(), now()) without an
        explicit null;
        Phoenix Version is 5.0.0.0 which uses HBase 2.0.5
        I have not opened any issue for this, I am not sure how it is
        suppose to work.

        I am developing  a phoenix driver for metabase
        <https://metabase.com/> (which is a BI/DataViz tool).
        It seems for optional query parameter, null values are directly
        set by the base metabase driver which I am trying to extend.

        I wish if phoenix can support explicit null values.

        thanks and regards,
        -Jestan


        On Tue, May 14, 2019 at 11:52 PM William Shen
        <wills...@marinsoftware.com <mailto:wills...@marinsoftware.com>>
        wrote:

            Just took a look at the implementation, seems like Phoenix
            relies on the first expression to not be an expression that
            is not just an explicit "null" because it needs to evaluate
            for data type coercion. What's the use case for specifying
            an explicit null?

            On the other hand, the following should work:
            select coalesce(functionThatMightReturnNull(), now()) as date;

            On Tue, May 14, 2019 at 11:14 AM William Shen
            <wills...@marinsoftware.com
            <mailto:wills...@marinsoftware.com>> wrote:

                Jestan,
                It seems like a bug to me. What version of Phoenix are
                you using, and did you create a ticket already?

                On Tue, May 14, 2019 at 10:26 AM Jestan Nirojan
                <jestanniro...@gmail.com
                <mailto:jestanniro...@gmail.com>> wrote:

                    Hi,

                    I am trying to use COALESCE function to handle
                    default value in WHERE condition like below.

                    select  * from table1 where created_date >=
                    coalesce(null, trunc(now(), 'day'));

                    But it throws NullPointerException

                    Caused by: java.lang.NullPointerException
                    at
                    
org.apache.phoenix.schema.types.PDataType.equalsAny(PDataType.java:326)
                    at
                    
org.apache.phoenix.schema.types.PDate.isCoercibleTo(PDate.java:111)
                    at
                    
org.apache.phoenix.expression.function.CoalesceFunction.<init>(CoalesceFunction.java:68)
                    ... 47 more

                    I was able to reproduce the same error with
                    following query

                    select coalesce(null, now()) as date;

                    Here are some other variant of same issue

                    1. select coalesce(now(), now()) as date; //
                    returns 2019-05-14
                    2. select coalesce(now(), null) as date; // returns
                    empty
                    3. select coalesce(null, now()) as date; // throws
                    exception

                    I have tried the same for INT and VARCHAR, same outcome
                    Am I doing something wrong here or is coalesce
                    suppose to return a non null value ?

                    thanks and regards,
                    -Jestan Nirojan

Reply via email to