Closed majklik closed 4 years ago
Hey @majklik, you are right, this is a known limitation today.
Thanks a lot for the diff! This is not a trivial patch. Webdis was written long before Redis had support for streams and has never been updated to add this support (first commit was when Redis 2.0.4 was the latest stable release 😊).
Thanks also for linking this issue to the GEORADIUS
one, but from a quick look at your diff it seems like GEORADIUS
would also need some special-casing like these two lines?
+ if(strcasecmp(verb, "XRANGE") == 0 || strcasecmp(verb, "XREVRANGE") == 0) {
[...]
+ if(strcasecmp(verb, "XREAD") == 0 || strcasecmp(verb, "XREADGROUP") == 0) {
And aside from GEORADIUS
, are there any other unsupported commands that use the nested maps?
I haven't reviewed this change too carefully yet (and I need to test it thoroughly before it can be integrated), but would you like to re-submit it as a pull request so that you can be duly credited for this work? Having a PR would also let me comment on it and make suggestions for changes. That said if you're just happy with me taking it as is and don't particularly care for this process, I can do that too and just mention your handle in the commit message (or any other name/username/email you'd prefer instead).
Let me know what you think.
Closing this in favor of #177.
Webdis actually do not supports replies which uses nested arrays. The array element is converted into NULL. I wrote small path which solve this for JSON output. It tioo handle specific output of the XRANGE/XREAD commands like older implementation for HGETALL: