Skip to content

Make LIMIT be processed in the driver level #162

@rogerlucena

Description

@rogerlucena

At the moment, it seems that only for the g.Triples driver call, in data_access.go, the LIMIT information (stmLimit variable there) is being passed to the driver through the MaxElements field of LookupOptions.

For the other driver calls this MaxElements field of LookupOptions does not seem to be used, and the LIMIT operation is apparently executed solely in the planner level (after all the data was already returned from the driver), truncating the result table with the queryPlan.limit() method. This is not optimal as there was no need to return all that data from the driver just for it to be truncated later, with only a portion of it being useful.

Then, the performance could be a little better if this LIMIT processing was done directly in the driver level, as it already seems to be the case for g.Triples.

N.B. Note that there is a difference between rows in the table result and triples returned from a driver call (for more on that, refer to addTriples in data_access.go). Be attentive when truncating one or the other as for the final result to still be what is expected.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions