You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2016/01/04 19:21:40 UTC
[jira] [Commented] (PHOENIX-2364) timestamp type primary key desc
error
[ https://issues.apache.org/jira/browse/PHOENIX-2364?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15081518#comment-15081518 ]
ASF GitHub Bot commented on PHOENIX-2364:
-----------------------------------------
GitHub user freakyzoidberg opened a pull request:
https://github.com/apache/phoenix/pull/146
PHOENIX-2364 Fix Reverse timestamp row key
When inverting the millisecond part of a Timestamp key the offset should be reset.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/freakyzoidberg/phoenix master
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/phoenix/pull/146.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #146
----
commit 921f6c67e521214c5d4eb8203f952eb904128bd8
Author: Pierre Lacave <pi...@lacave.me>
Date: 2016-01-04T18:20:13Z
PHOENIX-2364 Fix Reverse timestamp row key
----
> timestamp type primary key desc error
> -------------------------------------
>
> Key: PHOENIX-2364
> URL: https://issues.apache.org/jira/browse/PHOENIX-2364
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.6.0
> Reporter: soyoon park
>
> I wanted to see that I don't have to use reverse scan(HBase) by using PHOENIX query(constraint pk primary key DESC).
> But it did not work.
> **TESTED PHOENIX query :
> CREATE TABLE TEST_DESC (
> TIME TIMESTAMP NOT NULL,
> NAME VARCHAR
> CONSTRAINT PK PRIMARY KEY (TIME DESC)
> );
> **sample data
> UPSERT INTO TEST_DESC (TIME,NAME) VALUES (TO_TIMESTAMP(current_date()|| ' ' || current_time()) ,'a');
> UPSERT INTO TEST_DESC (TIME,NAME) VALUES (TO_TIMESTAMP('2003-12-13 10:13:18',),'b');
> UPSERT INTO TEST_DESC (TIME,NAME) VALUES (CAST(current_date() AS TIMESTAMP) ,'c');
> SELECT * FROM TEST_DESC;
> **and then sqlline shows me error like below(sqlline)
> 0: jdbc:phoenix:data01> select * from TEST_DESC;
> +------------------------------------------+------------------------------------------+
> | TIME | NAME |
> +------------------------------------------+------------------------------------------+
> java.lang.IllegalArgumentException: offset (8) + length (4) exceed the capacity of the array: 4
> at org.apache.hadoop.hbase.util.Bytes.explainWrongLengthOrOffset(Bytes.java:605)
> at org.apache.hadoop.hbase.util.Bytes.toInt(Bytes.java:775)
> at org.apache.hadoop.hbase.util.Bytes.toInt(Bytes.java:761)
> at org.apache.phoenix.schema.types.PUnsignedInt$UnsignedIntCodec.decodeInt(PUnsignedInt.java:162)
> at org.apache.phoenix.schema.types.PTimestamp.toObject(PTimestamp.java:108)
> at org.apache.phoenix.schema.types.PTimestamp.toObject(PTimestamp.java:32)
> at org.apache.phoenix.schema.types.PDataType.toObject(PDataType.java:984)
> at org.apache.phoenix.compile.ExpressionProjector.getValue(ExpressionProjector.java:75)
> at org.apache.phoenix.jdbc.PhoenixResultSet.getString(PhoenixResultSet.java:601)
> at sqlline.Rows$Row.<init>(Rows.java:183)
> at sqlline.IncrementalRows.hasNext(IncrementalRows.java:63)
> at sqlline.TableOutputFormat.print(TableOutputFormat.java:33)
> at sqlline.SqlLine.print(SqlLine.java:1653)
> at sqlline.Commands.execute(Commands.java:833)
> at sqlline.Commands.sql(Commands.java:732)
> at sqlline.SqlLine.dispatch(SqlLine.java:808)
> at sqlline.SqlLine.begin(SqlLine.java:681)
> at sqlline.SqlLine.start(SqlLine.java:398)
> at sqlline.SqlLine.main(SqlLine.java:292)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)