| 657 | } |
| 658 | |
| 659 | void hsetCommand(client *c) { |
| 660 | int i, created = 0; |
| 661 | robj *o; |
| 662 | |
| 663 | if ((c->argc % 2) == 1) { |
| 664 | addReplyErrorFormat(c,"wrong number of arguments for '%s' command",c->cmd->name); |
| 665 | return; |
| 666 | } |
| 667 | |
| 668 | if ((o = hashTypeLookupWriteOrCreate(c,c->argv[1])) == NULL) return; |
| 669 | hashTypeTryConversion(o,c->argv,2,c->argc-1); |
| 670 | |
| 671 | for (i = 2; i < c->argc; i += 2) |
| 672 | created += !hashTypeSet(o,szFromObj(c->argv[i]),szFromObj(c->argv[i+1]),HASH_SET_COPY); |
| 673 | |
| 674 | /* HMSET (deprecated) and HSET return value is different. */ |
| 675 | char *cmdname = szFromObj(c->argv[0]); |
| 676 | if (cmdname[1] == 's' || cmdname[1] == 'S') { |
| 677 | /* HSET */ |
| 678 | addReplyLongLong(c, created); |
| 679 | } else { |
| 680 | /* HMSET */ |
| 681 | addReply(c, shared.ok); |
| 682 | } |
| 683 | signalModifiedKey(c,c->db,c->argv[1]); |
| 684 | notifyKeyspaceEvent(NOTIFY_HASH,"hset",c->argv[1],c->db->id); |
| 685 | g_pserver->dirty += (c->argc - 2)/2; |
| 686 | } |
| 687 | |
| 688 | void hincrbyCommand(client *c) { |
| 689 | long long value, incr, oldvalue; |
nothing calls this directly
no test coverage detected