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

Choi JaeHwan commented on PHOENIX-4526:
---------------------------------------

[~sergey.soldatov]

tanks you comment.

The hive internally converts to lowercase if the column name is uppercase.
What about having a consistency because it does not do this for properties?

> PhoenixStorageHandler doesn't work with upper case in phoenix.rowkeys
> ---------------------------------------------------------------------
>
>                 Key: PHOENIX-4526
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4526
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Choi JaeHwan
>            Priority: Major
>              Labels: HivePhoenix
>         Attachments: PHOENIX-4526.patch
>
>
> If you write phoenix rowkey in uppercase, you will get the following error.
> The field column name changes from hive to lowercase, but not to the 
> phoenix.rowkeys property.
> {code}
> CREATE TABLE `PROFILE_PHOENIX_CLONE4` (
>       USER_ID STRING COMMENT 'from deserializer'
>       ,MARRIED STRING COMMENT 'from deserializer'
>       ,USER_NAME STRING COMMENT 'from deserializer'
>       ,BIRTH STRING COMMENT 'from deserializer'
>       ,WEIGHT FLOAT COMMENT 'from deserializer'
>       ,HEIGHT DOUBLE COMMENT 'from deserializer'
>       ,CHILD STRING COMMENT 'from deserializer'
>       ,IS_MALE BOOLEAN COMMENT 'from deserializer'
>       ,PHONE STRING COMMENT 'from deserializer'
>       ,EMAIL STRING COMMENT 'from deserializer'
>       ,CREATE_TIME TIMESTAMP COMMENT 'from deserializer'
> ) COMMENT '한글 HBase 테이블'
> STORED BY 'org.apache.phoenix.hive.PhoenixStorageHandler' 
> TBLPROPERTIES (
>       "phoenix.table.name"="jackdb_PROFILE_PHOENIX_CLONE4"
>       ,"phoenix.zookeeper.quorum"="qa3.nexr.com,qa4.nexr.com,qa5.nexr.com"
>       ,"phoenix.rowkeys"="USER_ID,MARRIED"
>       ,"phoenix.zookeeper.client.port"="2181"
>       ,"phoenix.zookeeper.znode.parent"="/hbase"
>       
> ,"phoenix.column.mapping"="USER_ID:USER_ID,MARRIED:MARRIED,USER_NAME:USER_NAME,BIRTH:BIRTH,WEIGHT:WEIGHT,HEIGHT:HEIGHT,CHILD:CHILD,IS_MALE:IS_MALE,PHONE:PHONE,EMAIL:EMAIL,CREATE_TIME:CREATE_TIME"
>       ,"ndap.table.storageType"="PHOENIX"
>       ,"phoenix.table.options"="SALT_BUCKETS=10,DATA_BLOCK_ENCODING='DIFF'"
> )
> {code}
> {code}
> 2018-01-04T10:37:50,186 INFO  [HiveServer2-Background-Pool: Thread-10310]: 
> ql.Driver (Driver.java:execute(1735)) - Executing 
> command(queryId=hive_20180104103750_424baf0b-141a-450c-ae78-8f9be8a743a8): 
> CREATE TABLE `jackdb`.`PROFILE_PHOENIX_CLONE4` (
>       USER_ID STRING COMMENT 'from deserializer'
>       ,MARRIED STRING COMMENT 'from deserializer'
>       ,USER_NAME STRING COMMENT 'from deserializer'
>       ,BIRTH STRING COMMENT 'from deserializer'
>       ,WEIGHT FLOAT COMMENT 'from deserializer'
>       ,HEIGHT DOUBLE COMMENT 'from deserializer'
>       ,CHILD STRING COMMENT 'from deserializer'
>       ,IS_MALE BOOLEAN COMMENT 'from deserializer'
>       ,PHONE STRING COMMENT 'from deserializer'
>       ,EMAIL STRING COMMENT 'from deserializer'
>       ,CREATE_TIME TIMESTAMP COMMENT 'from deserializer'
> ) COMMENT '한글 HBase 테이블'
> STORED BY 'org.apache.phoenix.hive.PhoenixStorageHandler' 
> TBLPROPERTIES (
>       "phoenix.table.name"="jackdb_PROFILE_PHOENIX_CLONE4"
>       ,"phoenix.zookeeper.quorum"="qa3.nexr.com,qa4.nexr.com,qa5.nexr.com"
>       ,"phoenix.rowkeys"="USER_ID,MARRIED"
>       ,"phoenix.zookeeper.client.port"="2181"
>       ,"phoenix.zookeeper.znode.parent"="/hbase"
>       
> ,"phoenix.column.mapping"="USER_ID:USER_ID,MARRIED:MARRIED,USER_NAME:USER_NAME,BIRTH:BIRTH,WEIGHT:WEIGHT,HEIGHT:HEIGHT,CHILD:CHILD,IS_MALE:IS_MALE,PHONE:PHONE,EMAIL:EMAIL,CREATE_TIME:CREATE_TIME"
>       ,"ndap.table.storageType"="PHOENIX"
>       ,"phoenix.table.options"="SALT_BUCKETS=10,DATA_BLOCK_ENCODING='DIFF'"
> )
> 2018-01-04T10:37:50,189 INFO  [HiveServer2-Background-Pool: Thread-10310]: 
> ql.Driver (Driver.java:launchTask(2181)) - Starting task [Stage-0:DDL] in 
> serial mode
> 2018-01-04T10:37:50,224 INFO  [HiveServer2-Background-Pool: Thread-10310]: 
> plan.CreateTableDesc (CreateTableDesc.java:toTable(717)) - Use 
> StorageHandler-supplied org.apache.phoenix.hive.PhoenixSerDe for table 
> PROFILE_PHOENIX_CLONE4
> 2018-01-04T10:37:50,225 INFO  [HiveServer2-Background-Pool: Thread-10310]: 
> exec.DDLTask (DDLTask.java:createTable(4324)) - creating table 
> jackdb.PROFILE_PHOENIX_CLONE4 on null
> 2018-01-04T10:37:50,294 ERROR [HiveServer2-Background-Pool: Thread-10310]: 
> exec.DDLTask (DDLTask.java:failed(639)) - 
> org.apache.hadoop.hive.ql.metadata.HiveException: 
> java.lang.StringIndexOutOfBoundsException: String index out of range: -1
>       at org.apache.hadoop.hive.ql.metadata.Hive.createTable(Hive.java:862)
>       at org.apache.hadoop.hive.ql.metadata.Hive.createTable(Hive.java:867)
>       at org.apache.hadoop.hive.ql.exec.DDLTask.createTable(DDLTask.java:4356)
>       at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:354)
>       at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:199)
>       at 
> org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:100)
>       at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:2183)
>       at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1839)
>       at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1526)
>       at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1237)
>       at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1232)
>       at 
> org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:255)
>       at 
> org.apache.hive.service.cli.operation.SQLOperation.access$800(SQLOperation.java:91)
>       at 
> org.apache.hive.service.cli.operation.SQLOperation$BackgroundWork$1.run(SQLOperation.java:348)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at javax.security.auth.Subject.doAs(Subject.java:422)
>       at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1746)
>       at 
> org.apache.hive.service.cli.operation.SQLOperation$BackgroundWork.run(SQLOperation.java:362)
>       at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>       at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.StringIndexOutOfBoundsException: String index out of 
> range: -1
>       at 
> java.lang.AbstractStringBuilder.deleteCharAt(AbstractStringBuilder.java:824)
>       at java.lang.StringBuilder.deleteCharAt(StringBuilder.java:253)
>       at 
> org.apache.phoenix.hive.PhoenixMetaHook.createTableStatement(PhoenixMetaHook.java:157)
>       at 
> org.apache.phoenix.hive.PhoenixMetaHook.preCreateTable(PhoenixMetaHook.java:75)
>       at 
> org.apache.hadoop.hive.metastore.HiveMetaStoreClient.createTable(HiveMetaStoreClient.java:747)
>       at 
> org.apache.hadoop.hive.metastore.HiveMetaStoreClient.createTable(HiveMetaStoreClient.java:740)
>       at sun.reflect.GeneratedMethodAccessor210.invoke(Unknown Source)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:498)
>       at 
> org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.invoke(RetryingMetaStoreClient.java:173)
>       at com.sun.proxy.$Proxy51.createTable(Unknown Source)
>       at org.apache.hadoop.hive.ql.metadata.Hive.createTable(Hive.java:852)
>       ... 22 more
> 2018-01-04T10:37:50,295 ERROR [HiveServer2-Background-Pool: Thread-10310]: 
> ql.Driver (SessionState.java:printError(1126)) - FAILED: Execution Error, 
> return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. 
> java.lang.StringIndexOutOfBoundsException: String index out of range: -1
> 2018-01-04T10:37:50,296 INFO  [HiveServer2-Background-Pool: Thread-10310]: 
> ql.Driver (Driver.java:execute(2050)) - Completed executing 
> command(queryId=hive_20180104103750_424baf0b-141a-450c-ae78-8f9be8a743a8); 
> Time taken: 0.11 seconds
> 2018-01-04T10:37:50,298 ERROR [HiveServer2-Background-Pool: Thread-10310]: 
> operation.Operation (SQLOperation.java:run(352)) - Error running hive query: 
> org.apache.hive.service.cli.HiveSQLException: Error while processing 
> statement: FAILED: Execution Error, return code 1 from 
> org.apache.hadoop.hive.ql.exec.DDLTask. 
> java.lang.StringIndexOutOfBoundsException: String index out of range: -1
>       at 
> org.apache.hive.service.cli.operation.Operation.toSQLException(Operation.java:380)
>  ~[hive-service-2.3.2.jar:2.3.2]
>       at 
> org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:257)
>  ~[hive-service-2.3.2.jar:2.3.2]
>       at 
> org.apache.hive.service.cli.operation.SQLOperation.access$800(SQLOperation.java:91)
>  ~[hive-service-2.3.2.jar:2.3.2]
>       at 
> org.apache.hive.service.cli.operation.SQLOperation$BackgroundWork$1.run(SQLOperation.java:348)
>  [hive-service-2.3.2.jar:2.3.2]
>       at java.security.AccessController.doPrivileged(Native Method) 
> ~[?:1.8.0_151]
>       at javax.security.auth.Subject.doAs(Subject.java:422) [?:1.8.0_151]
>       at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1746)
>  [hadoop-common-2.7.4.jar:?]
>       at 
> org.apache.hive.service.cli.operation.SQLOperation$BackgroundWork.run(SQLOperation.java:362)
>  [hive-service-2.3.2.jar:2.3.2]
>       at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> [?:1.8.0_151]
>       at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
> [?:1.8.0_151]
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  [?:1.8.0_151]
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  [?:1.8.0_151]
>       at java.lang.Thread.run(Thread.java:748) [?:1.8.0_151]
> Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: 
> java.lang.StringIndexOutOfBoundsException: String index out of range: -1
>       at org.apache.hadoop.hive.ql.metadata.Hive.createTable(Hive.java:862) 
> ~[hive-exec-2.3.2.jar:2.3.2]
>       at org.apache.hadoop.hive.ql.metadata.Hive.createTable(Hive.java:867) 
> ~[hive-exec-2.3.2.jar:2.3.2]
>       at 
> org.apache.hadoop.hive.ql.exec.DDLTask.createTable(DDLTask.java:4356) 
> ~[hive-exec-2.3.2.jar:2.3.2]
>       at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:354) 
> ~[hive-exec-2.3.2.jar:2.3.2]
>       at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:199) 
> ~[hive-exec-2.3.2.jar:2.3.2]
>       at 
> org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:100) 
> ~[hive-exec-2.3.2.jar:2.3.2]
>       at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:2183) 
> ~[hive-exec-2.3.2.jar:2.3.2]
>       at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1839) 
> ~[hive-exec-2.3.2.jar:2.3.2]
>       at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1526) 
> ~[hive-exec-2.3.2.jar:2.3.2]
>       at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1237) 
> ~[hive-exec-2.3.2.jar:2.3.2]
>       at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1232) 
> ~[hive-exec-2.3.2.jar:2.3.2]
>       at 
> org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:255)
>  ~[hive-service-2.3.2.jar:2.3.2]
>       ... 11 more
> Caused by: java.lang.StringIndexOutOfBoundsException: String index out of 
> range: -1
>       at 
> java.lang.AbstractStringBuilder.deleteCharAt(AbstractStringBuilder.java:824) 
> ~[?:1.8.0_151]
>       at java.lang.StringBuilder.deleteCharAt(StringBuilder.java:253) 
> ~[?:1.8.0_151]
>       at 
> org.apache.phoenix.hive.PhoenixMetaHook.createTableStatement(PhoenixMetaHook.java:157)
>  ~[phoenix-4.12.0-HBase-1.2-hive.jar:?]
>       at 
> org.apache.phoenix.hive.PhoenixMetaHook.preCreateTable(PhoenixMetaHook.java:75)
>  ~[phoenix-4.12.0-HBase-1.2-hive.jar:?]
>       at 
> org.apache.hadoop.hive.metastore.HiveMetaStoreClient.createTable(HiveMetaStoreClient.java:747)
>  ~[hive-exec-2.3.2.jar:2.3.2]
>       at 
> org.apache.hadoop.hive.metastore.HiveMetaStoreClient.createTable(HiveMetaStoreClient.java:740)
>  ~[hive-exec-2.3.2.jar:2.3.2]
>       at sun.reflect.GeneratedMethodAccessor210.invoke(Unknown Source) ~[?:?]
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  ~[?:1.8.0_151]
>       at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_151]
>       at 
> org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.invoke(RetryingMetaStoreClient.java:173)
>  ~[hive-exec-2.3.2.jar:2.3.2]
>       at com.sun.proxy.$Proxy51.createTable(Unknown Source) ~[?:?]
>       at org.apache.hadoop.hive.ql.metadata.Hive.createTable(Hive.java:852) 
> ~[hive-exec-2.3.2.jar:2.3.2]
>       at org.apache.hadoop.hive.ql.metadata.Hive.createTable(Hive.java:867) 
> ~[hive-exec-2.3.2.jar:2.3.2]
>       at 
> org.apache.hadoop.hive.ql.exec.DDLTask.createTable(DDLTask.java:4356) 
> ~[hive-exec-2.3.2.jar:2.3.2]
>       at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:354) 
> ~[hive-exec-2.3.2.jar:2.3.2]
>       at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:199) 
> ~[hive-exec-2.3.2.jar:2.3.2]
>       at 
> org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:100) 
> ~[hive-exec-2.3.2.jar:2.3.2]
>       at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:2183) 
> ~[hive-exec-2.3.2.jar:2.3.2]
>       at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1839) 
> ~[hive-exec-2.3.2.jar:2.3.2]
>       at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1526) 
> ~[hive-exec-2.3.2.jar:2.3.2]
>       at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1237) 
> ~[hive-exec-2.3.2.jar:2.3.2]
>       at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1232) 
> ~[hive-exec-2.3.2.jar:2.3.2]
>       at 
> org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:255)
>  ~[hive-service-2.3.2.jar:2.3.2]
>       ... 11 more
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to