DiceDB / dice

DiceDB is a redis-compliant, in-memory, real-time, and reactive database optimized for modern hardware and for building and scaling truly real-time applications.
https://dicedb.io/
Other
6.58k stars 1.04k forks source link

Inconsistent `LPOP`: Command doesn't support multiple args #1100

Open lucifercr07 opened 1 week ago

lucifercr07 commented 1 week ago

Steps to reproduce

> RPUSH mylist "one" "two" "three" "four" "five"
(integer) 5
> LPOP mylist 2
(error) ERR wrong number of arguments for 'lpop' command

Expected output

The expected output when the above set of commands (maybe when run on Redis)

redis> LPOP mylist 2
1) "two"
2) "three"

Observed output

The observed output when the above set of commands when run on DiceDB

0.0.0.0:7379> LPOP mylist 2
(error) ERR wrong number of arguments for 'lpop' command

Expectations for resolution

This issue will be considered resolved when the following things are done

  1. changes in the dice code to meet the expected behaviour
  2. addition of relevant test case to ensure we catch the regression

You can find the tests under the integration_tests directory of the dice repository and the steps to run are in the README file. Refer to the following links to set up DiceDB and Redis 7.2.5 locally

bhima2001 commented 1 week ago

@lucifercr07 I would like to work on this.

tren03 commented 1 week ago

Hey! I am new in the community and didn't know if I could solve this issue but I gave it a go Here are the results

dice-output

I tried including all the testcases I could think of, and tried to get the output as similar as i could to redis output this is the redis output

redis-output

Dhroov7 commented 1 week ago

@lucifercr07 If this issue is still open, Can i pick this up?

arpitbbhayani commented 2 days ago

Hello @tren03,

There has been no activity on this issue for the past 5 days. It would be awesome if you keep posting updates to this issue so that we know you are actively working on it.

We are really eager to close this issue at the earliest, hence if we continue to see the inactivity, we will have to reassign the issue to someone else. We are doing this to ensure that the project maintains its momentum and others are not blocked on this work.

Just drop a comment with the current status of the work or share any issues you are facing. We can always chip in to help you out.

Thanks again.