yoav
4930d903fc
Fix eval usage in tests to conform with eval semantics
2014-04-06 17:20:01 +03:00
antirez
9a914a632d
"SORT by nosort" (skip sorting) respect sorted set ordering.
...
When SORT is called with the option BY set to a string constant not
inclduing the wildcard character "*", there is no way to sort the output
so any ordering is valid. This allows the SORT internals to optimize its
work and don't really sort the output at all.
However it was odd that this option was not able to retain the natural
order of a sorted set. This feature was requested by users multiple
times as sometimes to call SORT with GET against sorted sets as a way to
mass-fetch objects can be handy.
This commit introduces two things:
1) The ability of SORT to return sorted sets elements in their natural
ordering when `BY nosort` is specified, accordingly to `DESC / ASC` options.
2) The ability of SORT to optimize this case further if LIMIT is passed
as well, avoiding to really fetch the whole sorted set, but directly
obtaining the specified range.
Because in this case the sorting is always deterministic, no
post-sorting activity is performed when SORT is called from a Lua
script.
This commit fixes issue #98 .
2012-10-03 14:54:43 +02:00
antirez
6a3f0ac68a
Added test for SORT corner case: pattern ending with just "->".
2012-04-17 16:28:59 +02:00
antirez
44d77bb217
A few SORT tests made more resistant to false negatives resulitng from poor randomization of Redis hash function with one byte inputs.
2012-02-01 17:37:48 +01:00
antirez
01f75bf352
New SORT tests checking the new more deterministic behavior of SORT sorting algorithm.
2012-02-01 17:17:52 +01:00
antirez
de79a2ee12
Make SORT BY <constant> STORE ... to always produce the same output by force sorting, so that we have deterministic replication of this command.
2012-02-01 17:05:45 +01:00
antirez
2c861050c1
SORT is now more deterministic: does not accept to compare by score items that have scores not representing a valid double. Also items with the same score are compared lexycographically. At the same time the scripting side introduced the ability to sort the output of SORT when sort uses the BY <constant> optimization, resulting in no specific ordering. Since in this case the user may use GET, and the result of GET can be null, converted into false as Lua data type, this commit also introduces the ability to sort Lua tables containining false, only if the first (faster) attempt at using just table.sort with a single argument fails.
2012-02-01 15:22:28 +01:00
Michal Kwiatkowski
a0bf8d0ad8
SORT with STORE removes key if result is empty. This fixes issue #227 .
2012-01-30 07:36:49 +01:00
BigCat
f54c299091
I found that no test will fail even if I broke the SORT x LIMIT y z
code.
...
Added a naive unit test for SORT-LIMIT command.
2011-12-19 19:49:34 +08:00
antirez
237194b760
Fixed SORT bugs (issue #224 ) with regression tests.
2011-12-01 16:08:05 +01:00
Pieter Noordhuis
6f8a32d5c7
Be less verbose in testing; improve error handling
2010-12-10 16:13:21 +01:00
Pieter Noordhuis
dc11daf3b5
Change tests to use either the inline or the multibulk protocol
2010-10-15 17:25:20 +02:00
antirez
452ccf7a41
SORT stress testing against bigger aggregate values
2010-08-26 17:29:13 +02:00
Pieter Noordhuis
029e5577ff
Make SORT use the hybrid set accessors to allow sorting intsets
2010-08-21 11:20:41 +02:00
Pieter Noordhuis
2b9a59471f
SORT tests with hash table encoded set as input
2010-08-21 11:03:56 +02:00
Pieter Noordhuis
ced6709cb9
Make SORT tests use both ziplists and linked lists as input
2010-08-21 11:02:22 +02:00
Pieter Noordhuis
5d4f3a8c85
Move SORT tests around
2010-08-21 10:55:53 +02:00
Pieter Noordhuis
7a6ae0a2b2
scope res variable outside test
2010-06-03 00:06:58 +02:00
Pieter Noordhuis
7f7499eeac
tags for existing tests
2010-06-02 23:22:25 +02:00
Pieter Noordhuis
9e5d2e8bd6
changed how server.tcl accepts options to support more directives without requiring more arguments to the proc
2010-06-02 22:23:52 +02:00
antirez
ab72b4833d
minor fixes to the new test suite, html doc updated
2010-05-14 18:48:33 +02:00