[ https://issues.apache.org/jira/browse/HBASE-9543?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13808001#comment-13808001 ]
Ted Yu commented on HBASE-9543: ------------------------------- {code} + public synchronized void update(byte[] region, byte[] row, List<R> results) { + if (isSetTooLarge) return; + set.addAll(results); + if (set.size() > uniqueNumLimit) { {code} Before adding results to set, we should be able to see if the addition would cause isSetTooLarge to be true, right ? So the check can be made before addition. When isSetTooLarge becomes true, we can clear set. {code} + UniqueCallBack aUniqueCallBack = new UniqueCallBack(conf); {code} nit: naming the variable uniqueCallBack should do. {code} + } catch( IOException e) { + assertTrue(e.getMessage().contains( + "uniqe column value num is larger than limit:")); {code} What if exception message is changed by someone in the future ? In AggregateImplementation#getUniqueValues(): {code} + if (qualifiers != null && !qualifiers.isEmpty()) { + qualifier = qualifiers.pollFirst(); + } {code} Why are second and subsequent qualifiers be ignored ? > Impl unique aggregation > ------------------------ > > Key: HBASE-9543 > URL: https://issues.apache.org/jira/browse/HBASE-9543 > Project: HBase > Issue Type: New Feature > Components: Coprocessors > Reporter: Liu Shaohui > Assignee: Liu Shaohui > Priority: Minor > Attachments: HBASE-9543-0.94-v1.diff, HBASE-9543-0.94-v2.diff, > HBASE-9543-0.94-v3.diff, HBASE-9543-trunk-v1.diff, HBASE-9543-trunk-v2.diff, > HBASE-9543-trunk-v3.diff, HBASE-9543-trunk-v4.diff, HBASE-9543-trunk-v5.diff > > > Impl unique aggregation: return a set of all columns' values in a scan. -- This message was sent by Atlassian JIRA (v6.1#6144)