]> git.saurik.com Git - redis.git/log
redis.git
12 years agoredis.conf updated with new maxmemory semantics
antirez [Tue, 7 Feb 2012 23:17:27 +0000 (00:17 +0100)] 
redis.conf updated with new maxmemory semantics

12 years agodebugging messages removed from freeMemoryIfNeeded()
antirez [Tue, 7 Feb 2012 23:10:20 +0000 (00:10 +0100)] 
debugging messages removed from freeMemoryIfNeeded()

12 years agoFixes to c->reply_bytes computation, and debug messages to closely study the behavior...
antirez [Tue, 7 Feb 2012 16:41:31 +0000 (17:41 +0100)] 
Fixes to c->reply_bytes computation, and debug messages to closely study the behavior of memory pressure + slaves + maxmemory + blocked slaves.

12 years agoPrecision of getClientOutputBufferMemoryUsage() greatily improved, see issue #327...
antirez [Tue, 7 Feb 2012 12:05:36 +0000 (13:05 +0100)] 
Precision of getClientOutputBufferMemoryUsage() greatily improved, see issue #327 for more information.

12 years agofreeMemoryIfNeeded() minor refactoring
antirez [Mon, 6 Feb 2012 15:56:42 +0000 (16:56 +0100)] 
freeMemoryIfNeeded() minor refactoring

12 years agoAlso remove size of AOF buffers from used memory when doing the math for freeMemoryIf...
antirez [Mon, 6 Feb 2012 15:35:43 +0000 (16:35 +0100)] 
Also remove size of AOF buffers from used memory when doing the math for freeMemoryIfNeeded()

12 years agoThis fixes issue #327, is a very complex fix (unfortunately), details:
antirez [Sat, 4 Feb 2012 13:05:54 +0000 (14:05 +0100)] 
This fixes issue #327, is a very complex fix (unfortunately), details:

1) sendReplyToClient() now no longer stops transferring data to a single
client in the case we are out of memory (maxmemory-wise).

2) in processCommand() the idea of we being out of memory is no longer
the naive zmalloc_used_memory() > server.maxmemory. To say if we can
accept or not write queries is up to the return value of
freeMemoryIfNeeded(), that has full control about that.

3) freeMemoryIfNeeded() now does its math without considering output
buffers size. But at the same time it can't let the output buffers to
put us too much outside the max memory limit, so at the same time it
makes sure there is enough effort into delivering the output buffers to
the slaves, calling the write handler directly.

This three changes are the result of many tests, I found (partially
empirically) that is the best way to address the problem, but maybe
we'll find better solutions in the future.

12 years agoUse less memory when emitting the protocol, by using more shared objects for commonly...
antirez [Sat, 4 Feb 2012 07:58:37 +0000 (08:58 +0100)] 
Use less memory when emitting the protocol, by using more shared objects for commonly emitted parts of the protocol.

12 years agoNow Lua scripts dispatch Redis commands properly calling the call() function. In...
antirez [Thu, 2 Feb 2012 15:30:52 +0000 (16:30 +0100)] 
Now Lua scripts dispatch Redis commands properly calling the call() function. In order to make this possible call() was improved with a new flags argument that controls how the Redis command is executed.

12 years agoSet a 3.5 GB maxmemory limit with noeviction policy if a 32 bit instance without...
antirez [Thu, 2 Feb 2012 09:17:16 +0000 (10:17 +0100)] 
Set a 3.5 GB maxmemory limit with noeviction policy if a 32 bit instance without user-provided memory limits is detected.

12 years agoAdded a server.arch_bits field instead of computing it at runtime for INFO.
antirez [Thu, 2 Feb 2012 09:02:40 +0000 (10:02 +0100)] 
Added a server.arch_bits field instead of computing it at runtime for INFO.

12 years agoOnly incremnet stats for key miss/hit when the key is semantically accessed in read...
antirez [Wed, 1 Feb 2012 20:47:41 +0000 (21:47 +0100)] 
Only incremnet stats for key miss/hit when the key is semantically accessed in read-only.

12 years agoAdded tests checking ability of the scripting engine to reorder the output of command...
antirez [Wed, 1 Feb 2012 16:49:03 +0000 (17:49 +0100)] 
Added tests checking ability of the scripting engine to reorder the output of commands with a random output regarding signle elements position in the multi bulk reply.

12 years agoA few SORT tests made more resistant to false negatives resulitng from poor randomiza...
antirez [Wed, 1 Feb 2012 16:37:48 +0000 (17:37 +0100)] 
A few SORT tests made more resistant to false negatives resulitng from poor randomization of Redis hash function with one byte inputs.

12 years agoNew SORT tests checking the new more deterministic behavior of SORT sorting algorithm.
antirez [Wed, 1 Feb 2012 16:17:52 +0000 (17:17 +0100)] 
New SORT tests checking the new more deterministic behavior of SORT sorting algorithm.

12 years agoMake SORT BY <constant> STORE ... to always produce the same output by force sorting...
antirez [Wed, 1 Feb 2012 16:05:45 +0000 (17:05 +0100)] 
Make SORT BY <constant> STORE ... to always produce the same output by force sorting, so that we have deterministic replication of this command.

12 years agoSORT is now more deterministic: does not accept to compare by score items that have...
antirez [Wed, 1 Feb 2012 14:22:28 +0000 (15:22 +0100)] 
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.

12 years agoOrder output of commands returning random arrays using table.sort when called from...
antirez [Tue, 31 Jan 2012 15:09:21 +0000 (16:09 +0100)] 
Order output of commands returning random arrays using table.sort when called from Lua, partially fixing issue #165. The issue is yet not completely fixed since we can't add the REDIS_CMD_SORT_FOR_SCRIPT flag in SORT currently, both because it may contain NULLs and because it is not cool to re-sort everything at every call when instead this should be sorted only if BY <constant> is used.

12 years agoFixed redis-benchmark --help output typo
antirez [Tue, 31 Jan 2012 10:43:32 +0000 (11:43 +0100)] 
Fixed redis-benchmark --help output typo

12 years ago64 bit instances are no longer limited to have at max 2^32-1 elements in lists.
antirez [Tue, 31 Jan 2012 09:35:52 +0000 (10:35 +0100)] 
64 bit instances are no longer limited to have at max 2^32-1 elements in lists.

12 years agominimal change to obuf-limits.tcl test to make sure there are no false positives...
antirez [Mon, 30 Jan 2012 20:08:10 +0000 (21:08 +0100)] 
minimal change to obuf-limits.tcl test to make sure there are no false positives with 32bit instances as well.

12 years agoMerge remote-tracking branch 'origin/unstable' into unstable
antirez [Mon, 30 Jan 2012 09:40:28 +0000 (10:40 +0100)] 
Merge remote-tracking branch 'origin/unstable' into unstable

12 years agoMerge pull request #319 from fawek/lua-error-location
Salvatore Sanfilippo [Mon, 30 Jan 2012 09:40:17 +0000 (01:40 -0800)] 
Merge pull request #319 from fawek/lua-error-location

Lua reports line numbers off by one in error messages

12 years agosetKey(): call the higher level wrapper setModifiedKey() instead of touchWatchedKey...
antirez [Mon, 30 Jan 2012 09:27:50 +0000 (10:27 +0100)] 
setKey(): call the higher level wrapper setModifiedKey() instead of touchWatchedKey() even if currently they are exactly the same.

12 years agoMerge pull request #321 from mkwiatkowski/ticket227
Salvatore Sanfilippo [Mon, 30 Jan 2012 09:25:34 +0000 (01:25 -0800)] 
Merge pull request #321 from mkwiatkowski/ticket227

SORT with STORE removes key if result is empty. This fixes issue #227.

12 years agoSORT with STORE removes key if result is empty. This fixes issue #227.
Michal Kwiatkowski [Mon, 30 Jan 2012 06:36:49 +0000 (07:36 +0100)] 
SORT with STORE removes key if result is empty. This fixes issue #227.

12 years agoLua reports line numbers off by one in error messages
Jakub Wieczorek [Sun, 29 Jan 2012 13:53:49 +0000 (14:53 +0100)] 
Lua reports line numbers off by one in error messages

12 years agofalse positive in expire tests mitigated with a sleep, but other solutions exist...
antirez [Thu, 26 Jan 2012 15:45:08 +0000 (16:45 +0100)] 
false positive in expire tests mitigated with a sleep, but other solutions exist if needed later.

12 years agoLess false positives for obuf-limits.tcl tests
antirez [Thu, 26 Jan 2012 15:08:24 +0000 (16:08 +0100)] 
Less false positives for obuf-limits.tcl tests

12 years agoAdded test for client output buffer limit (soft limit).
antirez [Wed, 25 Jan 2012 17:34:56 +0000 (18:34 +0100)] 
Added test for client output buffer limit (soft limit).

12 years agoAdded test for client output buffer limit (hard limit).
antirez [Wed, 25 Jan 2012 17:11:04 +0000 (18:11 +0100)] 
Added test for client output buffer limit (hard limit).

12 years agoFixed typo in getClientLimitClassByName()
antirez [Wed, 25 Jan 2012 17:07:56 +0000 (18:07 +0100)] 
Fixed typo in getClientLimitClassByName()

12 years agoMerge branch 'unstable' into limits
antirez [Wed, 25 Jan 2012 15:59:58 +0000 (16:59 +0100)] 
Merge branch 'unstable' into limits

12 years agoFixed another possible bug in cluster.c found by clang --analyze.
antirez [Wed, 25 Jan 2012 15:59:32 +0000 (16:59 +0100)] 
Fixed another possible bug in cluster.c found by clang --analyze.

12 years agoFixed another possible bug in cluster.c found by clang --analyze.
antirez [Wed, 25 Jan 2012 15:59:32 +0000 (16:59 +0100)] 
Fixed another possible bug in cluster.c found by clang --analyze.

12 years agoMerge branch 'unstable' into limits
antirez [Wed, 25 Jan 2012 15:46:53 +0000 (16:46 +0100)] 
Merge branch 'unstable' into limits

12 years agoFixed a non critical bug signaled by clang static analyzer thanks to Mukund Sivaraman...
antirez [Wed, 25 Jan 2012 15:46:19 +0000 (16:46 +0100)] 
Fixed a non critical bug signaled by clang static analyzer thanks to Mukund Sivaraman for reporting it: there was a not initialized field populating the cluster message header, but it is always fixed at later time before sending the packet.

12 years agoMerge branch 'unstable' into limits
antirez [Wed, 25 Jan 2012 09:41:25 +0000 (10:41 +0100)] 
Merge branch 'unstable' into limits

12 years agoaeCreateEventLoop() cleanup on error unified in a single block (original
antirez [Wed, 25 Jan 2012 09:35:47 +0000 (10:35 +0100)] 
aeCreateEventLoop() cleanup on error unified in a single block (original
patch by Mukund Sivaraman, modified by me to make it simpler and to use
my coding style).

12 years agoIf aeApiCreate() fails, there's probably not much one can do, but in the name of...
Mukund Sivaraman [Wed, 25 Jan 2012 09:27:37 +0000 (10:27 +0100)] 
If aeApiCreate() fails, there's probably not much one can do, but in the name of consistency...

12 years agolenght -> length
antirez [Tue, 24 Jan 2012 14:33:15 +0000 (15:33 +0100)] 
lenght -> length

12 years agoredis.conf typo fixed in the client-output-buffer-limit documentation
antirez [Tue, 24 Jan 2012 13:46:23 +0000 (14:46 +0100)] 
redis.conf typo fixed in the client-output-buffer-limit documentation

12 years agoafter all closing a client for output buffer limit overcoming is a WARNING level...
antirez [Tue, 24 Jan 2012 11:03:48 +0000 (12:03 +0100)] 
after all closing a client for output buffer limit overcoming is a WARNING level message.

12 years agoclient-output-buffer-limit documented in redis.conf
antirez [Tue, 24 Jan 2012 10:23:23 +0000 (11:23 +0100)] 
client-output-buffer-limit documented in redis.conf

12 years agoClient output buffer limits: configuration of parameters for the different classes...
antirez [Tue, 24 Jan 2012 09:43:30 +0000 (10:43 +0100)] 
Client output buffer limits: configuration of parameters for the different classes of clients implemented.

12 years agoasyncCloseClientOnOutputBufferLimitReached() now ignores clients with REDIS_CLOSE_ASA...
antirez [Tue, 24 Jan 2012 08:32:39 +0000 (09:32 +0100)] 
asyncCloseClientOnOutputBufferLimitReached() now ignores clients with REDIS_CLOSE_ASAP flag already set. Return value of the function changed from int to void since it is not used. Fixed logging of the client scheduled to be closed.

12 years agoclient buffer handling refactoring and optimization
antirez [Mon, 23 Jan 2012 16:15:49 +0000 (17:15 +0100)] 
client buffer handling refactoring and optimization

12 years agoCLIENT LIST test fixed (there is a new omem field in the output)
antirez [Mon, 23 Jan 2012 15:19:49 +0000 (16:19 +0100)] 
CLIENT LIST test fixed (there is a new omem field in the output)

12 years agoactually call the function to async free clients in serverCron().
antirez [Mon, 23 Jan 2012 15:17:22 +0000 (16:17 +0100)] 
actually call the function to async free clients in serverCron().

12 years agoImplementation of the internals that make possible to terminate clients overcoming...
antirez [Mon, 23 Jan 2012 15:12:37 +0000 (16:12 +0100)] 
Implementation of the internals that make possible to terminate clients overcoming configured output buffer (soft and hard) limits.

12 years agoMerge branch 'unstable' into limits
antirez [Mon, 23 Jan 2012 09:36:07 +0000 (10:36 +0100)] 
Merge branch 'unstable' into limits

12 years agofixed typo in hahs function seed default value. It is no longer used but fixed to...
antirez [Sun, 22 Jan 2012 00:40:23 +0000 (01:40 +0100)] 
fixed typo in hahs function seed default value. It is no longer used but fixed to retain the old constant as default anyway.

12 years agotypo in comment fixed
antirez [Sat, 21 Jan 2012 22:34:06 +0000 (23:34 +0100)] 
typo in comment fixed

12 years agoFix for hash table collision attack. We simply randomize hash table initialization...
antirez [Sat, 21 Jan 2012 22:05:32 +0000 (23:05 +0100)] 
Fix for hash table collision attack. We simply randomize hash table initialization value at startup time.

12 years agoBetter looking registers/stack dump
antirez [Fri, 20 Jan 2012 15:40:43 +0000 (16:40 +0100)] 
Better looking registers/stack dump

12 years agoadded support to dump registers on crash on Linux x32
antirez [Fri, 20 Jan 2012 13:37:50 +0000 (14:37 +0100)] 
added support to dump registers on crash on Linux x32

12 years agoadded support to dump registers on crash on Linux x64
antirez [Fri, 20 Jan 2012 11:54:15 +0000 (12:54 +0100)] 
added support to dump registers on crash on Linux x64

12 years agoall the stack trace related functions are now in debug.c. Now Redis dumps registers...
antirez [Fri, 20 Jan 2012 11:20:45 +0000 (12:20 +0100)] 
all the stack trace related functions are now in debug.c. Now Redis dumps registers and stack content on crash. Currently osx supported, adding Linux right now.

12 years agoIntroduced three client limit classes: normal, slave, pubsub
antirez [Tue, 17 Jan 2012 11:43:01 +0000 (12:43 +0100)] 
Introduced three client limit classes: normal, slave, pubsub

12 years agoTrack the length of the client pending output buffers (still to transfer) in a new...
antirez [Sun, 25 Dec 2011 15:32:54 +0000 (16:32 +0100)] 
Track the length of the client pending output buffers (still to transfer) in a new field in the client structure.

12 years agoMerge remote-tracking branch 'origin/unstable' into unstable
antirez [Mon, 16 Jan 2012 15:50:41 +0000 (16:50 +0100)] 
Merge remote-tracking branch 'origin/unstable' into unstable

12 years agoIt is now posible to flush all the previous saving points in redis.conf by using...
antirez [Mon, 16 Jan 2012 15:50:24 +0000 (16:50 +0100)] 
It is now posible to flush all the previous saving points in redis.conf by using a save directive with a single empty string argument, like it happens for CONFIG SET save.

12 years agoMerge pull request #279 from kashif/patch-1
Salvatore Sanfilippo [Mon, 16 Jan 2012 11:44:00 +0000 (03:44 -0800)] 
Merge pull request #279 from kashif/patch-1

Fixed some typos in redis.conf.

12 years agoDon't change the replication state if SLAVE OF is called with arguments specifying...
antirez [Mon, 16 Jan 2012 10:27:22 +0000 (11:27 +0100)] 
Don't change the replication state if SLAVE OF is called with arguments specifying the same master we are already connected with. This fixes issues #290.

12 years agoObsolete SDS_ABORT_ON_OOM removed from sds.c
antirez [Mon, 16 Jan 2012 09:08:33 +0000 (10:08 +0100)] 
Obsolete SDS_ABORT_ON_OOM removed from sds.c

12 years agosds.c no longe pre-allocate more than 1MB of free space ahead. This fixes issue ...
antirez [Mon, 16 Jan 2012 09:03:38 +0000 (10:03 +0100)] 
sds.c no longe pre-allocate more than 1MB of free space ahead. This fixes issue #252.

12 years agoadded a comment on top of the zslRandomLevel() function
antirez [Mon, 16 Jan 2012 08:39:04 +0000 (09:39 +0100)] 
added a comment on top of the zslRandomLevel() function

12 years agoPossible fix for false positives in issue 141 regression test
antirez [Thu, 12 Jan 2012 15:24:41 +0000 (16:24 +0100)] 
Possible fix for false positives in issue 141 regression test

12 years agoOn crash print information about the current client (if any), command vector, and...
antirez [Thu, 12 Jan 2012 15:02:57 +0000 (16:02 +0100)] 
On crash print information about the current client (if any), command vector, and object associated to first argument assuming it is a key.

12 years agoerror in comment fixed
antirez [Wed, 11 Jan 2012 19:25:41 +0000 (20:25 +0100)] 
error in comment fixed

12 years agoshow GCC version in INFO output.
antirez [Tue, 10 Jan 2012 17:37:16 +0000 (18:37 +0100)] 
show GCC version in INFO output.

12 years agoversion bumped to 2.9.3
antirez [Sat, 7 Jan 2012 11:54:48 +0000 (12:54 +0100)] 
version bumped to 2.9.3

12 years agoRegression test for the main problem causing issue #141. Minor changes/fixes/addition...
antirez [Fri, 6 Jan 2012 16:28:40 +0000 (17:28 +0100)] 
Regression test for the main problem causing issue #141. Minor changes/fixes/additions to the test suite itself needed to write the test.

12 years agoRegression tests for protocol desync bug related to Issue #141
antirez [Fri, 6 Jan 2012 11:54:29 +0000 (12:54 +0100)] 
Regression tests for protocol desync bug related to Issue #141

12 years agoProtections against protocol desyncs, leading to infinite query buffer growing, due...
antirez [Sat, 31 Dec 2011 15:09:46 +0000 (16:09 +0100)] 
Protections against protocol desyncs, leading to infinite query buffer growing, due to nul-terms in specific bytes of the request or indefinitely long multi bulk or bulk count strings without newlines. This bug is related to Issue #141 as well.

12 years agoProtocol and I/O related defines moved into a separated section of redis.h
antirez [Sat, 31 Dec 2011 14:37:33 +0000 (15:37 +0100)] 
Protocol and I/O related defines moved into a separated section of redis.h

12 years agoA few no longer used defines removed from redis.h
antirez [Sat, 31 Dec 2011 14:34:02 +0000 (15:34 +0100)] 
A few no longer used defines removed from redis.h

12 years agoFixed replication when multiple slaves are attaching at the same time. The output...
antirez [Fri, 30 Dec 2011 18:34:40 +0000 (19:34 +0100)] 
Fixed replication when multiple slaves are attaching at the same time. The output buffer was not copied correctly between slaves. This fixes issue #141.

12 years agoFixed some typos in redis.conf.
Kashif Rasul [Wed, 28 Dec 2011 21:14:23 +0000 (22:14 +0100)] 
Fixed some typos in redis.conf.

13 years agoMerge remote-tracking branch 'origin/unstable' into unstable
antirez [Fri, 23 Dec 2011 08:34:28 +0000 (09:34 +0100)] 
Merge remote-tracking branch 'origin/unstable' into unstable

13 years agoAdded regression test for ZUNIONSTORE creating NaN (github issue #264)
antirez [Fri, 23 Dec 2011 08:34:06 +0000 (09:34 +0100)] 
Added regression test for ZUNIONSTORE creating NaN (github issue #264)

13 years agoPrevent NaN scores in sorted sets resulting from calls to ZUNIONSTORE and ZINTERSTORE.
antirez [Fri, 23 Dec 2011 08:27:31 +0000 (09:27 +0100)] 
Prevent NaN scores in sorted sets resulting from calls to ZUNIONSTORE and ZINTERSTORE.

13 years agoMerge pull request #268 from diegok/unstable
Salvatore Sanfilippo [Thu, 22 Dec 2011 15:00:42 +0000 (07:00 -0800)] 
Merge pull request #268 from diegok/unstable

Fixed a config docs typo.

13 years agoFixed a config docs typo.
diegok [Thu, 22 Dec 2011 11:22:23 +0000 (12:22 +0100)] 
Fixed a config docs typo.

13 years agoMerge remote-tracking branch 'origin/unstable' into unstable
antirez [Wed, 21 Dec 2011 16:13:31 +0000 (17:13 +0100)] 
Merge remote-tracking branch 'origin/unstable' into unstable

13 years agosligthly better AOF related logs
antirez [Wed, 21 Dec 2011 16:12:23 +0000 (17:12 +0100)] 
sligthly better AOF related logs

13 years agoLog when the child rewriting the AOF is killed by stopAppendOnly()
antirez [Wed, 21 Dec 2011 15:37:22 +0000 (16:37 +0100)] 
Log when the child rewriting the AOF is killed by stopAppendOnly()

13 years agoserver.replstate -> server.repl_state
antirez [Wed, 21 Dec 2011 11:23:18 +0000 (12:23 +0100)] 
server.replstate -> server.repl_state

13 years agosome RDB server struct fields renamed.
antirez [Wed, 21 Dec 2011 11:22:13 +0000 (12:22 +0100)] 
some RDB server struct fields renamed.

13 years agomore AOF server struct fields renamed.
antirez [Wed, 21 Dec 2011 11:17:02 +0000 (12:17 +0100)] 
more AOF server struct fields renamed.

13 years agoAOF fileds in the global server state, and define names, renamed with more consistent...
antirez [Wed, 21 Dec 2011 10:58:42 +0000 (11:58 +0100)] 
AOF fileds in the global server state, and define names, renamed with more consistent names. More work to do.

13 years agoAOF refactoring, now with three states: ON, OFF, WAIT_REWRITE.
antirez [Wed, 21 Dec 2011 09:31:34 +0000 (10:31 +0100)] 
AOF refactoring, now with three states: ON, OFF, WAIT_REWRITE.

13 years agoserver.appendonly -> server.aof_state, and many comments added in the server global...
antirez [Wed, 21 Dec 2011 09:05:32 +0000 (10:05 +0100)] 
server.appendonly -> server.aof_state, and many comments added in the server global state structure in the process.

13 years agoA test modified to pass with the new AOF start/stop semantics.
antirez [Wed, 21 Dec 2011 08:24:14 +0000 (09:24 +0100)] 
A test modified to pass with the new AOF start/stop semantics.

13 years agoRedis test: when assertion fails print not just the expression but also expanded...
antirez [Wed, 21 Dec 2011 08:23:22 +0000 (09:23 +0100)] 
Redis test: when assertion fails print not just the expression but also expanded values in the error message.

13 years agoDo not propagate DEBUG LOADAOF
antirez [Tue, 20 Dec 2011 16:52:57 +0000 (17:52 +0100)] 
Do not propagate DEBUG LOADAOF

13 years agostartAppendOnly() fixed to set server.appendonly to 0 if the start failed.
antirez [Tue, 20 Dec 2011 16:00:27 +0000 (17:00 +0100)] 
startAppendOnly() fixed to set server.appendonly to 0 if the start failed.

13 years agoMerge remote-tracking branch 'origin/unstable' into aof-fixes
antirez [Tue, 20 Dec 2011 09:29:33 +0000 (10:29 +0100)] 
Merge remote-tracking branch 'origin/unstable' into aof-fixes

13 years agoMerge pull request #258 from miaout17/bugfix-247
Salvatore Sanfilippo [Mon, 19 Dec 2011 13:38:31 +0000 (05:38 -0800)] 
Merge pull request #258 from miaout17/bugfix-247

Fix issue #247 and add a test case

13 years agoI found that no test will fail even if I broke the `SORT x LIMIT y z` code.
BigCat [Mon, 19 Dec 2011 11:45:57 +0000 (19:45 +0800)] 
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.