Skip to content

More Skip Potential #790

@KraftRicardo

Description

@KraftRicardo

Package

Library

Describe the bug

Issue: Unexpected skip behavior in RQ algorithm

When tracking skip percentages in the RQ algorithm, I noticed that some queries produce the same skip values, even when I’d expect differences. Here’s a minimal example:

Query:

$[*].user

JSON:

[
    {
        "a": 42,
        "user": {
            "id": 1
        },
        "b": 43
    },
    {
        "a": 44,
        "user": {
            "id": 2
        },
        "b": 45
    }
]

Observation:

For example the first user entry is not skipped, even though it could be. This may cause performance issues for queries over many large elements, leading to unnecessary processing and time loss.

Minimal Reproducible Example

Query:

$[*].user

JSON:

[
    {
        "a": 42,
        "user": {
            "id": 1
        },
        "b": 43
    },
    {
        "a": 44,
        "user": {
            "id": 2
        },
        "b": 45
    }
]

For example the first user entry is not skipped, even though it could be.

Expected behavior

For example the first user entry is not skipped, even though it could be.

Workarounds (optional)

No response

Proposed solution (optional)

I assume a core function of the automaton needs to be edited here to cover this case. Skipping needs to trigger accordingly.

Version of the release

v0.9.4

Rust version

rustc 1.88.0

Target triple

x86_64-unknown-linux-gnu

Features enabled

default

Codegen options

No response

Additional context (optional)

No response

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions