You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@phoenix.apache.org by Mark Tse <Ma...@D2L.com> on 2015/10/15 21:15:08 UTC

RE: Phoenix 4.4 to 4.6 Client Errors

Hi everyone,

I currently have Phoenix 4.4 installed on HBase 0.98, and am trying out a Phoenix 4.6 build (https://builds.apache.org/view/All/job/Phoenix-4.x-HBase-0.98/861/). I took the following steps:

- Replace the Phoenix 4.4 server jars in HBase lib folders for HBase master and RegionServers
- Restart HBase master and RegionServers

Attempting to connect with the Phoenix 4.6 client jar and sqlline.py causes the following error:

15/10/15 18:37:02 WARN query.ConnectionQueryServicesImpl: Add column failed due to:org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504 (42703): Undefined column. columnName=IS_ROW_TIMESTAMP
Error: ERROR 504 (42703): Undefined column. columnName=IS_ROW_TIMESTAMP (state=42703,code=504)
org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504 (42703): Undefined column. columnName=IS_ROW_TIMESTAMP
        at org.apache.phoenix.schema.PTableImpl.getColumn(PTableImpl.java:647)
        at org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.resolveColumn(FromCompiler.java:361)
        at org.apache.phoenix.compile.UpsertCompiler.compile(UpsertCompiler.java:386)
        at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:550)
        at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:538)
        at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:318)
        at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:311)
        at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
        at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:309)
        at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:239)
        at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:172)
        at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:177)
        at org.apache.phoenix.schema.MetaDataClient.addColumnMutation(MetaDataClient.java:685)
        at org.apache.phoenix.schema.MetaDataClient.addColumn(MetaDataClient.java:2526)
        at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableAddColumnStatement$1.execute(PhoenixStatement.java:1055)
        at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:319)
        at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:311)
        at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
        at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:309)
        at org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1368)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl.addColumn(ConnectionQueryServicesImpl.java:1864)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl.addColumnsIfNotExists(ConnectionQueryServicesImpl.java:1890)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl.access$500(ConnectionQueryServicesImpl.java:179)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1979)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1896)
        at org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:78)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:1896)
        at org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:180)
        at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.java:132)
        at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:151)
        at sqlline.DatabaseConnection.connect(DatabaseConnection.java:157)
        at sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:203)
        at sqlline.Commands.connect(Commands.java:1064)
        at sqlline.Commands.connect(Commands.java:996)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:483)
        at sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:36)
        at sqlline.SqlLine.dispatch(SqlLine.java:804)
        at sqlline.SqlLine.initArgs(SqlLine.java:588)
        at sqlline.SqlLine.begin(SqlLine.java:656)
        at sqlline.SqlLine.start(SqlLine.java:398)
        at sqlline.SqlLine.main(SqlLine.java:292)
sqlline version 1.1.8


However, I was able to connect using the Phoenix 4.5 client jar and sqlline.py. Furthermore, after connecting once, I was able to connect using the Phoenix 4.6 client jar and sqlline.py, but sqlline.py identifies the server and client as "Phoenix 4.5".

Looking at https://github.com/apache/phoenix/blob/c2cb510048fb07792d4639f211e98b8a95281f2f/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java#L1937, it looks like we do some checking on the version before creating some metadata.

Is there a reason the client jars from the build were not identified as greater than or equal to 4.6? Or is there something else going on?

Thanks,
Mark


RE: Phoenix 4.4 to 4.6 Client Errors

Posted by Mark Tse <Ma...@D2L.com>.
Thanks!

Side question – is there a page I can view to see development / release timelines? I’m interested in getting some 4.6 changes to our cluster.

Thanks,
Mark Tse

From: James Taylor [mailto:jamestaylor@apache.org]
Sent: Thursday, October 15, 2015 3:21 PM
To: user <us...@phoenix.apache.org>
Subject: Re: Phoenix 4.4 to 4.6 Client Errors

Good catch, Mark. I filed PHOENIX-2326. We'll get this tweaked before we cut the RC.

On Thu, Oct 15, 2015 at 12:15 PM, Mark Tse <Ma...@d2l.com>> wrote:
Hi everyone,

I currently have Phoenix 4.4 installed on HBase 0.98, and am trying out a Phoenix 4.6 build (https://builds.apache.org/view/All/job/Phoenix-4.x-HBase-0.98/861/). I took the following steps:

- Replace the Phoenix 4.4 server jars in HBase lib folders for HBase master and RegionServers
- Restart HBase master and RegionServers

Attempting to connect with the Phoenix 4.6 client jar and sqlline.py causes the following error:

15/10/15 18:37:02 WARN query.ConnectionQueryServicesImpl: Add column failed due to:org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504 (42703): Undefined column. columnName=IS_ROW_TIMESTAMP
Error: ERROR 504 (42703): Undefined column. columnName=IS_ROW_TIMESTAMP (state=42703,code=504)
org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504 (42703): Undefined column. columnName=IS_ROW_TIMESTAMP
        at org.apache.phoenix.schema.PTableImpl.getColumn(PTableImpl.java:647)
        at org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.resolveColumn(FromCompiler.java:361)
        at org.apache.phoenix.compile.UpsertCompiler.compile(UpsertCompiler.java:386)
        at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:550)
        at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:538)
        at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:318)
        at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:311)
        at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
        at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:309)
        at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:239)
        at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:172)
        at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:177)
        at org.apache.phoenix.schema.MetaDataClient.addColumnMutation(MetaDataClient.java:685)
        at org.apache.phoenix.schema.MetaDataClient.addColumn(MetaDataClient.java:2526)
        at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableAddColumnStatement$1.execute(PhoenixStatement.java:1055)
        at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:319)
        at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:311)
        at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
        at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:309)
        at org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1368)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl.addColumn(ConnectionQueryServicesImpl.java:1864)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl.addColumnsIfNotExists(ConnectionQueryServicesImpl.java:1890)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl.access$500(ConnectionQueryServicesImpl.java:179)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1979)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1896)
        at org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:78)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:1896)
        at org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:180)
        at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.java:132)
        at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:151)
        at sqlline.DatabaseConnection.connect(DatabaseConnection.java:157)
        at sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:203)
        at sqlline.Commands.connect(Commands.java:1064)
        at sqlline.Commands.connect(Commands.java:996)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:483)
        at sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:36)
        at sqlline.SqlLine.dispatch(SqlLine.java:804)
        at sqlline.SqlLine.initArgs(SqlLine.java:588)
        at sqlline.SqlLine.begin(SqlLine.java:656)
        at sqlline.SqlLine.start(SqlLine.java:398)
        at sqlline.SqlLine.main(SqlLine.java:292)
sqlline version 1.1.8


However, I was able to connect using the Phoenix 4.5 client jar and sqlline.py. Furthermore, after connecting once, I was able to connect using the Phoenix 4.6 client jar and sqlline.py, but sqlline.py identifies the server and client as “Phoenix 4.5”.

Looking at https://github.com/apache/phoenix/blob/c2cb510048fb07792d4639f211e98b8a95281f2f/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java#L1937, it looks like we do some checking on the version before creating some metadata.

Is there a reason the client jars from the build were not identified as greater than or equal to 4.6? Or is there something else going on?

Thanks,
Mark



RE: Phoenix 4.4 to 4.6 Client Errors

Posted by Mark Tse <Ma...@D2L.com>.
Thanks Samarth, James.

Will try https://builds.apache.org/view/All/job/Phoenix-4.x-HBase-0.98/876/ today.

Mark Tse

From: Samarth Jain [mailto:samarth@apache.org]
Sent: Friday, October 16, 2015 7:31 PM
To: user@phoenix.apache.org
Cc: James Taylor <ja...@apache.org>
Subject: Re: Phoenix 4.4 to 4.6 Client Errors

Thanks for reporting back, Mark. I have checked in the updated patch that should fix the error you are running into. After the fix (https://github.com/apache/phoenix/commit/416c860f7d9f3490d46169fa74656994b4fe27a8), I was able to successfully upgrade from 4.4 to 4.6 version of Phoenix.

On Fri, Oct 16, 2015 at 1:06 PM, James Taylor <ja...@apache.org>> wrote:
You'll likely need the addendum patch on that JIRA too, but Samarth could confirm.


On Friday, October 16, 2015, James Taylor <ja...@apache.org>> wrote:
Yes, you'd need that too.

On Friday, October 16, 2015, Mark Tse <Ma...@d2l.com>> wrote:
Hi James,

We tried taking build #866 (https://builds.apache.org/view/All/job/Phoenix-4.x-HBase-0.98/866/), and we are still getting the same error.

Is it possible we also need the changes at https://github.com/apache/phoenix/commit/567218ad2520869e8912b61f687305c81aa919cd?

Mark Tse

From: James Taylor [mailto:jamestaylor@apache.org]
Sent: Thursday, October 15, 2015 3:21 PM
To: user <us...@phoenix.apache.org>>
Subject: Re: Phoenix 4.4 to 4.6 Client Errors

Good catch, Mark. I filed PHOENIX-2326. We'll get this tweaked before we cut the RC.

On Thu, Oct 15, 2015 at 12:15 PM, Mark Tse <Ma...@d2l.com>> wrote:
Hi everyone,

I currently have Phoenix 4.4 installed on HBase 0.98, and am trying out a Phoenix 4.6 build (https://builds.apache.org/view/All/job/Phoenix-4.x-HBase-0.98/861/). I took the following steps:

- Replace the Phoenix 4.4 server jars in HBase lib folders for HBase master and RegionServers
- Restart HBase master and RegionServers

Attempting to connect with the Phoenix 4.6 client jar and sqlline.py causes the following error:

15/10/15 18:37:02 WARN query.ConnectionQueryServicesImpl: Add column failed due to:org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504 (42703): Undefined column. columnName=IS_ROW_TIMESTAMP
Error: ERROR 504 (42703): Undefined column. columnName=IS_ROW_TIMESTAMP (state=42703,code=504)
org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504 (42703): Undefined column. columnName=IS_ROW_TIMESTAMP
        at org.apache.phoenix.schema.PTableImpl.getColumn(PTableImpl.java:647)
        at org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.resolveColumn(FromCompiler.java:361)
        at org.apache.phoenix.compile.UpsertCompiler.compile(UpsertCompiler.java:386)
        at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:550)
        at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:538)
        at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:318)
        at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:311)
        at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
        at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:309)
        at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:239)
        at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:172)
        at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:177)
        at org.apache.phoenix.schema.MetaDataClient.addColumnMutation(MetaDataClient.java:685)
        at org.apache.phoenix.schema.MetaDataClient.addColumn(MetaDataClient.java:2526)
        at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableAddColumnStatement$1.execute(PhoenixStatement.java:1055)
        at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:319)
        at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:311)
        at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
        at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:309)
        at org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1368)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl.addColumn(ConnectionQueryServicesImpl.java:1864)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl.addColumnsIfNotExists(ConnectionQueryServicesImpl.java:1890)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl.access$500(ConnectionQueryServicesImpl.java:179)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1979)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1896)
        at org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:78)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:1896)
        at org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:180)
        at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.java:132)
        at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:151)
        at sqlline.DatabaseConnection.connect(DatabaseConnection.java:157)
        at sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:203)
        at sqlline.Commands.connect(Commands.java:1064)
        at sqlline.Commands.connect(Commands.java:996)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:483)
        at sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:36)
        at sqlline.SqlLine.dispatch(SqlLine.java:804)
        at sqlline.SqlLine.initArgs(SqlLine.java:588)
        at sqlline.SqlLine.begin(SqlLine.java:656)
        at sqlline.SqlLine.start(SqlLine.java:398)
        at sqlline.SqlLine.main(SqlLine.java:292)
sqlline version 1.1.8


However, I was able to connect using the Phoenix 4.5 client jar and sqlline.py. Furthermore, after connecting once, I was able to connect using the Phoenix 4.6 client jar and sqlline.py, but sqlline.py identifies the server and client as “Phoenix 4.5”.

Looking at https://github.com/apache/phoenix/blob/c2cb510048fb07792d4639f211e98b8a95281f2f/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java#L1937, it looks like we do some checking on the version before creating some metadata.

Is there a reason the client jars from the build were not identified as greater than or equal to 4.6? Or is there something else going on?

Thanks,
Mark




Re: Phoenix 4.4 to 4.6 Client Errors

Posted by Samarth Jain <sa...@apache.org>.
Thanks for reporting back, Mark. I have checked in the updated patch that
should fix the error you are running into. After the fix (
https://github.com/apache/phoenix/commit/416c860f7d9f3490d46169fa74656994b4fe27a8),
I was able to successfully upgrade from 4.4 to 4.6 version of Phoenix.

On Fri, Oct 16, 2015 at 1:06 PM, James Taylor <ja...@apache.org>
wrote:

> You'll likely need the addendum patch on that JIRA too, but Samarth could
> confirm.
>
>
> On Friday, October 16, 2015, James Taylor <ja...@apache.org> wrote:
>
>> Yes, you'd need that too.
>>
>> On Friday, October 16, 2015, Mark Tse <Ma...@d2l.com> wrote:
>>
>>> Hi James,
>>>
>>>
>>>
>>> We tried taking build #866 (
>>> https://builds.apache.org/view/All/job/Phoenix-4.x-HBase-0.98/866/),
>>> and we are still getting the same error.
>>>
>>>
>>>
>>> Is it possible we also need the changes at
>>> https://github.com/apache/phoenix/commit/567218ad2520869e8912b61f687305c81aa919cd
>>> ?
>>>
>>>
>>>
>>> Mark Tse
>>>
>>>
>>>
>>> *From:* James Taylor [mailto:jamestaylor@apache.org]
>>> *Sent:* Thursday, October 15, 2015 3:21 PM
>>> *To:* user <us...@phoenix.apache.org>
>>> *Subject:* Re: Phoenix 4.4 to 4.6 Client Errors
>>>
>>>
>>>
>>> Good catch, Mark. I filed PHOENIX-2326. We'll get this tweaked before we
>>> cut the RC.
>>>
>>>
>>>
>>> On Thu, Oct 15, 2015 at 12:15 PM, Mark Tse <Ma...@d2l.com> wrote:
>>>
>>> Hi everyone,
>>>
>>>
>>>
>>> I currently have Phoenix 4.4 installed on HBase 0.98, and am trying out
>>> a Phoenix 4.6 build (
>>> https://builds.apache.org/view/All/job/Phoenix-4.x-HBase-0.98/861/). I
>>> took the following steps:
>>>
>>>
>>>
>>> - Replace the Phoenix 4.4 server jars in HBase lib folders for HBase
>>> master and RegionServers
>>>
>>> - Restart HBase master and RegionServers
>>>
>>>
>>>
>>> Attempting to connect with the Phoenix 4.6 client jar and sqlline.py
>>> causes the following error:
>>>
>>>
>>>
>>> 15/10/15 18:37:02 WARN query.ConnectionQueryServicesImpl: Add column
>>> failed due to:org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504
>>> (42703): Undefined column. columnName=IS_ROW_TIMESTAMP
>>>
>>> Error: ERROR 504 (42703): Undefined column. columnName=IS_ROW_TIMESTAMP
>>> (state=42703,code=504)
>>>
>>> org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504 (42703):
>>> Undefined column. columnName=IS_ROW_TIMESTAMP
>>>
>>>         at
>>> org.apache.phoenix.schema.PTableImpl.getColumn(PTableImpl.java:647)
>>>
>>>         at
>>> org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.resolveColumn(FromCompiler.java:361)
>>>
>>>         at
>>> org.apache.phoenix.compile.UpsertCompiler.compile(UpsertCompiler.java:386)
>>>
>>>         at
>>> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:550)
>>>
>>>         at
>>> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:538)
>>>
>>>         at
>>> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:318)
>>>
>>>         at
>>> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:311)
>>>
>>>         at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
>>>
>>>         at
>>> org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:309)
>>>
>>>         at
>>> org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:239)
>>>
>>>         at
>>> org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:172)
>>>
>>>         at
>>> org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:177)
>>>
>>>         at
>>> org.apache.phoenix.schema.MetaDataClient.addColumnMutation(MetaDataClient.java:685)
>>>
>>>         at
>>> org.apache.phoenix.schema.MetaDataClient.addColumn(MetaDataClient.java:2526)
>>>
>>>         at
>>> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableAddColumnStatement$1.execute(PhoenixStatement.java:1055)
>>>
>>>         at
>>> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:319)
>>>
>>>         at
>>> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:311)
>>>
>>>         at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
>>>
>>>         at
>>> org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:309)
>>>
>>>         at
>>> org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1368)
>>>
>>>         at
>>> org.apache.phoenix.query.ConnectionQueryServicesImpl.addColumn(ConnectionQueryServicesImpl.java:1864)
>>>
>>>         at
>>> org.apache.phoenix.query.ConnectionQueryServicesImpl.addColumnsIfNotExists(ConnectionQueryServicesImpl.java:1890)
>>>
>>>         at
>>> org.apache.phoenix.query.ConnectionQueryServicesImpl.access$500(ConnectionQueryServicesImpl.java:179)
>>>
>>>         at
>>> org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1979)
>>>
>>>         at
>>> org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1896)
>>>
>>>         at
>>> org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:78)
>>>
>>>         at
>>> org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:1896)
>>>
>>>         at
>>> org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:180)
>>>
>>>         at
>>> org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.java:132)
>>>
>>>         at
>>> org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:151)
>>>
>>>         at
>>> sqlline.DatabaseConnection.connect(DatabaseConnection.java:157)
>>>
>>>         at
>>> sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:203)
>>>
>>>         at sqlline.Commands.connect(Commands.java:1064)
>>>
>>>         at sqlline.Commands.connect(Commands.java:996)
>>>
>>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>
>>>         at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>
>>>         at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>
>>>         at java.lang.reflect.Method.invoke(Method.java:483)
>>>
>>>         at
>>> sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:36)
>>>
>>>         at sqlline.SqlLine.dispatch(SqlLine.java:804)
>>>
>>>         at sqlline.SqlLine.initArgs(SqlLine.java:588)
>>>
>>>         at sqlline.SqlLine.begin(SqlLine.java:656)
>>>
>>>         at sqlline.SqlLine.start(SqlLine.java:398)
>>>
>>>         at sqlline.SqlLine.main(SqlLine.java:292)
>>>
>>> sqlline version 1.1.8
>>>
>>>
>>>
>>>
>>>
>>> However, I was able to connect using the Phoenix 4.5 client jar and
>>> sqlline.py. Furthermore, after connecting once, I was able to connect using
>>> the Phoenix 4.6 client jar and sqlline.py, but sqlline.py identifies the
>>> server and client as “Phoenix 4.5”.
>>>
>>>
>>>
>>> Looking at
>>> https://github.com/apache/phoenix/blob/c2cb510048fb07792d4639f211e98b8a95281f2f/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java#L1937,
>>> it looks like we do some checking on the version before creating some
>>> metadata.
>>>
>>>
>>>
>>> Is there a reason the client jars from the build were not identified as
>>> greater than or equal to 4.6? Or is there something else going on?
>>>
>>>
>>>
>>> Thanks,
>>>
>>> Mark
>>>
>>>
>>>
>>>
>>>
>>

Re: Phoenix 4.4 to 4.6 Client Errors

Posted by James Taylor <ja...@apache.org>.
You'll likely need the addendum patch on that JIRA too, but Samarth could
confirm.

On Friday, October 16, 2015, James Taylor <ja...@apache.org> wrote:

> Yes, you'd need that too.
>
> On Friday, October 16, 2015, Mark Tse <Mark.Tse@d2l.com
> <javascript:_e(%7B%7D,'cvml','Mark.Tse@d2l.com');>> wrote:
>
>> Hi James,
>>
>>
>>
>> We tried taking build #866 (
>> https://builds.apache.org/view/All/job/Phoenix-4.x-HBase-0.98/866/), and
>> we are still getting the same error.
>>
>>
>>
>> Is it possible we also need the changes at
>> https://github.com/apache/phoenix/commit/567218ad2520869e8912b61f687305c81aa919cd
>> ?
>>
>>
>>
>> Mark Tse
>>
>>
>>
>> *From:* James Taylor [mailto:jamestaylor@apache.org]
>> *Sent:* Thursday, October 15, 2015 3:21 PM
>> *To:* user <us...@phoenix.apache.org>
>> *Subject:* Re: Phoenix 4.4 to 4.6 Client Errors
>>
>>
>>
>> Good catch, Mark. I filed PHOENIX-2326. We'll get this tweaked before we
>> cut the RC.
>>
>>
>>
>> On Thu, Oct 15, 2015 at 12:15 PM, Mark Tse <Ma...@d2l.com> wrote:
>>
>> Hi everyone,
>>
>>
>>
>> I currently have Phoenix 4.4 installed on HBase 0.98, and am trying out a
>> Phoenix 4.6 build (
>> https://builds.apache.org/view/All/job/Phoenix-4.x-HBase-0.98/861/). I
>> took the following steps:
>>
>>
>>
>> - Replace the Phoenix 4.4 server jars in HBase lib folders for HBase
>> master and RegionServers
>>
>> - Restart HBase master and RegionServers
>>
>>
>>
>> Attempting to connect with the Phoenix 4.6 client jar and sqlline.py
>> causes the following error:
>>
>>
>>
>> 15/10/15 18:37:02 WARN query.ConnectionQueryServicesImpl: Add column
>> failed due to:org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504
>> (42703): Undefined column. columnName=IS_ROW_TIMESTAMP
>>
>> Error: ERROR 504 (42703): Undefined column. columnName=IS_ROW_TIMESTAMP
>> (state=42703,code=504)
>>
>> org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504 (42703):
>> Undefined column. columnName=IS_ROW_TIMESTAMP
>>
>>         at
>> org.apache.phoenix.schema.PTableImpl.getColumn(PTableImpl.java:647)
>>
>>         at
>> org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.resolveColumn(FromCompiler.java:361)
>>
>>         at
>> org.apache.phoenix.compile.UpsertCompiler.compile(UpsertCompiler.java:386)
>>
>>         at
>> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:550)
>>
>>         at
>> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:538)
>>
>>         at
>> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:318)
>>
>>         at
>> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:311)
>>
>>         at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
>>
>>         at
>> org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:309)
>>
>>         at
>> org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:239)
>>
>>         at
>> org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:172)
>>
>>         at
>> org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:177)
>>
>>         at
>> org.apache.phoenix.schema.MetaDataClient.addColumnMutation(MetaDataClient.java:685)
>>
>>         at
>> org.apache.phoenix.schema.MetaDataClient.addColumn(MetaDataClient.java:2526)
>>
>>         at
>> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableAddColumnStatement$1.execute(PhoenixStatement.java:1055)
>>
>>         at
>> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:319)
>>
>>         at
>> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:311)
>>
>>         at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
>>
>>         at
>> org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:309)
>>
>>         at
>> org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1368)
>>
>>         at
>> org.apache.phoenix.query.ConnectionQueryServicesImpl.addColumn(ConnectionQueryServicesImpl.java:1864)
>>
>>         at
>> org.apache.phoenix.query.ConnectionQueryServicesImpl.addColumnsIfNotExists(ConnectionQueryServicesImpl.java:1890)
>>
>>         at
>> org.apache.phoenix.query.ConnectionQueryServicesImpl.access$500(ConnectionQueryServicesImpl.java:179)
>>
>>         at
>> org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1979)
>>
>>         at
>> org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1896)
>>
>>         at
>> org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:78)
>>
>>         at
>> org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:1896)
>>
>>         at
>> org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:180)
>>
>>         at
>> org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.java:132)
>>
>>         at
>> org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:151)
>>
>>         at sqlline.DatabaseConnection.connect(DatabaseConnection.java:157)
>>
>>         at
>> sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:203)
>>
>>         at sqlline.Commands.connect(Commands.java:1064)
>>
>>         at sqlline.Commands.connect(Commands.java:996)
>>
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>
>>         at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>
>>         at java.lang.reflect.Method.invoke(Method.java:483)
>>
>>         at
>> sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:36)
>>
>>         at sqlline.SqlLine.dispatch(SqlLine.java:804)
>>
>>         at sqlline.SqlLine.initArgs(SqlLine.java:588)
>>
>>         at sqlline.SqlLine.begin(SqlLine.java:656)
>>
>>         at sqlline.SqlLine.start(SqlLine.java:398)
>>
>>         at sqlline.SqlLine.main(SqlLine.java:292)
>>
>> sqlline version 1.1.8
>>
>>
>>
>>
>>
>> However, I was able to connect using the Phoenix 4.5 client jar and
>> sqlline.py. Furthermore, after connecting once, I was able to connect using
>> the Phoenix 4.6 client jar and sqlline.py, but sqlline.py identifies the
>> server and client as “Phoenix 4.5”.
>>
>>
>>
>> Looking at
>> https://github.com/apache/phoenix/blob/c2cb510048fb07792d4639f211e98b8a95281f2f/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java#L1937,
>> it looks like we do some checking on the version before creating some
>> metadata.
>>
>>
>>
>> Is there a reason the client jars from the build were not identified as
>> greater than or equal to 4.6? Or is there something else going on?
>>
>>
>>
>> Thanks,
>>
>> Mark
>>
>>
>>
>>
>>
>

Re: Phoenix 4.4 to 4.6 Client Errors

Posted by James Taylor <ja...@apache.org>.
Yes, you'd need that too.

On Friday, October 16, 2015, Mark Tse <Ma...@d2l.com> wrote:

> Hi James,
>
>
>
> We tried taking build #866 (
> https://builds.apache.org/view/All/job/Phoenix-4.x-HBase-0.98/866/), and
> we are still getting the same error.
>
>
>
> Is it possible we also need the changes at
> https://github.com/apache/phoenix/commit/567218ad2520869e8912b61f687305c81aa919cd
> ?
>
>
>
> Mark Tse
>
>
>
> *From:* James Taylor [mailto:jamestaylor@apache.org
> <javascript:_e(%7B%7D,'cvml','jamestaylor@apache.org');>]
> *Sent:* Thursday, October 15, 2015 3:21 PM
> *To:* user <user@phoenix.apache.org
> <javascript:_e(%7B%7D,'cvml','user@phoenix.apache.org');>>
> *Subject:* Re: Phoenix 4.4 to 4.6 Client Errors
>
>
>
> Good catch, Mark. I filed PHOENIX-2326. We'll get this tweaked before we
> cut the RC.
>
>
>
> On Thu, Oct 15, 2015 at 12:15 PM, Mark Tse <Mark.Tse@d2l.com
> <javascript:_e(%7B%7D,'cvml','Mark.Tse@d2l.com');>> wrote:
>
> Hi everyone,
>
>
>
> I currently have Phoenix 4.4 installed on HBase 0.98, and am trying out a
> Phoenix 4.6 build (
> https://builds.apache.org/view/All/job/Phoenix-4.x-HBase-0.98/861/). I
> took the following steps:
>
>
>
> - Replace the Phoenix 4.4 server jars in HBase lib folders for HBase
> master and RegionServers
>
> - Restart HBase master and RegionServers
>
>
>
> Attempting to connect with the Phoenix 4.6 client jar and sqlline.py
> causes the following error:
>
>
>
> 15/10/15 18:37:02 WARN query.ConnectionQueryServicesImpl: Add column
> failed due to:org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504
> (42703): Undefined column. columnName=IS_ROW_TIMESTAMP
>
> Error: ERROR 504 (42703): Undefined column. columnName=IS_ROW_TIMESTAMP
> (state=42703,code=504)
>
> org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504 (42703):
> Undefined column. columnName=IS_ROW_TIMESTAMP
>
>         at
> org.apache.phoenix.schema.PTableImpl.getColumn(PTableImpl.java:647)
>
>         at
> org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.resolveColumn(FromCompiler.java:361)
>
>         at
> org.apache.phoenix.compile.UpsertCompiler.compile(UpsertCompiler.java:386)
>
>         at
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:550)
>
>         at
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:538)
>
>         at
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:318)
>
>         at
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:311)
>
>         at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
>
>         at
> org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:309)
>
>         at
> org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:239)
>
>         at
> org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:172)
>
>         at
> org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:177)
>
>         at
> org.apache.phoenix.schema.MetaDataClient.addColumnMutation(MetaDataClient.java:685)
>
>         at
> org.apache.phoenix.schema.MetaDataClient.addColumn(MetaDataClient.java:2526)
>
>         at
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableAddColumnStatement$1.execute(PhoenixStatement.java:1055)
>
>         at
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:319)
>
>         at
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:311)
>
>         at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
>
>         at
> org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:309)
>
>         at
> org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1368)
>
>         at
> org.apache.phoenix.query.ConnectionQueryServicesImpl.addColumn(ConnectionQueryServicesImpl.java:1864)
>
>         at
> org.apache.phoenix.query.ConnectionQueryServicesImpl.addColumnsIfNotExists(ConnectionQueryServicesImpl.java:1890)
>
>         at
> org.apache.phoenix.query.ConnectionQueryServicesImpl.access$500(ConnectionQueryServicesImpl.java:179)
>
>         at
> org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1979)
>
>         at
> org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1896)
>
>         at
> org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:78)
>
>         at
> org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:1896)
>
>         at
> org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:180)
>
>         at
> org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.java:132)
>
>         at
> org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:151)
>
>         at sqlline.DatabaseConnection.connect(DatabaseConnection.java:157)
>
>         at
> sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:203)
>
>         at sqlline.Commands.connect(Commands.java:1064)
>
>         at sqlline.Commands.connect(Commands.java:996)
>
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>
>         at java.lang.reflect.Method.invoke(Method.java:483)
>
>         at
> sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:36)
>
>         at sqlline.SqlLine.dispatch(SqlLine.java:804)
>
>         at sqlline.SqlLine.initArgs(SqlLine.java:588)
>
>         at sqlline.SqlLine.begin(SqlLine.java:656)
>
>         at sqlline.SqlLine.start(SqlLine.java:398)
>
>         at sqlline.SqlLine.main(SqlLine.java:292)
>
> sqlline version 1.1.8
>
>
>
>
>
> However, I was able to connect using the Phoenix 4.5 client jar and
> sqlline.py. Furthermore, after connecting once, I was able to connect using
> the Phoenix 4.6 client jar and sqlline.py, but sqlline.py identifies the
> server and client as “Phoenix 4.5”.
>
>
>
> Looking at
> https://github.com/apache/phoenix/blob/c2cb510048fb07792d4639f211e98b8a95281f2f/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java#L1937,
> it looks like we do some checking on the version before creating some
> metadata.
>
>
>
> Is there a reason the client jars from the build were not identified as
> greater than or equal to 4.6? Or is there something else going on?
>
>
>
> Thanks,
>
> Mark
>
>
>
>
>

RE: Phoenix 4.4 to 4.6 Client Errors

Posted by Mark Tse <Ma...@D2L.com>.
Hi James,

We tried taking build #866 (https://builds.apache.org/view/All/job/Phoenix-4.x-HBase-0.98/866/), and we are still getting the same error.

Is it possible we also need the changes at https://github.com/apache/phoenix/commit/567218ad2520869e8912b61f687305c81aa919cd?

Mark Tse

From: James Taylor [mailto:jamestaylor@apache.org]
Sent: Thursday, October 15, 2015 3:21 PM
To: user <us...@phoenix.apache.org>
Subject: Re: Phoenix 4.4 to 4.6 Client Errors

Good catch, Mark. I filed PHOENIX-2326. We'll get this tweaked before we cut the RC.

On Thu, Oct 15, 2015 at 12:15 PM, Mark Tse <Ma...@d2l.com>> wrote:
Hi everyone,

I currently have Phoenix 4.4 installed on HBase 0.98, and am trying out a Phoenix 4.6 build (https://builds.apache.org/view/All/job/Phoenix-4.x-HBase-0.98/861/). I took the following steps:

- Replace the Phoenix 4.4 server jars in HBase lib folders for HBase master and RegionServers
- Restart HBase master and RegionServers

Attempting to connect with the Phoenix 4.6 client jar and sqlline.py causes the following error:

15/10/15 18:37:02 WARN query.ConnectionQueryServicesImpl: Add column failed due to:org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504 (42703): Undefined column. columnName=IS_ROW_TIMESTAMP
Error: ERROR 504 (42703): Undefined column. columnName=IS_ROW_TIMESTAMP (state=42703,code=504)
org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504 (42703): Undefined column. columnName=IS_ROW_TIMESTAMP
        at org.apache.phoenix.schema.PTableImpl.getColumn(PTableImpl.java:647)
        at org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.resolveColumn(FromCompiler.java:361)
        at org.apache.phoenix.compile.UpsertCompiler.compile(UpsertCompiler.java:386)
        at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:550)
        at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:538)
        at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:318)
        at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:311)
        at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
        at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:309)
        at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:239)
        at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:172)
        at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:177)
        at org.apache.phoenix.schema.MetaDataClient.addColumnMutation(MetaDataClient.java:685)
        at org.apache.phoenix.schema.MetaDataClient.addColumn(MetaDataClient.java:2526)
        at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableAddColumnStatement$1.execute(PhoenixStatement.java:1055)
        at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:319)
        at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:311)
        at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
        at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:309)
        at org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1368)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl.addColumn(ConnectionQueryServicesImpl.java:1864)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl.addColumnsIfNotExists(ConnectionQueryServicesImpl.java:1890)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl.access$500(ConnectionQueryServicesImpl.java:179)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1979)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1896)
        at org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:78)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:1896)
        at org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:180)
        at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.java:132)
        at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:151)
        at sqlline.DatabaseConnection.connect(DatabaseConnection.java:157)
        at sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:203)
        at sqlline.Commands.connect(Commands.java:1064)
        at sqlline.Commands.connect(Commands.java:996)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:483)
        at sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:36)
        at sqlline.SqlLine.dispatch(SqlLine.java:804)
        at sqlline.SqlLine.initArgs(SqlLine.java:588)
        at sqlline.SqlLine.begin(SqlLine.java:656)
        at sqlline.SqlLine.start(SqlLine.java:398)
        at sqlline.SqlLine.main(SqlLine.java:292)
sqlline version 1.1.8


However, I was able to connect using the Phoenix 4.5 client jar and sqlline.py. Furthermore, after connecting once, I was able to connect using the Phoenix 4.6 client jar and sqlline.py, but sqlline.py identifies the server and client as “Phoenix 4.5”.

Looking at https://github.com/apache/phoenix/blob/c2cb510048fb07792d4639f211e98b8a95281f2f/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java#L1937, it looks like we do some checking on the version before creating some metadata.

Is there a reason the client jars from the build were not identified as greater than or equal to 4.6? Or is there something else going on?

Thanks,
Mark



Re: Phoenix 4.4 to 4.6 Client Errors

Posted by James Taylor <ja...@apache.org>.
Good catch, Mark. I filed PHOENIX-2326. We'll get this tweaked before we
cut the RC.

On Thu, Oct 15, 2015 at 12:15 PM, Mark Tse <Ma...@d2l.com> wrote:

> Hi everyone,
>
>
>
> I currently have Phoenix 4.4 installed on HBase 0.98, and am trying out a
> Phoenix 4.6 build (
> https://builds.apache.org/view/All/job/Phoenix-4.x-HBase-0.98/861/). I
> took the following steps:
>
>
>
> - Replace the Phoenix 4.4 server jars in HBase lib folders for HBase
> master and RegionServers
>
> - Restart HBase master and RegionServers
>
>
>
> Attempting to connect with the Phoenix 4.6 client jar and sqlline.py
> causes the following error:
>
>
>
> 15/10/15 18:37:02 WARN query.ConnectionQueryServicesImpl: Add column
> failed due to:org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504
> (42703): Undefined column. columnName=IS_ROW_TIMESTAMP
>
> Error: ERROR 504 (42703): Undefined column. columnName=IS_ROW_TIMESTAMP
> (state=42703,code=504)
>
> org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504 (42703):
> Undefined column. columnName=IS_ROW_TIMESTAMP
>
>         at
> org.apache.phoenix.schema.PTableImpl.getColumn(PTableImpl.java:647)
>
>         at
> org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.resolveColumn(FromCompiler.java:361)
>
>         at
> org.apache.phoenix.compile.UpsertCompiler.compile(UpsertCompiler.java:386)
>
>         at
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:550)
>
>         at
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:538)
>
>         at
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:318)
>
>         at
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:311)
>
>         at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
>
>         at
> org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:309)
>
>         at
> org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:239)
>
>         at
> org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:172)
>
>         at
> org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:177)
>
>         at
> org.apache.phoenix.schema.MetaDataClient.addColumnMutation(MetaDataClient.java:685)
>
>         at
> org.apache.phoenix.schema.MetaDataClient.addColumn(MetaDataClient.java:2526)
>
>         at
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableAddColumnStatement$1.execute(PhoenixStatement.java:1055)
>
>         at
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:319)
>
>         at
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:311)
>
>         at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
>
>         at
> org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:309)
>
>         at
> org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1368)
>
>         at
> org.apache.phoenix.query.ConnectionQueryServicesImpl.addColumn(ConnectionQueryServicesImpl.java:1864)
>
>         at
> org.apache.phoenix.query.ConnectionQueryServicesImpl.addColumnsIfNotExists(ConnectionQueryServicesImpl.java:1890)
>
>         at
> org.apache.phoenix.query.ConnectionQueryServicesImpl.access$500(ConnectionQueryServicesImpl.java:179)
>
>         at
> org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1979)
>
>         at
> org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1896)
>
>         at
> org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:78)
>
>         at
> org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:1896)
>
>         at
> org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:180)
>
>         at
> org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.java:132)
>
>         at
> org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:151)
>
>         at sqlline.DatabaseConnection.connect(DatabaseConnection.java:157)
>
>         at
> sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:203)
>
>         at sqlline.Commands.connect(Commands.java:1064)
>
>         at sqlline.Commands.connect(Commands.java:996)
>
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>
>         at java.lang.reflect.Method.invoke(Method.java:483)
>
>         at
> sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:36)
>
>         at sqlline.SqlLine.dispatch(SqlLine.java:804)
>
>         at sqlline.SqlLine.initArgs(SqlLine.java:588)
>
>         at sqlline.SqlLine.begin(SqlLine.java:656)
>
>         at sqlline.SqlLine.start(SqlLine.java:398)
>
>         at sqlline.SqlLine.main(SqlLine.java:292)
>
> sqlline version 1.1.8
>
>
>
>
>
> However, I was able to connect using the Phoenix 4.5 client jar and
> sqlline.py. Furthermore, after connecting once, I was able to connect using
> the Phoenix 4.6 client jar and sqlline.py, but sqlline.py identifies the
> server and client as “Phoenix 4.5”.
>
>
>
> Looking at
> https://github.com/apache/phoenix/blob/c2cb510048fb07792d4639f211e98b8a95281f2f/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java#L1937,
> it looks like we do some checking on the version before creating some
> metadata.
>
>
>
> Is there a reason the client jars from the build were not identified as
> greater than or equal to 4.6? Or is there something else going on?
>
>
>
> Thanks,
>
> Mark
>
>
>