Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Node: added zrange and zrangeWithScores commands. #1115

Merged
merged 4 commits into from
Apr 10, 2024

Conversation

adanWattad
Copy link
Contributor

Issue #, if available:

Description of changes:

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@adanWattad adanWattad requested a review from a team as a code owner March 13, 2024 15:15
@adanWattad adanWattad force-pushed the node/zrange branch 2 times, most recently from 47e00a5 to 71af8de Compare March 13, 2024 15:21
node/src/Commands.ts Outdated Show resolved Hide resolved
Copy link
Collaborator

@barshaul barshaul left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why RangeByScoreOrLex isn't separated to two types as we do in python, RangeByScore and RangeByLex? we shouldn't accept ScoreLimit as strings when is lex is false, and we should except number when is lex is true. We also cannot use it later on with the specific zrange functions (e.g. ZRANGEBYLEX). Please follow python's design, and ping me when it's ready for review 🙏

node/src/BaseClient.ts Outdated Show resolved Hide resolved
node/src/BaseClient.ts Outdated Show resolved Hide resolved
*/
type Range<T> = {
/**
* The start score boundary.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same - it should be used both for lex and score, so the doc might be confusing

node/src/Commands.ts Outdated Show resolved Hide resolved
};
};

export type RangeByScore = Range<number> & { type: "byScore" };
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice solution

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think "Lex" and "Score" is sufficient for 'type'

Copy link
Collaborator

@barshaul barshaul left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

round

@adanWattad
Copy link
Contributor Author

@barshaul ready

* If `key` does not exist, it is treated as an empty sorted set, and the command returns an empty array.
*
* @example
* await client.zadd("mySortedSet", \{ member1: 1.0, member2: 2.0, member3: 3.0 \});
Copy link
Collaborator

@barshaul barshaul Apr 2, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please follow format for examples:

* @example
 * ```typescript
 * // Example usage of the echo method
 * const echoedMessage = await client.echo("Glide-for-Redis");
 * console.log(echoedMessage); // Output: "Glide-for-Redis"
 * ```
 */

* @example
* await client.zadd("mySortedSet", \{ member1: 1.0, member2: 2.0, member3: 3.0 \});
*
* await client.zrange("mySortedSet", \{ start: 0, stop: -1 \});
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why are the \ needed?

export type RangeByScore = SortedSetRange<number> & { type: "byScore" };
export type RangeByLex = SortedSetRange<string> & { type: "byLex" };

function getScoreLimitArg(
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

getScoreBoundaryArg


function getScoreLimitArg(
score: ScoreBoundary<number> | ScoreBoundary<string>,
isLex: boolean = false,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please add documentation, this function isn't trivial

Copy link
Collaborator

@barshaul barshaul left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fix& mrege

@shohamazon shohamazon merged commit 4e7acdc into valkey-io:main Apr 10, 2024
12 checks passed
Sa1Gur pushed a commit to Sa1Gur/glide-for-redis that referenced this pull request Apr 10, 2024
commit 0a430cf
Author: Andrew Carbonetto <[email protected]>
Date:   Wed Apr 10 13:30:02 2024 -0700

    Java/Node: Update docs for `xadd` and `xtrim` (valkey-io#1246)

    * Java: Add XADD command (Stream commands) (valkey-io#155)

    * Add Stream XADD command to Java

    Signed-off-by: Andrew Carbonetto <[email protected]>

    ---------

    Signed-off-by: Andrew Carbonetto <[email protected]>

    * Java: Add Zpopmax command. (Sorted Set Commands) (valkey-io#1164)

    * Java: Add Zpopmax command. (Sorted Set Commands) (valkey-io#149)

    * Minor documentation update.

    * Minor test update.

    * Spotless

    Signed-off-by: Andrew Carbonetto <[email protected]>

    * Minor documentation update.

    * Rebase + Spotless

    ---------

    Signed-off-by: Andrew Carbonetto <[email protected]>
    Co-authored-by: Andrew Carbonetto <[email protected]>

    * Spotless

    Signed-off-by: Andrew Carbonetto <[email protected]>

    * Clean up merge

    Signed-off-by: Andrew Carbonetto <[email protected]>

    * Move xadd command

    Signed-off-by: Andrew Carbonetto <[email protected]>

    * Spotless

    Signed-off-by: Andrew Carbonetto <[email protected]>

    * PR comments.

    Signed-off-by: Yury-Fridlyand <[email protected]>

    * Update xtrim documentation

    Signed-off-by: Andrew Carbonetto <[email protected]>

    * Spotless

    Signed-off-by: Andrew Carbonetto <[email protected]>

    ---------

    Signed-off-by: Andrew Carbonetto <[email protected]>
    Signed-off-by: Yury-Fridlyand <[email protected]>
    Co-authored-by: SanHalacogluImproving <[email protected]>
    Co-authored-by: Yury-Fridlyand <[email protected]>

commit 4ce976c
Author: SanHalacogluImproving <[email protected]>
Date:   Wed Apr 10 12:36:56 2024 -0700

    Java: Add `Zmscore` command. (Sorted Set Command Group) (valkey-io#1234)

    * Java: Add Zmscore command. (Sorted Set Command Group) (valkey-io#173)

    * Minor update + remove change log.

    * Minor documentation update.

    * Minor IT update.

    * Rebase + Spotless.

    * Minor IT test update.

commit ae0a8f4
Author: Yury-Fridlyand <[email protected]>
Date:   Wed Apr 10 12:33:22 2024 -0700

    Java: Refactor transaction UT (valkey-io#1242)

    Refactor transaction UT. (valkey-io#192)

    Signed-off-by: Yury-Fridlyand <[email protected]>

commit fec74b8
Author: Andrew Carbonetto <[email protected]>
Date:   Wed Apr 10 12:28:18 2024 -0700

    Clean up all warnings in Java client test (valkey-io#1213)

    * Clean up all warnings in Java client test

    Signed-off-by: Andrew Carbonetto <[email protected]>

    ---------

    Signed-off-by: Andrew Carbonetto <[email protected]>

    * Clean FfiTest.java of warnings

    Signed-off-by: Andrew Carbonetto <[email protected]>

    * Clean RedisClusterClientTest.java of compiler warnings

    Signed-off-by: Andrew Carbonetto <[email protected]>

    * Clean up more warnings in client tests

    Signed-off-by: Andrew Carbonetto <[email protected]>

    * Spotless

    Signed-off-by: Andrew Carbonetto <[email protected]>

    * Fix UT + update IT.

    Signed-off-by: Yury-Fridlyand <[email protected]>

    * Update suppression.

    Signed-off-by: Yury-Fridlyand <[email protected]>

    * Remove suppress warnings

    Signed-off-by: Andrew Carbonetto <[email protected]>

    ---------

    Signed-off-by: Andrew Carbonetto <[email protected]>
    Signed-off-by: Yury-Fridlyand <[email protected]>
    Co-authored-by: Yury-Fridlyand <[email protected]>

commit 527e1ec
Author: SanHalacogluImproving <[email protected]>
Date:   Wed Apr 10 12:06:01 2024 -0700

    Java: Add `lindex` command. (List Command Group) (valkey-io#1219)

    * Java: Add lindex command. (List Command Group) (valkey-io#158)

    * Minor documentation update + changed param from int to long + minor IT update.

commit d766f51
Author: Andrew Carbonetto <[email protected]>
Date:   Wed Apr 10 10:01:55 2024 -0700

    Node: Fix build section for node DEVELOPER.md (valkey-io#1250)

    * Fix build section for node DEVELOPER.md

    Signed-off-by: Andrew Carbonetto <[email protected]>

    * Fix numbers in DEVELOPER.md

    Signed-off-by: Andrew Carbonetto <[email protected]>

    * Run prettier

    ---------

    Signed-off-by: Andrew Carbonetto <[email protected]>
    Co-authored-by: Jonathan Louie <[email protected]>

commit 939a519
Author: jonathanl-bq <[email protected]>
Date:   Wed Apr 10 09:08:43 2024 -0700

    Java: Use LinkedHashMap instead of HashMap for Java wrapper Map values returned from Redis (valkey-io#1257)

    * Use LinkedHashMap instead of HashMap for Java wrapper Map values returned from Redis

    * Run cargo fmt

commit d21dbc9
Author: Shoham Elias <[email protected]>
Date:   Wed Apr 10 18:02:22 2024 +0300

    add missing examples and minor doc fix (valkey-io#1258)

commit 09bec2d
Author: ort-bot <[email protected]>
Date:   Wed Apr 10 00:19:09 2024 +0000

    Updated attribution files

commit 4e7acdc
Author: Adan Wattad <[email protected]>
Date:   Wed Apr 10 11:11:21 2024 +0300

    Node: added zrange and zrangeWithScores commands. (valkey-io#1115)

    ---------

    Co-authored-by: Adan <[email protected]>
    Co-authored-by: Shoham Elias <[email protected]>
    Co-authored-by: Shoham Elias <[email protected]>

commit 79c49a4
Author: Gilboab <[email protected]>
Date:   Wed Apr 10 10:53:16 2024 +0300

    Python: Added RENAME command (valkey-io#1252)

    Python: Added rename command

commit 78cfa33
Author: Adan Wattad <[email protected]>
Date:   Tue Apr 9 14:29:45 2024 +0300

    Node: added spop and spopCount commands. (valkey-io#1117)

    Co-authored-by: Shoham Elias <[email protected]>

commit 5395fe1
Author: Shoham Elias <[email protected]>
Date:   Tue Apr 9 12:23:59 2024 +0300

    Python: adds ZREMRANGEBYSCORE command (valkey-io#1151)
cyip10 pushed a commit to Bit-Quill/valkey-glide that referenced this pull request Jun 24, 2024
---------

Co-authored-by: Adan <[email protected]>
Co-authored-by: Shoham Elias <[email protected]>
Co-authored-by: Shoham Elias <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants