[ https://issues.apache.org/jira/browse/GEODE-8864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17286011#comment-17286011 ]
ASF GitHub Bot commented on GEODE-8864: --------------------------------------- jhutchison commented on a change in pull request #5954: URL: https://github.com/apache/geode/pull/5954#discussion_r577803329 ########## File path: geode-redis/src/main/java/org/apache/geode/redis/internal/data/RedisHash.java ########## @@ -203,49 +261,120 @@ public int hstrlen(ByteArrayWrapper field) { return new ArrayList<>(hash.keySet()); } - public Pair<BigInteger, List<Object>> hscan(Pattern matchPattern, int count, BigInteger cursor) { - List<Object> returnList = new ArrayList<Object>(); - int size = hash.size(); - BigInteger beforeCursor = new BigInteger("0"); - int numElements = 0; - int i = -1; - for (Map.Entry<ByteArrayWrapper, ByteArrayWrapper> entry : hash.entrySet()) { - ByteArrayWrapper key = entry.getKey(); - ByteArrayWrapper value = entry.getValue(); - i++; - if (beforeCursor.compareTo(cursor) < 0) { - beforeCursor = beforeCursor.add(new BigInteger("1")); + public Pair<BigInteger, List<Object>> hscan(UUID clientID, Pattern matchPattern, + int count, + BigInteger cursorParameter) { + + int startCursor = cursorParameter.intValue(); + + List<ByteArrayWrapper> keysToScan = getSnapShotOfKeySet(clientID); + + List<Object> resultList = + getResultList(keysToScan, startCursor, count, matchPattern); + + int indexOfLast = resultList.size() - 1; + int numberOfIterationsCompleted = Integer.parseInt(resultList.get(indexOfLast).toString()); + resultList.remove(indexOfLast); Review comment: done. yeah, I really dis-like having to return another another type here, but I don't see a simple way around it. open to suggestions... ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > finish implementation of Redis HScan Command > -------------------------------------------- > > Key: GEODE-8864 > URL: https://issues.apache.org/jira/browse/GEODE-8864 > Project: Geode > Issue Type: New Feature > Components: redis > Reporter: John Hutchison > Priority: Major > Labels: pull-request-available > -- This message was sent by Atlassian Jira (v8.3.4#803005)