Just checking here for workarounds, mistakes on my part before I create a JIRA bug
-- Tested with both DBeaver and local new build of Phoenix -- Phoenix sandbox. HBase 2.4.9 Phoenix <version>5.2.0-SNAPSHOT</version> pulled from master 13/3/2022 -- DBeaver driver version - phoenix-5.0.0-HBase-2.0-thin-client.jar DROP TABLE TEST.TESTEXCEPTIONS ; CREATE TABLE IF NOT EXISTS TEST.TESTEXCEPTIONS ( KEYCOL VARCHAR NOT NULL PRIMARY KEY, GROUPNAME VARCHAR, INTEGERCOLUMN INTEGER , INTEGERCOLUMN2 INTEGER, DECIMALCOLUMN DECIMAL(20,5), DECIMALCOLUMN2 DECIMAL(20,5)); -- 5 in group A UPSERT INTO TEST.TESTEXCEPTIONS(KEYCOL, GROUPNAME, INTEGERCOLUMN, INTEGERCOLUMN2, DECIMALCOLUMN, DECIMALCOLUMN2) VALUES('A', 'A', 1, 1, 1.1, 1.1); UPSERT INTO TEST.TESTEXCEPTIONS(KEYCOL, GROUPNAME, INTEGERCOLUMN, INTEGERCOLUMN2, DECIMALCOLUMN, DECIMALCOLUMN2) VALUES('B', 'A', null, 2, 2.2, 2.2); UPSERT INTO TEST.TESTEXCEPTIONS(KEYCOL, GROUPNAME, INTEGERCOLUMN, INTEGERCOLUMN2, DECIMALCOLUMN, DECIMALCOLUMN2) VALUES('C', 'A', 2, null, 2.2, 2.2); UPSERT INTO TEST.TESTEXCEPTIONS(KEYCOL, GROUPNAME, INTEGERCOLUMN, INTEGERCOLUMN2, DECIMALCOLUMN, DECIMALCOLUMN2) VALUES('D', 'A', 3, 3, null, 3.3); UPSERT INTO TEST.TESTEXCEPTIONS(KEYCOL, GROUPNAME, INTEGERCOLUMN, INTEGERCOLUMN2, DECIMALCOLUMN, DECIMALCOLUMN2) VALUES('E', 'A', 4, 4, 4.4, null); -- 5 in group B UPSERT INTO TEST.TESTEXCEPTIONS(KEYCOL, GROUPNAME, INTEGERCOLUMN, INTEGERCOLUMN2, DECIMALCOLUMN, DECIMALCOLUMN2) VALUES('F', 'B', 1, 1, 1.1, 1.1); UPSERT INTO TEST.TESTEXCEPTIONS(KEYCOL, GROUPNAME, INTEGERCOLUMN, INTEGERCOLUMN2, DECIMALCOLUMN, DECIMALCOLUMN2) VALUES('G', 'B', null, 2, 2.2, 2.2); UPSERT INTO TEST.TESTEXCEPTIONS(KEYCOL, GROUPNAME, INTEGERCOLUMN, INTEGERCOLUMN2, DECIMALCOLUMN, DECIMALCOLUMN2) VALUES('H', 'B', 2, null, 2.2, 2.2); UPSERT INTO TEST.TESTEXCEPTIONS(KEYCOL, GROUPNAME, INTEGERCOLUMN, INTEGERCOLUMN2, DECIMALCOLUMN, DECIMALCOLUMN2) VALUES('I', 'B', 3, 3, null, 3.3); UPSERT INTO TEST.TESTEXCEPTIONS(KEYCOL, GROUPNAME, INTEGERCOLUMN, INTEGERCOLUMN2, DECIMALCOLUMN, DECIMALCOLUMN2) VALUES('J', 'B', 4, 4, 4.4, null); -- Integer single columns works SELECT PERCENTILE_DISC (0.5) WITHIN GROUP (ORDER BY INTEGERCOLUMN ASC) FROM TEST.TESTEXCEPTIONS; -- Integer two columns works SELECT PERCENTILE_DISC (0.5) WITHIN GROUP (ORDER BY INTEGERCOLUMN ASC), PERCENTILE_DISC (0.5) WITHIN GROUP (ORDER BY INTEGERCOLUMN2 ASC) FROM TEST.TESTEXCEPTIONS; -- BUG: Single Decimal columns throws exception SELECT PERCENTILE_DISC (0.5) WITHIN GROUP (ORDER BY DECIMALCOLUMN ASC) FROM TEST.TESTEXCEPTIONS; java.lang.ArrayIndexOutOfBoundsException: arraycopy: last source index 21 out of bounds for byte[3] at java.base/java.lang.System.arraycopy(Native Method) at org.apache.phoenix.expression.aggregator.PercentileDiscClientAggregator.evaluate(PercentileDiscClientAggregator.java:85) at org.apache.phoenix.schema.KeyValueSchema.toBytes(KeyValueSchema.java:113) at org.apache.phoenix.schema.KeyValueSchema.toBytes(KeyValueSchema.java:94) at org.apache.phoenix.expression.aggregator.Aggregators.toBytes(Aggregators.java:112) at org.apache.phoenix.iterate.UngroupedAggregatingResultIterator.next(UngroupedAggregatingResultIterator.java:65) at org.apache.phoenix.jdbc.PhoenixResultSet.next(PhoenixResultSet.java:853) at sqlline.BufferedRows.nextList(BufferedRows.java:109) at sqlline.BufferedRows.<init>(BufferedRows.java:52) at sqlline.SqlLine.print(SqlLine.java:1672) at sqlline.Commands.executeSingleQuery(Commands.java:1063) at sqlline.Commands.execute(Commands.java:1003) at sqlline.Commands.sql(Commands.java:967) at sqlline.SqlLine.dispatch(SqlLine.java:734) at sqlline.SqlLine.begin(SqlLine.java:541) at sqlline.SqlLine.start(SqlLine.java:267) at sqlline.SqlLine.main(SqlLine.java:206)