[jira] [Commented] (PHOENIX-4630) Reverse scan with row_timestamp does not working

2018-02-28 Thread Hudson (JIRA)

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

Hudson commented on PHOENIX-4630:
-

FAILURE: Integrated in Jenkins build Phoenix-4.x-HBase-1.3 #49 (See 
[https://builds.apache.org/job/Phoenix-4.x-HBase-1.3/49/])
PHOENIX-4630 Reverse scan with row_timestamp does not working (chenglei: rev 
7b5bd5da99101643409cbd8542ffcd81a5cdd458)
* (edit) 
phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/ScanInfoUtil.java
* (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/ReverseScanIT.java
* (edit) 
phoenix-core/src/main/java/org/apache/phoenix/coprocessor/BaseScannerRegionObserver.java


> Reverse scan with row_timestamp does not working
> 
>
> Key: PHOENIX-4630
> URL: https://issues.apache.org/jira/browse/PHOENIX-4630
> Project: Phoenix
>  Issue Type: Bug
>Affects Versions: 4.13.0, 4.13.1, 4.13.2, 4.13.2-cdh5.11.2
>Reporter: JeongMin Ju
>Assignee: chenglei
>Priority: Critical
> Fix For: 4.14.0
>
> Attachments: PHOENIX-4630_v1.patch
>
>
> In version 4.13, if the query plan is a reverse scan, an error or incorrect 
> data is returned.
> This is a problem that occurs when the query plan is a reverse range scan in 
> the case of an "order by desc" query for the row key.
> The table schem is as follows.
> {code:java}
> create table if not exists app_log (
>   app_tag varchar not null,
>   timestamp date not null,
>   uuid varchar not null,
>   log varchar
>   constraint pk primary key(app_tag, timestamp row_timestamp, uuid)
> )
> data_block_encoding='FAST_DIFF',
> compression='LZ4',
> update_cache_frequency=60,
> column_encoded_bytes = 1,
> ttl=2592000,
> salt_buckets=50
> ;
> {code}
> The current data is as follows.
> {code:java}
> upsert into app_log values ('test', now(), 'test', 'test');
> ...
> select * from app_log order by timestamp;
> +---+--+---+---+
> |  APP_TAG  |TIMESTAMP | UUID  |  LOG  |
> +---+--+---+---+
> | test  | 2018-02-28 01:02:16.985  | test  | test  |
> | test  | 2018-02-28 01:02:19.472  | test  | test  |
> | test  | 2018-02-28 01:02:21.568  | test  | test  |
> | test  | 2018-02-28 01:02:23.332  | test  | test  |
> | test  | 2018-02-28 01:02:25.200  | test  | test  |
> | test  | 2018-02-28 01:02:27.055  | test  | test  |
> | test  | 2018-02-28 01:02:29.008  | test  | test  |
> | test  | 2018-02-28 01:02:30.911  | test  | test  |
> | test  | 2018-02-28 01:02:32.775  | test  | test  |
> | test  | 2018-02-28 01:02:34.663  | test  | test  |
> +---+--+---+---+
> {code}
> You can see errors if you run a simple query after adding some data.
> Depending on the data, an error may occur and incorrect data may be output.
> {code:java}
> select * from app_log where app_tag = 'test' and timestamp between 
> to_date('2018-02-28 01:02:16') and to_date('2018-02-28 01:02:34') order by 
> timestamp desc;
> Error: org.apache.phoenix.exception.PhoenixIOException: 
> org.apache.hadoop.hbase.DoNotRetryIOException: 
> APP_LOG,\x0D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00,1519778082466.6dd30a7d7a26a38c5c06d63008bbff3d.:
>  seekToPreviousRow must not be called on a non-reversed scanner
> at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:96)
> at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:62)
> at 
> org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:212)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:293)
> at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2561)
> at 
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33648)
> at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2183)
> at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:185)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:165)
> Caused by: org.apache.commons.lang.NotImplementedException: seekToPreviousRow 
> must not be called on a non-reversed scanner
> at 
> org.apache.hadoop.hbase.regionserver.NonReversedNonLazyKeyValueScanner.seekToPreviousRow(NonReversedNonLazyKeyValueScanner.java:44)
> at 
> 

[jira] [Commented] (PHOENIX-4630) Reverse scan with row_timestamp does not working

2018-02-28 Thread Hudson (JIRA)

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

Hudson commented on PHOENIX-4630:
-

FAILURE: Integrated in Jenkins build Phoenix-4.x-HBase-0.98 #1823 (See 
[https://builds.apache.org/job/Phoenix-4.x-HBase-0.98/1823/])
PHOENIX-4630 Reverse scan with row_timestamp does not working (chenglei: rev 
1f484245a8e759ee2d94d6b477d397e6ed9e4c71)
* (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/ReverseScanIT.java
* (edit) 
phoenix-core/src/main/java/org/apache/phoenix/coprocessor/BaseScannerRegionObserver.java
* (edit) 
phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/ScanInfoUtil.java


> Reverse scan with row_timestamp does not working
> 
>
> Key: PHOENIX-4630
> URL: https://issues.apache.org/jira/browse/PHOENIX-4630
> Project: Phoenix
>  Issue Type: Bug
>Affects Versions: 4.13.0, 4.13.1, 4.13.2, 4.13.2-cdh5.11.2
>Reporter: JeongMin Ju
>Assignee: chenglei
>Priority: Critical
> Fix For: 4.14.0
>
> Attachments: PHOENIX-4630_v1.patch
>
>
> In version 4.13, if the query plan is a reverse scan, an error or incorrect 
> data is returned.
> This is a problem that occurs when the query plan is a reverse range scan in 
> the case of an "order by desc" query for the row key.
> The table schem is as follows.
> {code:java}
> create table if not exists app_log (
>   app_tag varchar not null,
>   timestamp date not null,
>   uuid varchar not null,
>   log varchar
>   constraint pk primary key(app_tag, timestamp row_timestamp, uuid)
> )
> data_block_encoding='FAST_DIFF',
> compression='LZ4',
> update_cache_frequency=60,
> column_encoded_bytes = 1,
> ttl=2592000,
> salt_buckets=50
> ;
> {code}
> The current data is as follows.
> {code:java}
> upsert into app_log values ('test', now(), 'test', 'test');
> ...
> select * from app_log order by timestamp;
> +---+--+---+---+
> |  APP_TAG  |TIMESTAMP | UUID  |  LOG  |
> +---+--+---+---+
> | test  | 2018-02-28 01:02:16.985  | test  | test  |
> | test  | 2018-02-28 01:02:19.472  | test  | test  |
> | test  | 2018-02-28 01:02:21.568  | test  | test  |
> | test  | 2018-02-28 01:02:23.332  | test  | test  |
> | test  | 2018-02-28 01:02:25.200  | test  | test  |
> | test  | 2018-02-28 01:02:27.055  | test  | test  |
> | test  | 2018-02-28 01:02:29.008  | test  | test  |
> | test  | 2018-02-28 01:02:30.911  | test  | test  |
> | test  | 2018-02-28 01:02:32.775  | test  | test  |
> | test  | 2018-02-28 01:02:34.663  | test  | test  |
> +---+--+---+---+
> {code}
> You can see errors if you run a simple query after adding some data.
> Depending on the data, an error may occur and incorrect data may be output.
> {code:java}
> select * from app_log where app_tag = 'test' and timestamp between 
> to_date('2018-02-28 01:02:16') and to_date('2018-02-28 01:02:34') order by 
> timestamp desc;
> Error: org.apache.phoenix.exception.PhoenixIOException: 
> org.apache.hadoop.hbase.DoNotRetryIOException: 
> APP_LOG,\x0D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00,1519778082466.6dd30a7d7a26a38c5c06d63008bbff3d.:
>  seekToPreviousRow must not be called on a non-reversed scanner
> at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:96)
> at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:62)
> at 
> org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:212)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:293)
> at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2561)
> at 
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33648)
> at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2183)
> at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:185)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:165)
> Caused by: org.apache.commons.lang.NotImplementedException: seekToPreviousRow 
> must not be called on a non-reversed scanner
> at 
> org.apache.hadoop.hbase.regionserver.NonReversedNonLazyKeyValueScanner.seekToPreviousRow(NonReversedNonLazyKeyValueScanner.java:44)
> at 
> 

[jira] [Updated] (PHOENIX-4630) Reverse scan with row_timestamp does not working

2018-02-28 Thread chenglei (JIRA)

 [ 
https://issues.apache.org/jira/browse/PHOENIX-4630?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei updated PHOENIX-4630:
--
Fix Version/s: 4.14.0

> Reverse scan with row_timestamp does not working
> 
>
> Key: PHOENIX-4630
> URL: https://issues.apache.org/jira/browse/PHOENIX-4630
> Project: Phoenix
>  Issue Type: Bug
>Affects Versions: 4.13.0, 4.13.1, 4.13.2, 4.13.2-cdh5.11.2
>Reporter: JeongMin Ju
>Assignee: chenglei
>Priority: Critical
> Fix For: 4.14.0
>
> Attachments: PHOENIX-4630_v1.patch
>
>
> In version 4.13, if the query plan is a reverse scan, an error or incorrect 
> data is returned.
> This is a problem that occurs when the query plan is a reverse range scan in 
> the case of an "order by desc" query for the row key.
> The table schem is as follows.
> {code:java}
> create table if not exists app_log (
>   app_tag varchar not null,
>   timestamp date not null,
>   uuid varchar not null,
>   log varchar
>   constraint pk primary key(app_tag, timestamp row_timestamp, uuid)
> )
> data_block_encoding='FAST_DIFF',
> compression='LZ4',
> update_cache_frequency=60,
> column_encoded_bytes = 1,
> ttl=2592000,
> salt_buckets=50
> ;
> {code}
> The current data is as follows.
> {code:java}
> upsert into app_log values ('test', now(), 'test', 'test');
> ...
> select * from app_log order by timestamp;
> +---+--+---+---+
> |  APP_TAG  |TIMESTAMP | UUID  |  LOG  |
> +---+--+---+---+
> | test  | 2018-02-28 01:02:16.985  | test  | test  |
> | test  | 2018-02-28 01:02:19.472  | test  | test  |
> | test  | 2018-02-28 01:02:21.568  | test  | test  |
> | test  | 2018-02-28 01:02:23.332  | test  | test  |
> | test  | 2018-02-28 01:02:25.200  | test  | test  |
> | test  | 2018-02-28 01:02:27.055  | test  | test  |
> | test  | 2018-02-28 01:02:29.008  | test  | test  |
> | test  | 2018-02-28 01:02:30.911  | test  | test  |
> | test  | 2018-02-28 01:02:32.775  | test  | test  |
> | test  | 2018-02-28 01:02:34.663  | test  | test  |
> +---+--+---+---+
> {code}
> You can see errors if you run a simple query after adding some data.
> Depending on the data, an error may occur and incorrect data may be output.
> {code:java}
> select * from app_log where app_tag = 'test' and timestamp between 
> to_date('2018-02-28 01:02:16') and to_date('2018-02-28 01:02:34') order by 
> timestamp desc;
> Error: org.apache.phoenix.exception.PhoenixIOException: 
> org.apache.hadoop.hbase.DoNotRetryIOException: 
> APP_LOG,\x0D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00,1519778082466.6dd30a7d7a26a38c5c06d63008bbff3d.:
>  seekToPreviousRow must not be called on a non-reversed scanner
> at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:96)
> at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:62)
> at 
> org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:212)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:293)
> at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2561)
> at 
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33648)
> at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2183)
> at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:185)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:165)
> Caused by: org.apache.commons.lang.NotImplementedException: seekToPreviousRow 
> must not be called on a non-reversed scanner
> at 
> org.apache.hadoop.hbase.regionserver.NonReversedNonLazyKeyValueScanner.seekToPreviousRow(NonReversedNonLazyKeyValueScanner.java:44)
> at 
> org.apache.hadoop.hbase.regionserver.ReversedKeyValueHeap.seekToPreviousRow(ReversedKeyValueHeap.java:89)
> at 
> org.apache.hadoop.hbase.regionserver.ReversedRegionScannerImpl.nextRow(ReversedRegionScannerImpl.java:71)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextInternal(HRegion.java:5938)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:5673)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:5659)
> at 
> org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:175)
> ... 9 more 

[jira] [Assigned] (PHOENIX-4630) Reverse scan with row_timestamp does not working

2018-02-28 Thread chenglei (JIRA)

 [ 
https://issues.apache.org/jira/browse/PHOENIX-4630?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei reassigned PHOENIX-4630:
-

Assignee: chenglei

> Reverse scan with row_timestamp does not working
> 
>
> Key: PHOENIX-4630
> URL: https://issues.apache.org/jira/browse/PHOENIX-4630
> Project: Phoenix
>  Issue Type: Bug
>Affects Versions: 4.13.0, 4.13.1, 4.13.2, 4.13.2-cdh5.11.2
>Reporter: JeongMin Ju
>Assignee: chenglei
>Priority: Critical
> Fix For: 4.14.0
>
> Attachments: PHOENIX-4630_v1.patch
>
>
> In version 4.13, if the query plan is a reverse scan, an error or incorrect 
> data is returned.
> This is a problem that occurs when the query plan is a reverse range scan in 
> the case of an "order by desc" query for the row key.
> The table schem is as follows.
> {code:java}
> create table if not exists app_log (
>   app_tag varchar not null,
>   timestamp date not null,
>   uuid varchar not null,
>   log varchar
>   constraint pk primary key(app_tag, timestamp row_timestamp, uuid)
> )
> data_block_encoding='FAST_DIFF',
> compression='LZ4',
> update_cache_frequency=60,
> column_encoded_bytes = 1,
> ttl=2592000,
> salt_buckets=50
> ;
> {code}
> The current data is as follows.
> {code:java}
> upsert into app_log values ('test', now(), 'test', 'test');
> ...
> select * from app_log order by timestamp;
> +---+--+---+---+
> |  APP_TAG  |TIMESTAMP | UUID  |  LOG  |
> +---+--+---+---+
> | test  | 2018-02-28 01:02:16.985  | test  | test  |
> | test  | 2018-02-28 01:02:19.472  | test  | test  |
> | test  | 2018-02-28 01:02:21.568  | test  | test  |
> | test  | 2018-02-28 01:02:23.332  | test  | test  |
> | test  | 2018-02-28 01:02:25.200  | test  | test  |
> | test  | 2018-02-28 01:02:27.055  | test  | test  |
> | test  | 2018-02-28 01:02:29.008  | test  | test  |
> | test  | 2018-02-28 01:02:30.911  | test  | test  |
> | test  | 2018-02-28 01:02:32.775  | test  | test  |
> | test  | 2018-02-28 01:02:34.663  | test  | test  |
> +---+--+---+---+
> {code}
> You can see errors if you run a simple query after adding some data.
> Depending on the data, an error may occur and incorrect data may be output.
> {code:java}
> select * from app_log where app_tag = 'test' and timestamp between 
> to_date('2018-02-28 01:02:16') and to_date('2018-02-28 01:02:34') order by 
> timestamp desc;
> Error: org.apache.phoenix.exception.PhoenixIOException: 
> org.apache.hadoop.hbase.DoNotRetryIOException: 
> APP_LOG,\x0D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00,1519778082466.6dd30a7d7a26a38c5c06d63008bbff3d.:
>  seekToPreviousRow must not be called on a non-reversed scanner
> at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:96)
> at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:62)
> at 
> org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:212)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:293)
> at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2561)
> at 
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33648)
> at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2183)
> at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:185)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:165)
> Caused by: org.apache.commons.lang.NotImplementedException: seekToPreviousRow 
> must not be called on a non-reversed scanner
> at 
> org.apache.hadoop.hbase.regionserver.NonReversedNonLazyKeyValueScanner.seekToPreviousRow(NonReversedNonLazyKeyValueScanner.java:44)
> at 
> org.apache.hadoop.hbase.regionserver.ReversedKeyValueHeap.seekToPreviousRow(ReversedKeyValueHeap.java:89)
> at 
> org.apache.hadoop.hbase.regionserver.ReversedRegionScannerImpl.nextRow(ReversedRegionScannerImpl.java:71)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextInternal(HRegion.java:5938)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:5673)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:5659)
> at 
> org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:175)
> ... 9 more 

[jira] [Comment Edited] (PHOENIX-4630) Reverse scan with row_timestamp does not working

2018-02-28 Thread chenglei (JIRA)

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

chenglei edited comment on PHOENIX-4630 at 3/1/18 2:54 AM:
---

Pushed to master, 4.x-HBase-1.3, 4.x-HBase-1.2, 4.x-HBase-1.1, 4.x-cdh5.11.2, 
4.x-HBase-0.98.
[~jamestaylor], seems PHOENIX-4277 was removed from 5.x-HBase-2.0,so did not 
push to 5.x-HBase-2.0.


was (Author: comnetwork):
Pushed to master, 4.x-HBase-1.3, 4.x-HBase-1.2, 4.x-HBase-1.1, 4.x-cdh5.11.2, 
4.x-HBase-0.98.
[~jamestaylor], seems PHOENIX-4277 was removed from 5.x-HBase-2.0,so did not 
push to 5.x-HBase-2.0

> Reverse scan with row_timestamp does not working
> 
>
> Key: PHOENIX-4630
> URL: https://issues.apache.org/jira/browse/PHOENIX-4630
> Project: Phoenix
>  Issue Type: Bug
>Affects Versions: 4.13.0, 4.13.1, 4.13.2, 4.13.2-cdh5.11.2
>Reporter: JeongMin Ju
>Priority: Critical
> Attachments: PHOENIX-4630_v1.patch
>
>
> In version 4.13, if the query plan is a reverse scan, an error or incorrect 
> data is returned.
> This is a problem that occurs when the query plan is a reverse range scan in 
> the case of an "order by desc" query for the row key.
> The table schem is as follows.
> {code:java}
> create table if not exists app_log (
>   app_tag varchar not null,
>   timestamp date not null,
>   uuid varchar not null,
>   log varchar
>   constraint pk primary key(app_tag, timestamp row_timestamp, uuid)
> )
> data_block_encoding='FAST_DIFF',
> compression='LZ4',
> update_cache_frequency=60,
> column_encoded_bytes = 1,
> ttl=2592000,
> salt_buckets=50
> ;
> {code}
> The current data is as follows.
> {code:java}
> upsert into app_log values ('test', now(), 'test', 'test');
> ...
> select * from app_log order by timestamp;
> +---+--+---+---+
> |  APP_TAG  |TIMESTAMP | UUID  |  LOG  |
> +---+--+---+---+
> | test  | 2018-02-28 01:02:16.985  | test  | test  |
> | test  | 2018-02-28 01:02:19.472  | test  | test  |
> | test  | 2018-02-28 01:02:21.568  | test  | test  |
> | test  | 2018-02-28 01:02:23.332  | test  | test  |
> | test  | 2018-02-28 01:02:25.200  | test  | test  |
> | test  | 2018-02-28 01:02:27.055  | test  | test  |
> | test  | 2018-02-28 01:02:29.008  | test  | test  |
> | test  | 2018-02-28 01:02:30.911  | test  | test  |
> | test  | 2018-02-28 01:02:32.775  | test  | test  |
> | test  | 2018-02-28 01:02:34.663  | test  | test  |
> +---+--+---+---+
> {code}
> You can see errors if you run a simple query after adding some data.
> Depending on the data, an error may occur and incorrect data may be output.
> {code:java}
> select * from app_log where app_tag = 'test' and timestamp between 
> to_date('2018-02-28 01:02:16') and to_date('2018-02-28 01:02:34') order by 
> timestamp desc;
> Error: org.apache.phoenix.exception.PhoenixIOException: 
> org.apache.hadoop.hbase.DoNotRetryIOException: 
> APP_LOG,\x0D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00,1519778082466.6dd30a7d7a26a38c5c06d63008bbff3d.:
>  seekToPreviousRow must not be called on a non-reversed scanner
> at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:96)
> at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:62)
> at 
> org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:212)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:293)
> at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2561)
> at 
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33648)
> at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2183)
> at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:185)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:165)
> Caused by: org.apache.commons.lang.NotImplementedException: seekToPreviousRow 
> must not be called on a non-reversed scanner
> at 
> org.apache.hadoop.hbase.regionserver.NonReversedNonLazyKeyValueScanner.seekToPreviousRow(NonReversedNonLazyKeyValueScanner.java:44)
> at 
> org.apache.hadoop.hbase.regionserver.ReversedKeyValueHeap.seekToPreviousRow(ReversedKeyValueHeap.java:89)
> at 
> 

[jira] [Commented] (PHOENIX-4630) Reverse scan with row_timestamp does not working

2018-02-28 Thread chenglei (JIRA)

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

chenglei commented on PHOENIX-4630:
---

Applied the patch to 4.x-HBase-1.3 and ran all the unit tests and IT tests in 
my local machine, the tests are all successful.

> Reverse scan with row_timestamp does not working
> 
>
> Key: PHOENIX-4630
> URL: https://issues.apache.org/jira/browse/PHOENIX-4630
> Project: Phoenix
>  Issue Type: Bug
>Affects Versions: 4.13.0, 4.13.1, 4.13.2, 4.13.2-cdh5.11.2
>Reporter: JeongMin Ju
>Priority: Critical
> Attachments: PHOENIX-4630_v1.patch
>
>
> In version 4.13, if the query plan is a reverse scan, an error or incorrect 
> data is returned.
> This is a problem that occurs when the query plan is a reverse range scan in 
> the case of an "order by desc" query for the row key.
> The table schem is as follows.
> {code:java}
> create table if not exists app_log (
>   app_tag varchar not null,
>   timestamp date not null,
>   uuid varchar not null,
>   log varchar
>   constraint pk primary key(app_tag, timestamp row_timestamp, uuid)
> )
> data_block_encoding='FAST_DIFF',
> compression='LZ4',
> update_cache_frequency=60,
> column_encoded_bytes = 1,
> ttl=2592000,
> salt_buckets=50
> ;
> {code}
> The current data is as follows.
> {code:java}
> upsert into app_log values ('test', now(), 'test', 'test');
> ...
> select * from app_log order by timestamp;
> +---+--+---+---+
> |  APP_TAG  |TIMESTAMP | UUID  |  LOG  |
> +---+--+---+---+
> | test  | 2018-02-28 01:02:16.985  | test  | test  |
> | test  | 2018-02-28 01:02:19.472  | test  | test  |
> | test  | 2018-02-28 01:02:21.568  | test  | test  |
> | test  | 2018-02-28 01:02:23.332  | test  | test  |
> | test  | 2018-02-28 01:02:25.200  | test  | test  |
> | test  | 2018-02-28 01:02:27.055  | test  | test  |
> | test  | 2018-02-28 01:02:29.008  | test  | test  |
> | test  | 2018-02-28 01:02:30.911  | test  | test  |
> | test  | 2018-02-28 01:02:32.775  | test  | test  |
> | test  | 2018-02-28 01:02:34.663  | test  | test  |
> +---+--+---+---+
> {code}
> You can see errors if you run a simple query after adding some data.
> Depending on the data, an error may occur and incorrect data may be output.
> {code:java}
> select * from app_log where app_tag = 'test' and timestamp between 
> to_date('2018-02-28 01:02:16') and to_date('2018-02-28 01:02:34') order by 
> timestamp desc;
> Error: org.apache.phoenix.exception.PhoenixIOException: 
> org.apache.hadoop.hbase.DoNotRetryIOException: 
> APP_LOG,\x0D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00,1519778082466.6dd30a7d7a26a38c5c06d63008bbff3d.:
>  seekToPreviousRow must not be called on a non-reversed scanner
> at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:96)
> at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:62)
> at 
> org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:212)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:293)
> at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2561)
> at 
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33648)
> at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2183)
> at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:185)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:165)
> Caused by: org.apache.commons.lang.NotImplementedException: seekToPreviousRow 
> must not be called on a non-reversed scanner
> at 
> org.apache.hadoop.hbase.regionserver.NonReversedNonLazyKeyValueScanner.seekToPreviousRow(NonReversedNonLazyKeyValueScanner.java:44)
> at 
> org.apache.hadoop.hbase.regionserver.ReversedKeyValueHeap.seekToPreviousRow(ReversedKeyValueHeap.java:89)
> at 
> org.apache.hadoop.hbase.regionserver.ReversedRegionScannerImpl.nextRow(ReversedRegionScannerImpl.java:71)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextInternal(HRegion.java:5938)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:5673)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:5659)
> at 
> 

[jira] [Commented] (PHOENIX-4630) Reverse scan with row_timestamp does not working

2018-02-28 Thread chenglei (JIRA)

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

chenglei commented on PHOENIX-4630:
---

Pushed to master, 4.x-HBase-1.3, 4.x-HBase-1.2, 4.x-HBase-1.1, 4.x-cdh5.11.2, 
4.x-HBase-0.98.
[~jamestaylor], seems PHOENIX-4277 was removed from 5.x-HBase-2.0,so did not 
push to 5.x-HBase-2.0

> Reverse scan with row_timestamp does not working
> 
>
> Key: PHOENIX-4630
> URL: https://issues.apache.org/jira/browse/PHOENIX-4630
> Project: Phoenix
>  Issue Type: Bug
>Affects Versions: 4.13.0, 4.13.1, 4.13.2, 4.13.2-cdh5.11.2
>Reporter: JeongMin Ju
>Priority: Critical
> Attachments: PHOENIX-4630_v1.patch
>
>
> In version 4.13, if the query plan is a reverse scan, an error or incorrect 
> data is returned.
> This is a problem that occurs when the query plan is a reverse range scan in 
> the case of an "order by desc" query for the row key.
> The table schem is as follows.
> {code:java}
> create table if not exists app_log (
>   app_tag varchar not null,
>   timestamp date not null,
>   uuid varchar not null,
>   log varchar
>   constraint pk primary key(app_tag, timestamp row_timestamp, uuid)
> )
> data_block_encoding='FAST_DIFF',
> compression='LZ4',
> update_cache_frequency=60,
> column_encoded_bytes = 1,
> ttl=2592000,
> salt_buckets=50
> ;
> {code}
> The current data is as follows.
> {code:java}
> upsert into app_log values ('test', now(), 'test', 'test');
> ...
> select * from app_log order by timestamp;
> +---+--+---+---+
> |  APP_TAG  |TIMESTAMP | UUID  |  LOG  |
> +---+--+---+---+
> | test  | 2018-02-28 01:02:16.985  | test  | test  |
> | test  | 2018-02-28 01:02:19.472  | test  | test  |
> | test  | 2018-02-28 01:02:21.568  | test  | test  |
> | test  | 2018-02-28 01:02:23.332  | test  | test  |
> | test  | 2018-02-28 01:02:25.200  | test  | test  |
> | test  | 2018-02-28 01:02:27.055  | test  | test  |
> | test  | 2018-02-28 01:02:29.008  | test  | test  |
> | test  | 2018-02-28 01:02:30.911  | test  | test  |
> | test  | 2018-02-28 01:02:32.775  | test  | test  |
> | test  | 2018-02-28 01:02:34.663  | test  | test  |
> +---+--+---+---+
> {code}
> You can see errors if you run a simple query after adding some data.
> Depending on the data, an error may occur and incorrect data may be output.
> {code:java}
> select * from app_log where app_tag = 'test' and timestamp between 
> to_date('2018-02-28 01:02:16') and to_date('2018-02-28 01:02:34') order by 
> timestamp desc;
> Error: org.apache.phoenix.exception.PhoenixIOException: 
> org.apache.hadoop.hbase.DoNotRetryIOException: 
> APP_LOG,\x0D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00,1519778082466.6dd30a7d7a26a38c5c06d63008bbff3d.:
>  seekToPreviousRow must not be called on a non-reversed scanner
> at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:96)
> at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:62)
> at 
> org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:212)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:293)
> at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2561)
> at 
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33648)
> at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2183)
> at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:185)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:165)
> Caused by: org.apache.commons.lang.NotImplementedException: seekToPreviousRow 
> must not be called on a non-reversed scanner
> at 
> org.apache.hadoop.hbase.regionserver.NonReversedNonLazyKeyValueScanner.seekToPreviousRow(NonReversedNonLazyKeyValueScanner.java:44)
> at 
> org.apache.hadoop.hbase.regionserver.ReversedKeyValueHeap.seekToPreviousRow(ReversedKeyValueHeap.java:89)
> at 
> org.apache.hadoop.hbase.regionserver.ReversedRegionScannerImpl.nextRow(ReversedRegionScannerImpl.java:71)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextInternal(HRegion.java:5938)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:5673)
> at 
> 

[jira] [Updated] (PHOENIX-4634) Looking up a parent index table of a tenant child view fails in BaseColumnResolver createTableRef()

2018-02-28 Thread Thomas D'Silva (JIRA)

 [ 
https://issues.apache.org/jira/browse/PHOENIX-4634?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Thomas D'Silva updated PHOENIX-4634:

Summary: Looking up a parent index table of a tenant child view fails in 
BaseColumnResolver createTableRef()  (was: Looking up a parent index table of a 
tenant child view fails in BaseColumnResolver.createTableRef()

> Looking up a parent index table of a tenant child view fails in 
> BaseColumnResolver createTableRef()
> ---
>
> Key: PHOENIX-4634
> URL: https://issues.apache.org/jira/browse/PHOENIX-4634
> Project: Phoenix
>  Issue Type: Bug
>Reporter: Thomas D'Silva
>Priority: Major
>
> If we are looking up a parent table index of a child view , we need to 
> resolve the view which will load the parent table indexes (instead of trying 
> to resolve the parent table index directly). 



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


[jira] [Created] (PHOENIX-4634) Looking up a parent index table of a tenant child view fails in BaseColumnResolver.createTableRef(

2018-02-28 Thread Thomas D'Silva (JIRA)
Thomas D'Silva created PHOENIX-4634:
---

 Summary: Looking up a parent index table of a tenant child view 
fails in BaseColumnResolver.createTableRef(
 Key: PHOENIX-4634
 URL: https://issues.apache.org/jira/browse/PHOENIX-4634
 Project: Phoenix
  Issue Type: Bug
Reporter: Thomas D'Silva


If we are looking up a parent table index of a child view , we need to resolve 
the view which will load the parent table indexes (instead of trying to resolve 
the parent table index directly). 



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


[jira] [Updated] (PHOENIX-4633) Handle the creation of SYSTEM.CATALOG correctly for users that don't have CREATE access on SYSTEM.CATALOG

2018-02-28 Thread Thomas D'Silva (JIRA)

 [ 
https://issues.apache.org/jira/browse/PHOENIX-4633?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Thomas D'Silva updated PHOENIX-4633:

Attachment: PHOENIX-4633.patch

> Handle the creation of SYSTEM.CATALOG correctly for users that don't have 
> CREATE access on SYSTEM.CATALOG
> -
>
> Key: PHOENIX-4633
> URL: https://issues.apache.org/jira/browse/PHOENIX-4633
> Project: Phoenix
>  Issue Type: Bug
>Affects Versions: 4.13.0
>Reporter: Thomas D'Silva
>Assignee: Thomas D'Silva
>Priority: Major
> Attachments: PHOENIX-4633.patch
>
>
> If a user doesn't have create access on SYSTEM.CATALOG we assume they exist 
> and continue. While running spark/mapreduce jobs the ADE that is thrown in 
> wrapped in a RemoteException which needs to be handled correctly.



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


[jira] [Updated] (PHOENIX-4633) Handle the creation of SYSTEM.CATALOG correctly for users that don't have CREATE access on SYSTEM.CATALOG

2018-02-28 Thread Thomas D'Silva (JIRA)

 [ 
https://issues.apache.org/jira/browse/PHOENIX-4633?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Thomas D'Silva updated PHOENIX-4633:

Summary: Handle the creation of SYSTEM.CATALOG correctly for users that 
don't have CREATE access on SYSTEM.CATALOG  (was: When running spark/map reduce 
jobs we should handle the creation of SYSTEM.CATALOG correctly for users that 
don't have CREATE access on SYSTEM.CATALOG)

> Handle the creation of SYSTEM.CATALOG correctly for users that don't have 
> CREATE access on SYSTEM.CATALOG
> -
>
> Key: PHOENIX-4633
> URL: https://issues.apache.org/jira/browse/PHOENIX-4633
> Project: Phoenix
>  Issue Type: Bug
>Affects Versions: 4.13.0
>Reporter: Thomas D'Silva
>Assignee: Thomas D'Silva
>Priority: Major
>
> If a user doesn't have create access on SYSTEM.CATALOG we assume they exist 
> and continue. While running spark/mapreduce jobs the ADE that is thrown in 
> wrapped in a RemoteException which needs to be handled correctly.



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


[jira] [Updated] (PHOENIX-4633) When running spark/map reduce jobs we should handle the creation of SYSTEM.CATALOG correctly for users that don't have CREATE access on SYSTEM.CATALOG

2018-02-28 Thread Thomas D'Silva (JIRA)

 [ 
https://issues.apache.org/jira/browse/PHOENIX-4633?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Thomas D'Silva updated PHOENIX-4633:

Issue Type: Bug  (was: Improvement)

> When running spark/map reduce jobs we should handle the creation of 
> SYSTEM.CATALOG correctly for users that don't have CREATE access on 
> SYSTEM.CATALOG
> --
>
> Key: PHOENIX-4633
> URL: https://issues.apache.org/jira/browse/PHOENIX-4633
> Project: Phoenix
>  Issue Type: Bug
>Affects Versions: 4.13.0
>Reporter: Thomas D'Silva
>Assignee: Thomas D'Silva
>Priority: Major
>
> If a user doesn't have create access on SYSTEM.CATALOG we assume they exist 
> and continue. While running spark/mapreduce jobs the ADE that is thrown in 
> wrapped in a RemoteException which needs to be handled correctly.



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


[jira] [Created] (PHOENIX-4633) When running spark/map reduce jobs we should handle the creation of SYSTEM.CATALOG correctly for users that don't have CREATE access on SYSTEM.CATALOG

2018-02-28 Thread Thomas D'Silva (JIRA)
Thomas D'Silva created PHOENIX-4633:
---

 Summary: When running spark/map reduce jobs we should handle the 
creation of SYSTEM.CATALOG correctly for users that don't have CREATE access on 
SYSTEM.CATALOG
 Key: PHOENIX-4633
 URL: https://issues.apache.org/jira/browse/PHOENIX-4633
 Project: Phoenix
  Issue Type: Improvement
Affects Versions: 4.13.0
Reporter: Thomas D'Silva
Assignee: Thomas D'Silva


If a user doesn't have create access on SYSTEM.CATALOG we assume they exist and 
continue. While running spark/mapreduce jobs the ADE that is thrown in wrapped 
in a RemoteException which needs to be handled correctly.



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


[jira] [Commented] (PHOENIX-4610) Converge 4.x and 5.x branches

2018-02-28 Thread Josh Elser (JIRA)

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

Josh Elser commented on PHOENIX-4610:
-

Any update, [~rajeshbabu]?

> Converge 4.x and 5.x branches
> -
>
> Key: PHOENIX-4610
> URL: https://issues.apache.org/jira/browse/PHOENIX-4610
> Project: Phoenix
>  Issue Type: Task
>Reporter: Josh Elser
>Assignee: Rajeshbabu Chintaguntla
>Priority: Major
> Fix For: 5.0.0
>
>
> We have a quite a few improvements which have landed on the 4.x branches 
> which have missed the 5.x branch due to its earlier instability. Rajeshbabu 
> volunteered offline to me to start this onerous task.



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


[jira] [Commented] (PHOENIX-4630) Reverse scan with row_timestamp does not working

2018-02-28 Thread James Taylor (JIRA)

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

James Taylor commented on PHOENIX-4630:
---

+1.. nice work, [~comnetwork]!

> Reverse scan with row_timestamp does not working
> 
>
> Key: PHOENIX-4630
> URL: https://issues.apache.org/jira/browse/PHOENIX-4630
> Project: Phoenix
>  Issue Type: Bug
>Affects Versions: 4.13.0, 4.13.1, 4.13.2, 4.13.2-cdh5.11.2
>Reporter: JeongMin Ju
>Priority: Critical
> Attachments: PHOENIX-4630_v1.patch
>
>
> In version 4.13, if the query plan is a reverse scan, an error or incorrect 
> data is returned.
> This is a problem that occurs when the query plan is a reverse range scan in 
> the case of an "order by desc" query for the row key.
> The table schem is as follows.
> {code:java}
> create table if not exists app_log (
>   app_tag varchar not null,
>   timestamp date not null,
>   uuid varchar not null,
>   log varchar
>   constraint pk primary key(app_tag, timestamp row_timestamp, uuid)
> )
> data_block_encoding='FAST_DIFF',
> compression='LZ4',
> update_cache_frequency=60,
> column_encoded_bytes = 1,
> ttl=2592000,
> salt_buckets=50
> ;
> {code}
> The current data is as follows.
> {code:java}
> upsert into app_log values ('test', now(), 'test', 'test');
> ...
> select * from app_log order by timestamp;
> +---+--+---+---+
> |  APP_TAG  |TIMESTAMP | UUID  |  LOG  |
> +---+--+---+---+
> | test  | 2018-02-28 01:02:16.985  | test  | test  |
> | test  | 2018-02-28 01:02:19.472  | test  | test  |
> | test  | 2018-02-28 01:02:21.568  | test  | test  |
> | test  | 2018-02-28 01:02:23.332  | test  | test  |
> | test  | 2018-02-28 01:02:25.200  | test  | test  |
> | test  | 2018-02-28 01:02:27.055  | test  | test  |
> | test  | 2018-02-28 01:02:29.008  | test  | test  |
> | test  | 2018-02-28 01:02:30.911  | test  | test  |
> | test  | 2018-02-28 01:02:32.775  | test  | test  |
> | test  | 2018-02-28 01:02:34.663  | test  | test  |
> +---+--+---+---+
> {code}
> You can see errors if you run a simple query after adding some data.
> Depending on the data, an error may occur and incorrect data may be output.
> {code:java}
> select * from app_log where app_tag = 'test' and timestamp between 
> to_date('2018-02-28 01:02:16') and to_date('2018-02-28 01:02:34') order by 
> timestamp desc;
> Error: org.apache.phoenix.exception.PhoenixIOException: 
> org.apache.hadoop.hbase.DoNotRetryIOException: 
> APP_LOG,\x0D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00,1519778082466.6dd30a7d7a26a38c5c06d63008bbff3d.:
>  seekToPreviousRow must not be called on a non-reversed scanner
> at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:96)
> at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:62)
> at 
> org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:212)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:293)
> at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2561)
> at 
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33648)
> at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2183)
> at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:185)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:165)
> Caused by: org.apache.commons.lang.NotImplementedException: seekToPreviousRow 
> must not be called on a non-reversed scanner
> at 
> org.apache.hadoop.hbase.regionserver.NonReversedNonLazyKeyValueScanner.seekToPreviousRow(NonReversedNonLazyKeyValueScanner.java:44)
> at 
> org.apache.hadoop.hbase.regionserver.ReversedKeyValueHeap.seekToPreviousRow(ReversedKeyValueHeap.java:89)
> at 
> org.apache.hadoop.hbase.regionserver.ReversedRegionScannerImpl.nextRow(ReversedRegionScannerImpl.java:71)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextInternal(HRegion.java:5938)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:5673)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:5659)
> at 
> org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:175)
> ... 9 more 

[jira] [Created] (PHOENIX-4632) Phoenix does not use local index if there is a field in where clause not included in index

2018-02-28 Thread Alexey Karpov (JIRA)
Alexey Karpov created PHOENIX-4632:
--

 Summary: Phoenix does not use local index if there is a field in 
where clause not included in index
 Key: PHOENIX-4632
 URL: https://issues.apache.org/jira/browse/PHOENIX-4632
 Project: Phoenix
  Issue Type: Bug
Affects Versions: 4.7.0
Reporter: Alexey Karpov


HDP 2.6.2, Phoenix 4.7.0, HBase 1.1.2.2.6.2.0-205

If in WHERE clause you have one field from the local index and one not from
the index, combined with AND operator, Phoenix decides to do a full scan.

Steps to reproduce:

CREATE TABLE test (id integer NOT NULL PRIMARY KEY, 
name VARCHAR, description VARCHAR)

CREATE LOCAL INDEX ix_test_name ON test(name)

explain  SELECT * FROM test WHERE name = 'a' AND description = 'b' 

CLIENT 1-CHUNK PARALLEL 1-WAY ROUND ROBIN FULL SCAN OVER TEST
 SERVER FILTER BY (NAME = 'a' AND DESCRIPTION = 'b')

After removing not indexed field in starts working as expected:

explain  SELECT * FROM test WHERE name = 'a' 

CLIENT 1-CHUNK PARALLEL 1-WAY ROUND ROBIN RANGE SCAN OVER TEST [1,'a']
 SERVER FILTER BY FIRST KEY ONLY

 



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


[jira] [Updated] (PHOENIX-4630) Reverse scan with row_timestamp does not working

2018-02-28 Thread chenglei (JIRA)

 [ 
https://issues.apache.org/jira/browse/PHOENIX-4630?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei updated PHOENIX-4630:
--
Summary: Reverse scan with row_timestamp does not working  (was: Reverse 
scan does not working)

> Reverse scan with row_timestamp does not working
> 
>
> Key: PHOENIX-4630
> URL: https://issues.apache.org/jira/browse/PHOENIX-4630
> Project: Phoenix
>  Issue Type: Bug
>Affects Versions: 4.13.0, 4.13.1, 4.13.2, 4.13.2-cdh5.11.2
>Reporter: JeongMin Ju
>Priority: Critical
> Attachments: PHOENIX-4630_v1.patch
>
>
> In version 4.13, if the query plan is a reverse scan, an error or incorrect 
> data is returned.
> This is a problem that occurs when the query plan is a reverse range scan in 
> the case of an "order by desc" query for the row key.
> The table schem is as follows.
> {code:java}
> create table if not exists app_log (
>   app_tag varchar not null,
>   timestamp date not null,
>   uuid varchar not null,
>   log varchar
>   constraint pk primary key(app_tag, timestamp row_timestamp, uuid)
> )
> data_block_encoding='FAST_DIFF',
> compression='LZ4',
> update_cache_frequency=60,
> column_encoded_bytes = 1,
> ttl=2592000,
> salt_buckets=50
> ;
> {code}
> The current data is as follows.
> {code:java}
> upsert into app_log values ('test', now(), 'test', 'test');
> ...
> select * from app_log order by timestamp;
> +---+--+---+---+
> |  APP_TAG  |TIMESTAMP | UUID  |  LOG  |
> +---+--+---+---+
> | test  | 2018-02-28 01:02:16.985  | test  | test  |
> | test  | 2018-02-28 01:02:19.472  | test  | test  |
> | test  | 2018-02-28 01:02:21.568  | test  | test  |
> | test  | 2018-02-28 01:02:23.332  | test  | test  |
> | test  | 2018-02-28 01:02:25.200  | test  | test  |
> | test  | 2018-02-28 01:02:27.055  | test  | test  |
> | test  | 2018-02-28 01:02:29.008  | test  | test  |
> | test  | 2018-02-28 01:02:30.911  | test  | test  |
> | test  | 2018-02-28 01:02:32.775  | test  | test  |
> | test  | 2018-02-28 01:02:34.663  | test  | test  |
> +---+--+---+---+
> {code}
> You can see errors if you run a simple query after adding some data.
> Depending on the data, an error may occur and incorrect data may be output.
> {code:java}
> select * from app_log where app_tag = 'test' and timestamp between 
> to_date('2018-02-28 01:02:16') and to_date('2018-02-28 01:02:34') order by 
> timestamp desc;
> Error: org.apache.phoenix.exception.PhoenixIOException: 
> org.apache.hadoop.hbase.DoNotRetryIOException: 
> APP_LOG,\x0D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00,1519778082466.6dd30a7d7a26a38c5c06d63008bbff3d.:
>  seekToPreviousRow must not be called on a non-reversed scanner
> at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:96)
> at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:62)
> at 
> org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:212)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:293)
> at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2561)
> at 
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33648)
> at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2183)
> at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:185)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:165)
> Caused by: org.apache.commons.lang.NotImplementedException: seekToPreviousRow 
> must not be called on a non-reversed scanner
> at 
> org.apache.hadoop.hbase.regionserver.NonReversedNonLazyKeyValueScanner.seekToPreviousRow(NonReversedNonLazyKeyValueScanner.java:44)
> at 
> org.apache.hadoop.hbase.regionserver.ReversedKeyValueHeap.seekToPreviousRow(ReversedKeyValueHeap.java:89)
> at 
> org.apache.hadoop.hbase.regionserver.ReversedRegionScannerImpl.nextRow(ReversedRegionScannerImpl.java:71)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextInternal(HRegion.java:5938)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:5673)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:5659)
> at 
> org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:175)
> ... 9 

[jira] [Comment Edited] (PHOENIX-4622) Phoenix 4.13 order by issue

2018-02-28 Thread chenglei (JIRA)

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

chenglei edited comment on PHOENIX-4622 at 2/28/18 8:39 AM:


[~mini666] , I see, thank you,I 'll try to reproduce it and give a patch ,I 
think you can  add {{KEEP_DELETED_CELLS}} property to your ColumnFamily to  
bypass this bug temporarily.


was (Author: comnetwork):
[~mini666] , I see, thank you,I 'll try to reproduce it and give a patch ,I 
think you can  add KEEP_DELETED_CELLS property to your column to  bypass this 
bug temporarily.

> Phoenix 4.13 order by issue
> ---
>
> Key: PHOENIX-4622
> URL: https://issues.apache.org/jira/browse/PHOENIX-4622
> Project: Phoenix
>  Issue Type: Bug
>Affects Versions: 4.13.1
> Environment: phoenix 4.13
> hbase 1.2.5
>Reporter: tom thmas
>Priority: Critical
>
> *1.create table and insert data.*
> create table test2
> (
>  id varchar(200) primary key,
>  cardid varchar(200),
>  ctime date 
> )
> upsert into test2 (id,cardid,ctime) values('a1','123',to_date('2017-12-01 
> 17:42:45'))
> *2.query sql like this:*
> select id,ctime from test2  where cardid='123' order by ctime
> error log:
> {color:#FF}org.apache.phoenix.exception.PhoenixIOException: 
> org.apache.hadoop.hbase.DoNotRetryIOException: 
> TEST2,,1519221167250.813e4ce0510965a7a7898413da2a17ad.: null{color}
>  



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


[jira] [Updated] (PHOENIX-4630) Reverse scan does not working

2018-02-28 Thread chenglei (JIRA)

 [ 
https://issues.apache.org/jira/browse/PHOENIX-4630?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei updated PHOENIX-4630:
--
Attachment: PHOENIX-4630_v1.patch

> Reverse scan does not working
> -
>
> Key: PHOENIX-4630
> URL: https://issues.apache.org/jira/browse/PHOENIX-4630
> Project: Phoenix
>  Issue Type: Bug
>Affects Versions: 4.13.0, 4.13.1, 4.13.2, 4.13.2-cdh5.11.2
>Reporter: JeongMin Ju
>Priority: Critical
> Attachments: PHOENIX-4630_v1.patch
>
>
> In version 4.13, if the query plan is a reverse scan, an error or incorrect 
> data is returned.
> This is a problem that occurs when the query plan is a reverse range scan in 
> the case of an "order by desc" query for the row key.
> The table schem is as follows.
> {code:java}
> create table if not exists app_log (
>   app_tag varchar not null,
>   timestamp date not null,
>   uuid varchar not null,
>   log varchar
>   constraint pk primary key(app_tag, timestamp row_timestamp, uuid)
> )
> data_block_encoding='FAST_DIFF',
> compression='LZ4',
> update_cache_frequency=60,
> column_encoded_bytes = 1,
> ttl=2592000,
> salt_buckets=50
> ;
> {code}
> The current data is as follows.
> {code:java}
> upsert into app_log values ('test', now(), 'test', 'test');
> ...
> select * from app_log order by timestamp;
> +---+--+---+---+
> |  APP_TAG  |TIMESTAMP | UUID  |  LOG  |
> +---+--+---+---+
> | test  | 2018-02-28 01:02:16.985  | test  | test  |
> | test  | 2018-02-28 01:02:19.472  | test  | test  |
> | test  | 2018-02-28 01:02:21.568  | test  | test  |
> | test  | 2018-02-28 01:02:23.332  | test  | test  |
> | test  | 2018-02-28 01:02:25.200  | test  | test  |
> | test  | 2018-02-28 01:02:27.055  | test  | test  |
> | test  | 2018-02-28 01:02:29.008  | test  | test  |
> | test  | 2018-02-28 01:02:30.911  | test  | test  |
> | test  | 2018-02-28 01:02:32.775  | test  | test  |
> | test  | 2018-02-28 01:02:34.663  | test  | test  |
> +---+--+---+---+
> {code}
> You can see errors if you run a simple query after adding some data.
> Depending on the data, an error may occur and incorrect data may be output.
> {code:java}
> select * from app_log where app_tag = 'test' and timestamp between 
> to_date('2018-02-28 01:02:16') and to_date('2018-02-28 01:02:34') order by 
> timestamp desc;
> Error: org.apache.phoenix.exception.PhoenixIOException: 
> org.apache.hadoop.hbase.DoNotRetryIOException: 
> APP_LOG,\x0D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00,1519778082466.6dd30a7d7a26a38c5c06d63008bbff3d.:
>  seekToPreviousRow must not be called on a non-reversed scanner
> at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:96)
> at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:62)
> at 
> org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:212)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:293)
> at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2561)
> at 
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33648)
> at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2183)
> at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:185)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:165)
> Caused by: org.apache.commons.lang.NotImplementedException: seekToPreviousRow 
> must not be called on a non-reversed scanner
> at 
> org.apache.hadoop.hbase.regionserver.NonReversedNonLazyKeyValueScanner.seekToPreviousRow(NonReversedNonLazyKeyValueScanner.java:44)
> at 
> org.apache.hadoop.hbase.regionserver.ReversedKeyValueHeap.seekToPreviousRow(ReversedKeyValueHeap.java:89)
> at 
> org.apache.hadoop.hbase.regionserver.ReversedRegionScannerImpl.nextRow(ReversedRegionScannerImpl.java:71)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextInternal(HRegion.java:5938)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:5673)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:5659)
> at 
> org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:175)
> ... 9 more (state=08000,code=101)
> {code}
>  Query plan is as follow.
> {code:java}
> explain select * 

[jira] [Comment Edited] (PHOENIX-4630) Reverse scan does not working

2018-02-28 Thread chenglei (JIRA)

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

chenglei edited comment on PHOENIX-4630 at 2/28/18 8:21 AM:


I uploaded my first patch, [~jamestaylor], please help me have a review, thanks.


was (Author: comnetwork):
I uploaded my first patch, [~jamestaylor], pleasehelp me have a review, thanks.

> Reverse scan does not working
> -
>
> Key: PHOENIX-4630
> URL: https://issues.apache.org/jira/browse/PHOENIX-4630
> Project: Phoenix
>  Issue Type: Bug
>Affects Versions: 4.13.0, 4.13.1, 4.13.2, 4.13.2-cdh5.11.2
>Reporter: JeongMin Ju
>Priority: Critical
>
> In version 4.13, if the query plan is a reverse scan, an error or incorrect 
> data is returned.
> This is a problem that occurs when the query plan is a reverse range scan in 
> the case of an "order by desc" query for the row key.
> The table schem is as follows.
> {code:java}
> create table if not exists app_log (
>   app_tag varchar not null,
>   timestamp date not null,
>   uuid varchar not null,
>   log varchar
>   constraint pk primary key(app_tag, timestamp row_timestamp, uuid)
> )
> data_block_encoding='FAST_DIFF',
> compression='LZ4',
> update_cache_frequency=60,
> column_encoded_bytes = 1,
> ttl=2592000,
> salt_buckets=50
> ;
> {code}
> The current data is as follows.
> {code:java}
> upsert into app_log values ('test', now(), 'test', 'test');
> ...
> select * from app_log order by timestamp;
> +---+--+---+---+
> |  APP_TAG  |TIMESTAMP | UUID  |  LOG  |
> +---+--+---+---+
> | test  | 2018-02-28 01:02:16.985  | test  | test  |
> | test  | 2018-02-28 01:02:19.472  | test  | test  |
> | test  | 2018-02-28 01:02:21.568  | test  | test  |
> | test  | 2018-02-28 01:02:23.332  | test  | test  |
> | test  | 2018-02-28 01:02:25.200  | test  | test  |
> | test  | 2018-02-28 01:02:27.055  | test  | test  |
> | test  | 2018-02-28 01:02:29.008  | test  | test  |
> | test  | 2018-02-28 01:02:30.911  | test  | test  |
> | test  | 2018-02-28 01:02:32.775  | test  | test  |
> | test  | 2018-02-28 01:02:34.663  | test  | test  |
> +---+--+---+---+
> {code}
> You can see errors if you run a simple query after adding some data.
> Depending on the data, an error may occur and incorrect data may be output.
> {code:java}
> select * from app_log where app_tag = 'test' and timestamp between 
> to_date('2018-02-28 01:02:16') and to_date('2018-02-28 01:02:34') order by 
> timestamp desc;
> Error: org.apache.phoenix.exception.PhoenixIOException: 
> org.apache.hadoop.hbase.DoNotRetryIOException: 
> APP_LOG,\x0D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00,1519778082466.6dd30a7d7a26a38c5c06d63008bbff3d.:
>  seekToPreviousRow must not be called on a non-reversed scanner
> at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:96)
> at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:62)
> at 
> org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:212)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:293)
> at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2561)
> at 
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33648)
> at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2183)
> at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:185)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:165)
> Caused by: org.apache.commons.lang.NotImplementedException: seekToPreviousRow 
> must not be called on a non-reversed scanner
> at 
> org.apache.hadoop.hbase.regionserver.NonReversedNonLazyKeyValueScanner.seekToPreviousRow(NonReversedNonLazyKeyValueScanner.java:44)
> at 
> org.apache.hadoop.hbase.regionserver.ReversedKeyValueHeap.seekToPreviousRow(ReversedKeyValueHeap.java:89)
> at 
> org.apache.hadoop.hbase.regionserver.ReversedRegionScannerImpl.nextRow(ReversedRegionScannerImpl.java:71)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextInternal(HRegion.java:5938)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:5673)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:5659)
> at 
> 

[jira] [Commented] (PHOENIX-4630) Reverse scan does not working

2018-02-28 Thread chenglei (JIRA)

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

chenglei commented on PHOENIX-4630:
---

I uploaded my first patch, [~jamestaylor], pleasehelp me have a review, thanks.

> Reverse scan does not working
> -
>
> Key: PHOENIX-4630
> URL: https://issues.apache.org/jira/browse/PHOENIX-4630
> Project: Phoenix
>  Issue Type: Bug
>Affects Versions: 4.13.0, 4.13.1, 4.13.2, 4.13.2-cdh5.11.2
>Reporter: JeongMin Ju
>Priority: Critical
>
> In version 4.13, if the query plan is a reverse scan, an error or incorrect 
> data is returned.
> This is a problem that occurs when the query plan is a reverse range scan in 
> the case of an "order by desc" query for the row key.
> The table schem is as follows.
> {code:java}
> create table if not exists app_log (
>   app_tag varchar not null,
>   timestamp date not null,
>   uuid varchar not null,
>   log varchar
>   constraint pk primary key(app_tag, timestamp row_timestamp, uuid)
> )
> data_block_encoding='FAST_DIFF',
> compression='LZ4',
> update_cache_frequency=60,
> column_encoded_bytes = 1,
> ttl=2592000,
> salt_buckets=50
> ;
> {code}
> The current data is as follows.
> {code:java}
> upsert into app_log values ('test', now(), 'test', 'test');
> ...
> select * from app_log order by timestamp;
> +---+--+---+---+
> |  APP_TAG  |TIMESTAMP | UUID  |  LOG  |
> +---+--+---+---+
> | test  | 2018-02-28 01:02:16.985  | test  | test  |
> | test  | 2018-02-28 01:02:19.472  | test  | test  |
> | test  | 2018-02-28 01:02:21.568  | test  | test  |
> | test  | 2018-02-28 01:02:23.332  | test  | test  |
> | test  | 2018-02-28 01:02:25.200  | test  | test  |
> | test  | 2018-02-28 01:02:27.055  | test  | test  |
> | test  | 2018-02-28 01:02:29.008  | test  | test  |
> | test  | 2018-02-28 01:02:30.911  | test  | test  |
> | test  | 2018-02-28 01:02:32.775  | test  | test  |
> | test  | 2018-02-28 01:02:34.663  | test  | test  |
> +---+--+---+---+
> {code}
> You can see errors if you run a simple query after adding some data.
> Depending on the data, an error may occur and incorrect data may be output.
> {code:java}
> select * from app_log where app_tag = 'test' and timestamp between 
> to_date('2018-02-28 01:02:16') and to_date('2018-02-28 01:02:34') order by 
> timestamp desc;
> Error: org.apache.phoenix.exception.PhoenixIOException: 
> org.apache.hadoop.hbase.DoNotRetryIOException: 
> APP_LOG,\x0D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00,1519778082466.6dd30a7d7a26a38c5c06d63008bbff3d.:
>  seekToPreviousRow must not be called on a non-reversed scanner
> at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:96)
> at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:62)
> at 
> org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:212)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:293)
> at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2561)
> at 
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33648)
> at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2183)
> at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:185)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:165)
> Caused by: org.apache.commons.lang.NotImplementedException: seekToPreviousRow 
> must not be called on a non-reversed scanner
> at 
> org.apache.hadoop.hbase.regionserver.NonReversedNonLazyKeyValueScanner.seekToPreviousRow(NonReversedNonLazyKeyValueScanner.java:44)
> at 
> org.apache.hadoop.hbase.regionserver.ReversedKeyValueHeap.seekToPreviousRow(ReversedKeyValueHeap.java:89)
> at 
> org.apache.hadoop.hbase.regionserver.ReversedRegionScannerImpl.nextRow(ReversedRegionScannerImpl.java:71)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextInternal(HRegion.java:5938)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:5673)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:5659)
> at 
> org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:175)
> ... 9 more (state=08000,code=101)
> {code}
>  Query plan is as follow.