| 878 | } |
| 879 | |
| 880 | static void addHashIteratorCursorToReply(client *c, hashTypeIterator *hi, int what) { |
| 881 | if (hi->encoding == OBJ_ENCODING_ZIPLIST) { |
| 882 | unsigned char *vstr = NULL; |
| 883 | unsigned int vlen = UINT_MAX; |
| 884 | long long vll = LLONG_MAX; |
| 885 | |
| 886 | hashTypeCurrentFromZiplist(hi, what, &vstr, &vlen, &vll); |
| 887 | if (vstr) |
| 888 | addReplyBulkCBuffer(c, vstr, vlen); |
| 889 | else |
| 890 | addReplyBulkLongLong(c, vll); |
| 891 | } else if (hi->encoding == OBJ_ENCODING_HT) { |
| 892 | sds value = hashTypeCurrentFromHashTable(hi, what); |
| 893 | addReplyBulkCBuffer(c, value, sdslen(value)); |
| 894 | } else { |
| 895 | serverPanic("Unknown hash encoding"); |
| 896 | } |
| 897 | } |
| 898 | |
| 899 | void genericHgetallCommand(client *c, int flags) { |
| 900 | robj_roptr o; |
no test coverage detected