Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
e41d1d77
Commit
e41d1d77
authored
Jan 29, 2013
by
antirez
Browse files
Generate del events when S*STORE commands delete the destination key.
parent
d2b27f1d
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/t_set.c
View file @
e41d1d77
...
...
@@ -706,7 +706,7 @@ void sinterGenericCommand(redisClient *c, robj **setkeys, unsigned long setnum,
if
(
dstkey
)
{
/* Store the resulting set into the target, if the intersection
* is not an empty set. */
dbDelete
(
c
->
db
,
dstkey
);
int
deleted
=
dbDelete
(
c
->
db
,
dstkey
);
if
(
setTypeSize
(
dstset
)
>
0
)
{
dbAdd
(
c
->
db
,
dstkey
,
dstset
);
addReplyLongLong
(
c
,
setTypeSize
(
dstset
));
...
...
@@ -715,6 +715,9 @@ void sinterGenericCommand(redisClient *c, robj **setkeys, unsigned long setnum,
}
else
{
decrRefCount
(
dstset
);
addReply
(
c
,
shared
.
czero
);
if
(
deleted
)
notifyKeyspaceEvent
(
REDIS_NOTIFY_GENERIC
,
"del"
,
dstkey
,
c
->
db
->
id
);
}
signalModifiedKey
(
c
->
db
,
dstkey
);
server
.
dirty
++
;
...
...
@@ -873,7 +876,7 @@ void sunionDiffGenericCommand(redisClient *c, robj **setkeys, int setnum, robj *
}
else
{
/* If we have a target key where to store the resulting set
* create this key with the result set inside */
dbDelete
(
c
->
db
,
dstkey
);
int
deleted
=
dbDelete
(
c
->
db
,
dstkey
);
if
(
setTypeSize
(
dstset
)
>
0
)
{
dbAdd
(
c
->
db
,
dstkey
,
dstset
);
addReplyLongLong
(
c
,
setTypeSize
(
dstset
));
...
...
@@ -883,6 +886,9 @@ void sunionDiffGenericCommand(redisClient *c, robj **setkeys, int setnum, robj *
}
else
{
decrRefCount
(
dstset
);
addReply
(
c
,
shared
.
czero
);
if
(
deleted
)
notifyKeyspaceEvent
(
REDIS_NOTIFY_GENERIC
,
"del"
,
dstkey
,
c
->
db
->
id
);
}
signalModifiedKey
(
c
->
db
,
dstkey
);
server
.
dirty
++
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment