Skip to content

Conversation

@shivamka1
Copy link
Collaborator

@shivamka1 shivamka1 commented Sep 4, 2025

Old PR : #2183

Fixes #1941
Fixes #2211
Fixes #2234

shivamka1 and others added 11 commits September 3, 2025 13:48
…/Raphtory into features/window_filter_semantics
* impl node py filter iter

* chore: apply tidy-public auto-fixes

* impl path_from_graph, path_from_node, edges, nested_edges py filter, fix tests,

* rid iter_graph

* add more tests

* add more tests

* add exploded edges test

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'GraphQL Benchmark'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 2.

Benchmark suite Current: 2c43237 Previous: f14de7d Ratio
addNode 17 req/s 1460 req/s 85.88

This comment was automatically generated by workflow using github-action-benchmark.

shivamka1 and others added 8 commits September 17, 2025 18:03
* impl node id filter

* impl node id filter for gql

* impl edge src/dst id filter

* chore: apply tidy-public auto-fixes

* add validations, support numeric, string filters for ids

* rid dead code

* add review changes

* fix options

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'Rust Benchmark'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 2.

Benchmark suite Current: f36ed66 Previous: db0c971 Ratio
lotr_graph_window_50_layered/has_node_nonexisting 5 ns/iter (± 0) 2 ns/iter (± 0) 2.50
lotr_graph_persistent_window_50_layered/has_node_nonexisting 5 ns/iter (± 0) 2 ns/iter (± 0) 2.50

This comment was automatically generated by workflow using github-action-benchmark.

shivamka1 and others added 4 commits September 26, 2025 08:53
* impl qualifier filters for list properties and metadata

* impl python, graphql qualifier filter, add tests

* rename gql from gql object names, throw error if prop not found

* ref

* add more suggestions

* allow empty graph in tests

* allow empty graphs for tests

* fix test
* impl aggs for temporal properties, add tests

* add review suggestions
* redesign, refactor property filters

* takes a reference

* rework validation

* fix arbitrary list, fix tests

* merge python traits, fix tests, add more validations

* rework gql filtering apis, fix tests

* add review suggestions

* Features/gql apis (#2350)

* impl nodes select filtering in gql

* change semantics of filters in gql, add missing filter apis in edges, fix all tests

* add more edge filter tests

* add filtering to path from node, add tests

* fix apply views

* rename filter-iter to select

* add select as args

* impl window filter (#2359)

* impl window filter

* impl window filter in python, add tests

* impl gql window filter, add tests

* ref

* impl review suggestions

* fixes

* fix py and gql

* add review suggestions
@shivamka1
Copy link
Collaborator Author

Search nodes APIs are essentially nodes select instead of graph node filter because graph filter applies to subgraph which may filter edges and resultantly nodes depending upon how graph was created:

graph.filter(node_filter).nodes() -> applies to subgraph (applies to edges which may filter nodes),  
graph.nodes.select(node_filter)

shivamka1 and others added 4 commits November 25, 2025 19:34
* redesign, refactor property filters

* takes a reference

* rework validation

* fix arbitrary list, fix tests

* merge python traits, fix tests, add more validations

* rework gql filtering apis, fix tests

* impl nodes select filtering in gql

* change semantics of filters in gql, add missing filter apis in edges, fix all tests

* add more edge filter tests

* add filtering to path from node, add tests

* impl window filter

* impl window filter in python, add tests

* impl gql window filter, add tests

* ref

* impl edge node filtering, add few tests

* rid redundant code

* fix call to filter nodes

* rid dead code

* Integrating edge endpoint filtering mechanism into Python using the same wrapper types as node filtering.

* Added src/dst endpoint filtering support for exploded edge filters in rust and python

* Added src/dst endpoint filtering support for exploded edge filters in GraphQL and fixed search

* Added tests from previous branch, some of them fail

* Fixed DynFilterOps implementations for EndpointWrapper<T> types. Endpoint filtering tests pass

* Changed many impls to be blanket implementations using traits, especially EndpointWrapper<T> types. Use indexes in search on edge endpoints using NodeFilterExecutor.

* rid dead code

* nodeops suggestions from lucas

* start fixing some apis

* fixed most of the compilation errors

* fix all the python problems except for actually implementing the python filtering

* finish ref, fix tests

* redone

* fix

* more changes

* start fixing infinite trait bound recursion

* rid filtered graphs

* rid nodetypefilteredgraph

* add review suggestions

* fix infinite type recursion

* fmt, fix recursion issue in search

* impl py

* Do not rely on Wrap for the trait bounds in the builder API as the compiler cannot figure out the bounds when trying to implement python wrappers.

* fix gql, tests

---------

Co-authored-by: arienandalibi <arienandalibi2@gmail.com>
Co-authored-by: Lucas Jeub <lucas.jeub@pometry.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

6 participants