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
08ee9b57
Commit
08ee9b57
authored
Apr 18, 2010
by
antirez
Browse files
Fix for a SORT bug introduced with commit
16fa22f1
, regression test added
parent
17772754
Changes
2
Hide whitespace changes
Inline
Side-by-side
redis.c
View file @
08ee9b57
...
...
@@ -3058,7 +3058,7 @@ static robj *getDecodedObject(robj *o) {
dec
=
createStringObject
(
buf
,
strlen
(
buf
));
return
dec
;
}
else
{
redis
Assert
(
1
!=
1
);
redis
Panic
(
"Unknown encoding type"
);
}
}
...
...
@@ -6626,9 +6626,8 @@ static int sortCompare(const void *s1, const void *s2) {
cmp
=
strcoll
(
so1
->
u
.
cmpobj
->
ptr
,
so2
->
u
.
cmpobj
->
ptr
);
}
}
else
{
/* Compare elements directly. Note that these objects already
* need to be non-encoded (see sortCommand). */
cmp
=
strcoll
(
so1
->
obj
->
ptr
,
so2
->
obj
->
ptr
);
/* Compare elements directly. */
cmp
=
compareStringObjects
(
so1
->
obj
,
so2
->
obj
);
}
}
return
server
.
sort_desc
?
-
cmp
:
cmp
;
...
...
@@ -6766,7 +6765,7 @@ static void sortCommand(redisClient *c) {
}
if
(
alpha
)
{
vector
[
j
].
u
.
cmpobj
=
getDecodedObject
(
byval
);
if
(
sortby
)
vector
[
j
].
u
.
cmpobj
=
getDecodedObject
(
byval
);
}
else
{
if
(
byval
->
encoding
==
REDIS_ENCODING_RAW
)
{
vector
[
j
].
u
.
score
=
strtod
(
byval
->
ptr
,
NULL
);
...
...
test-redis.tcl
View file @
08ee9b57
...
...
@@ -935,6 +935,15 @@ proc main {} {
lsort
[
array names myset
]
}
{
a b c
}
test
{
SORT ALPHA against integer encoded strings
}
{
$r del mylist
$r lpush mylist 2
$r lpush mylist 1
$r lpush mylist 3
$r lpush mylist 10
$r sort mylist alpha
}
{
1 10 2 3
}
test
{
Create a random list and a random set
}
{
set tosort
{}
array set seenrand
{}
...
...
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