[ https://issues.apache.org/jira/browse/PHOENIX-2067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14626860#comment-14626860 ]
Hudson commented on PHOENIX-2067: --------------------------------- SUCCESS: Integrated in Phoenix-master #834 (See [https://builds.apache.org/job/Phoenix-master/834/]) PHOENIX-2067 Sort order incorrect for variable length DESC columns (jtaylor: rev 2620a80c1e35c0d214f06a1b16e99da5415a1a2c) * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PUnsignedTinyintArray.java * phoenix-core/src/main/java/org/apache/phoenix/exception/SQLExceptionCode.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PBooleanArray.java * phoenix-core/src/main/java/org/apache/phoenix/schema/DelegateTable.java * phoenix-core/src/main/java/org/apache/phoenix/util/ScanUtil.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PUnsignedIntArray.java * phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java * phoenix-core/src/main/java/org/apache/phoenix/compile/OrderPreservingTracker.java * phoenix-core/src/main/java/org/apache/phoenix/index/IndexMaintainer.java * phoenix-core/src/main/java/org/apache/phoenix/expression/util/regex/JONIPattern.java * phoenix-core/src/main/java/org/apache/phoenix/schema/stats/StatisticsUtil.java * phoenix-core/src/main/java/org/apache/phoenix/iterate/OrderedResultIterator.java * phoenix-core/src/test/java/org/apache/phoenix/compile/QueryCompilerTest.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PLongArray.java * phoenix-core/src/main/java/org/apache/phoenix/util/SchemaUtil.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PTimeArray.java * phoenix-core/src/main/java/org/apache/phoenix/compile/TupleProjectionCompiler.java * phoenix-core/src/main/java/org/apache/phoenix/expression/RowValueConstructorExpression.java * phoenix-core/src/main/java/org/apache/phoenix/iterate/BaseResultIterators.java * phoenix-core/src/main/java/org/apache/phoenix/coprocessor/generated/PTableProtos.java * phoenix-core/src/main/java/org/apache/phoenix/util/MetaDataUtil.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PFloatArray.java * phoenix-core/src/main/java/org/apache/phoenix/util/PhoenixRuntime.java * phoenix-core/src/main/java/org/apache/phoenix/compile/ScanRanges.java * phoenix-core/src/it/java/org/apache/phoenix/end2end/LpadFunctionIT.java * phoenix-core/src/it/java/org/apache/phoenix/end2end/ReverseScanIT.java * phoenix-core/src/it/java/org/apache/phoenix/end2end/SortOrderIT.java * phoenix-core/src/main/java/org/apache/phoenix/compile/JoinCompiler.java * phoenix-core/src/main/java/org/apache/phoenix/schema/RowKeyValueAccessor.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PArrayDataType.java * phoenix-core/src/it/java/org/apache/phoenix/end2end/RowValueConstructorIT.java * phoenix-core/src/main/java/org/apache/phoenix/util/TupleUtil.java * phoenix-core/src/main/java/org/apache/phoenix/util/UpgradeUtil.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PDoubleArray.java * phoenix-core/src/main/java/org/apache/phoenix/schema/PTable.java * phoenix-core/src/main/java/org/apache/phoenix/util/ByteUtil.java * phoenix-core/src/main/java/org/apache/phoenix/compile/FromCompiler.java * phoenix-core/src/main/java/org/apache/phoenix/filter/SkipScanFilter.java * phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java * phoenix-core/src/main/java/org/apache/phoenix/expression/function/LpadFunction.java * phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixConnection.java * phoenix-core/src/main/java/org/apache/phoenix/schema/RowKeySchema.java * phoenix-core/src/main/java/org/apache/phoenix/expression/ArrayConstructorExpression.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PUnsignedSmallintArray.java * phoenix-core/src/main/java/org/apache/phoenix/compile/UpsertCompiler.java * phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java * phoenix-protocol/src/main/PTable.proto * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PUnsignedDoubleArray.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarbinaryArray.java * phoenix-core/src/main/java/org/apache/phoenix/expression/function/ArrayModifierFunction.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PUnsignedDateArray.java * phoenix-core/src/main/java/org/apache/phoenix/compile/UnionCompiler.java * phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PUnsignedTimestampArray.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PTimestampArray.java * phoenix-core/src/main/java/org/apache/phoenix/expression/function/ArrayConcatFunction.java * phoenix-core/src/main/java/org/apache/phoenix/query/KeyRange.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PDecimalArray.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PIntegerArray.java * phoenix-core/src/main/java/org/apache/phoenix/compile/WhereOptimizer.java * phoenix-core/src/it/java/org/apache/phoenix/end2end/IsNullIT.java * phoenix-core/src/main/java/org/apache/phoenix/execute/DescVarLengthFastByteComparisons.java * phoenix-core/src/test/java/org/apache/phoenix/query/OrderByTest.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PCharArray.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PDataType.java * phoenix-core/src/main/java/org/apache/phoenix/compile/OrderByCompiler.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PUnsignedTimeArray.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarcharArray.java * phoenix-core/src/main/java/org/apache/phoenix/coprocessor/BaseScannerRegionObserver.java * dev/eclipse_prefs_phoenix.epf * phoenix-core/src/main/java/org/apache/phoenix/schema/ValueSchema.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PBinaryArray.java * phoenix-core/src/it/java/org/apache/phoenix/end2end/SortOrderFIT.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PUnsignedLongArray.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PDateArray.java * phoenix-core/src/main/java/org/apache/phoenix/execute/BaseQueryPlan.java * phoenix-core/src/main/java/org/apache/phoenix/query/QueryConstants.java * phoenix-core/src/main/java/org/apache/phoenix/schema/PTableImpl.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PUnsignedFloatArray.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PTinyintArray.java * phoenix-core/src/main/java/org/apache/phoenix/schema/types/PSmallintArray.java * phoenix-core/src/main/java/org/apache/phoenix/coprocessor/UngroupedAggregateRegionObserver.java * phoenix-core/src/main/java/org/apache/phoenix/expression/OrderByExpression.java * phoenix-core/src/test/java/org/apache/phoenix/schema/types/PDataTypeTest.java > Sort order incorrect for variable length DESC columns > ----------------------------------------------------- > > Key: PHOENIX-2067 > URL: https://issues.apache.org/jira/browse/PHOENIX-2067 > Project: Phoenix > Issue Type: Bug > Affects Versions: 4.4.0 > Environment: HBase 0.98.6-cdh5.3.0 > jdk1.7.0_67 x64 > CentOS release 6.4 (2.6.32-358.el6.x86_64) > Reporter: Mykola Komarnytskyy > Assignee: James Taylor > Fix For: 4.5.0 > > Attachments: PHOENIX-2067_array_addendum.patch, > PHOENIX-2067_array_addendum_v2.patch, PHOENIX-2067_v1.patch, > PHOENIX-2067_v2.patch, PHOENIX-2067_v3.patch > > > Steps to reproduce: > 1. Create a table: > CREATE TABLE mytable (id BIGINT not null PRIMARY KEY, timestamp BIGINT, > log_message varchar) IMMUTABLE_ROWS=true, SALT_BUCKETS=16; > 2. Create two indexes: > CREATE INDEX mytable_index_search ON mytable(timestamp,id) INCLUDE > (log_message) SALT_BUCKETS=16; > CREATE INDEX mytable_index_search_desc ON mytable(timestamp DESC,id DESC) > INCLUDE (log_message) SALT_BUCKETS=16; > 3. Upsert values: > UPSERT INTO mytable VALUES(1, 1434983826018, 'message1'); > UPSERT INTO mytable VALUES(2, 1434983826100, 'message2'); > UPSERT INTO mytable VALUES(3, 1434983826101, 'message3'); > UPSERT INTO mytable VALUES(4, 1434983826202, 'message4'); > 4. Sort DESC by timestamp: > select timestamp,id,log_message from mytable ORDER BY timestamp DESC; > Failure: data is sorted incorrectly. In case when we have two longs which > are different only by last two digits (e.g. 1434983826155, 1434983826100) > and one of the long ends with '00' we receive incorrect order. > Sorting result: > 1434983826202 > 1434983826100 > 1434983826101 > 1434983826018 -- This message was sent by Atlassian JIRA (v6.3.4#6332)