Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
d36c4e97
Commit
d36c4e97
authored
Mar 23, 2010
by
antirez
Browse files
key deletion on empty value fix + some refactoring
parent
3ea27d37
Changes
1
Hide whitespace changes
Inline
Side-by-side
redis.c
View file @
d36c4e97
...
@@ -4790,17 +4790,14 @@ static void sinterGenericCommand(redisClient *c, robj **setskeys, unsigned long
...
@@ -4790,17 +4790,14 @@ static void sinterGenericCommand(redisClient *c, robj **setskeys, unsigned long
if
(
dictSize
((
dict
*
)
dstset
->
ptr
)
>
0
)
{
if
(
dictSize
((
dict
*
)
dstset
->
ptr
)
>
0
)
{
dictAdd
(
c
->
db
->
dict
,
dstkey
,
dstset
);
dictAdd
(
c
->
db
->
dict
,
dstkey
,
dstset
);
incrRefCount
(
dstkey
);
incrRefCount
(
dstkey
);
addReplyLong
(
c
,
dictSize
((
dict
*
)
dstset
->
ptr
));
}
else
{
}
else
{
decrRefCount
(
dstset
);
decrRefCount
(
dstset
);
addReply
(
c
,
shared
.
czero
);
}
}
}
if
(
!
dstkey
)
{
lenobj
->
ptr
=
sdscatprintf
(
sdsempty
(),
"*%lu
\r\n
"
,
cardinality
);
}
else
{
addReplySds
(
c
,
sdscatprintf
(
sdsempty
(),
":%lu
\r\n
"
,
dictSize
((
dict
*
)
dstset
->
ptr
)));
server
.
dirty
++
;
server
.
dirty
++
;
}
else
{
lenobj
->
ptr
=
sdscatprintf
(
sdsempty
(),
"*%lu
\r\n
"
,
cardinality
);
}
}
zfree
(
dv
);
zfree
(
dv
);
}
}
...
@@ -4873,7 +4870,8 @@ static void sunionDiffGenericCommand(redisClient *c, robj **setskeys, int setsnu
...
@@ -4873,7 +4870,8 @@ static void sunionDiffGenericCommand(redisClient *c, robj **setskeys, int setsnu
}
}
dictReleaseIterator
(
di
);
dictReleaseIterator
(
di
);
if
(
op
==
REDIS_OP_DIFF
&&
cardinality
==
0
)
break
;
/* result set is empty */
/* result set is empty? Exit asap. */
if
(
op
==
REDIS_OP_DIFF
&&
cardinality
==
0
)
break
;
}
}
/* Output the content of the resulting set, if not in STORE mode */
/* Output the content of the resulting set, if not in STORE mode */
...
@@ -4887,6 +4885,7 @@ static void sunionDiffGenericCommand(redisClient *c, robj **setskeys, int setsnu
...
@@ -4887,6 +4885,7 @@ static void sunionDiffGenericCommand(redisClient *c, robj **setskeys, int setsnu
addReplyBulk
(
c
,
ele
);
addReplyBulk
(
c
,
ele
);
}
}
dictReleaseIterator
(
di
);
dictReleaseIterator
(
di
);
decrRefCount
(
dstset
);
}
else
{
}
else
{
/* If we have a target key where to store the resulting set
/* If we have a target key where to store the resulting set
* create this key with the result set inside */
* create this key with the result set inside */
...
@@ -4894,17 +4893,11 @@ static void sunionDiffGenericCommand(redisClient *c, robj **setskeys, int setsnu
...
@@ -4894,17 +4893,11 @@ static void sunionDiffGenericCommand(redisClient *c, robj **setskeys, int setsnu
if
(
dictSize
((
dict
*
)
dstset
->
ptr
)
>
0
)
{
if
(
dictSize
((
dict
*
)
dstset
->
ptr
)
>
0
)
{
dictAdd
(
c
->
db
->
dict
,
dstkey
,
dstset
);
dictAdd
(
c
->
db
->
dict
,
dstkey
,
dstset
);
incrRefCount
(
dstkey
);
incrRefCount
(
dstkey
);
addReplyLong
(
c
,
dictSize
((
dict
*
)
dstset
->
ptr
));
}
else
{
}
else
{
decrRefCount
(
dstset
);
decrRefCount
(
dstset
);
addReply
(
c
,
shared
.
czero
);
}
}
}
/* Cleanup */
if
(
!
dstkey
)
{
decrRefCount
(
dstset
);
}
else
{
addReplySds
(
c
,
sdscatprintf
(
sdsempty
(),
":%lu
\r\n
"
,
dictSize
((
dict
*
)
dstset
->
ptr
)));
server
.
dirty
++
;
server
.
dirty
++
;
}
}
zfree
(
dv
);
zfree
(
dv
);
...
...
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