You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@phoenix.apache.org by "Lars Hofhansl (Jira)" <ji...@apache.org> on 2020/02/28 21:49:00 UTC
[jira] [Comment Edited] (PHOENIX-5629) Phoenix Function to Return
HBase row timestamp
[ https://issues.apache.org/jira/browse/PHOENIX-5629?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17047936#comment-17047936 ]
Lars Hofhansl edited comment on PHOENIX-5629 at 2/28/20 9:48 PM:
-----------------------------------------------------------------
So this returns a DATE, why is it called ROW_TIMESTAMP_STRING? Why the _STRING suffix?
Also, is this supposed to work in the WHERE clause too?
{code}
> select * from test where row_timestamp_string() = now();
Error: org.apache.phoenix.exception.PhoenixIOException: org.apache.hadoop.hbase.DoNotRetryIOException: TEST,,1582921811136.2cc481480a088a1d2cf0698571c14f0d.: 0
at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:121)
at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:87)
at org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:215)
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:322)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2910)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:3159)
at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:36804)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2399)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:311)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:291)
Caused by: java.lang.IndexOutOfBoundsException: 0
at org.apache.phoenix.filter.RowKeyComparisonFilter$RowKeyTuple.getValue(RowKeyComparisonFilter.java:120)
at org.apache.phoenix.expression.function.RowTimestampStringFunction.evaluate(RowTimestampStringFunction.java:50)
at org.apache.phoenix.expression.ComparisonExpression.evaluate(ComparisonExpression.java:318)
at org.apache.phoenix.filter.BooleanExpressionFilter.evaluate(BooleanExpressionFilter.java:93)
at org.apache.phoenix.filter.RowKeyComparisonFilter.filterKeyValue(RowKeyComparisonFilter.java:72)
at org.apache.hadoop.hbase.regionserver.querymatcher.UserScanQueryMatcher.matchColumn(UserScanQueryMatcher.java:122)
at org.apache.hadoop.hbase.regionserver.querymatcher.NormalUserScanQueryMatcher.match(NormalUserScanQueryMatcher.java:77)
at org.apache.hadoop.hbase.regionserver.StoreScanner.next(StoreScanner.java:571)
at org.apache.hadoop.hbase.regionserver.KeyValueHeap.next(KeyValueHeap.java:152)
at org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.populateResult(HRegion.java:6342)
at org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextInternal(HRegion.java:6502)
at org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:6271)
at org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:6257)
at org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:172)
... 10 more (state=08000,code=101)
{code}
was (Author: lhofhansl):
So this returns a data, why is it called ROW_TIMESTAMP_STRING? Why the _STRING suffix?
Also, is this supposed to work in the WHERE clause too?
{code}
> select * from test where row_timestamp_string() = now();
Error: org.apache.phoenix.exception.PhoenixIOException: org.apache.hadoop.hbase.DoNotRetryIOException: TEST,,1582921811136.2cc481480a088a1d2cf0698571c14f0d.: 0
at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:121)
at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:87)
at org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:215)
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:322)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2910)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:3159)
at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:36804)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2399)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:311)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:291)
Caused by: java.lang.IndexOutOfBoundsException: 0
at org.apache.phoenix.filter.RowKeyComparisonFilter$RowKeyTuple.getValue(RowKeyComparisonFilter.java:120)
at org.apache.phoenix.expression.function.RowTimestampStringFunction.evaluate(RowTimestampStringFunction.java:50)
at org.apache.phoenix.expression.ComparisonExpression.evaluate(ComparisonExpression.java:318)
at org.apache.phoenix.filter.BooleanExpressionFilter.evaluate(BooleanExpressionFilter.java:93)
at org.apache.phoenix.filter.RowKeyComparisonFilter.filterKeyValue(RowKeyComparisonFilter.java:72)
at org.apache.hadoop.hbase.regionserver.querymatcher.UserScanQueryMatcher.matchColumn(UserScanQueryMatcher.java:122)
at org.apache.hadoop.hbase.regionserver.querymatcher.NormalUserScanQueryMatcher.match(NormalUserScanQueryMatcher.java:77)
at org.apache.hadoop.hbase.regionserver.StoreScanner.next(StoreScanner.java:571)
at org.apache.hadoop.hbase.regionserver.KeyValueHeap.next(KeyValueHeap.java:152)
at org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.populateResult(HRegion.java:6342)
at org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextInternal(HRegion.java:6502)
at org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:6271)
at org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:6257)
at org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:172)
... 10 more (state=08000,code=101)
{code}
> Phoenix Function to Return HBase row timestamp
> ----------------------------------------------
>
> Key: PHOENIX-5629
> URL: https://issues.apache.org/jira/browse/PHOENIX-5629
> Project: Phoenix
> Issue Type: New Feature
> Reporter: Geoffrey Jacoby
> Assignee: Jacob Isaac
> Priority: Major
> Fix For: 5.1.0, 4.16.0
>
> Attachments: PHOENIX-5629.4.x-HBase-1.3.v1.patch, PHOENIX-5629.4.x-HBase-1.3.v2.patch, PHOENIX-5629.master.v1.patch, PHOENIX-5629.master.v2.patch
>
> Time Spent: 1h 40m
> Remaining Estimate: 0h
>
> t's occasionally useful when diagnosing an issue with Phoenix to be able to easily look up the HBase timestamp of the HBase Cell returned by a Phoenix query.
> For example:
> SELECT ROW_TIMESTAMP(Column1) FROM Table1 WHERE Column1 = 'SomeValue'
--
This message was sent by Atlassian Jira
(v8.3.4#803005)