Add GFQL row join apply (#1411)#1426
Merged
Merged
Conversation
dd510f1 to
3e33e54
Compare
c1bdb2f to
fc1851f
Compare
fc1851f to
d660705
Compare
This was referenced May 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #1411
Summary
join_apply(binding_ops, join_aliases, how)for joining active binding rows to correlated binding rowsValidation
PYTHONPATH=/tmp/pyg1411-deps python3 -m pytest -q graphistry/tests/test_compute_chain.py::TestChainBindingsTable::test_issue_1411_join_apply_projects_joined_message_rows graphistry/tests/test_compute_chain.py::TestChainBindingsTable::test_issue_1411_join_apply_projects_joined_message_rows_on_cudf graphistry/tests/test_compute_chain.py::TestChainBindingsTable::test_issue_1411_join_apply_left_preserves_unmatched_rows graphistry/tests/compute/gfql/cypher/test_lowering.py::test_issue_1411_connected_join_property_projection_shape graphistry/tests/compute/gfql/cypher/test_lowering.py::test_issue_1411_connected_join_whole_row_projection_shape-> 4 passed, 1 skipped locallyPYTHONPATH=/tmp/pyg1411-deps PATH=/tmp/pyg1411-bin:$PATH ./bin/test-minimal-lite.sh --ignore=plans --ignore=test_env --ignore=graphistry/tests/test_text_utils.py --ignore=graphistry/tests/test_compute_cluster.py --ignore=graphistry/tests/compute/test_indegrees_after_umap.py --ignore=graphistry/tests/compute/test_let_engine_coercion.py --ignore=graphistry/tests/compute/test_safe_map_series.py --ignore=graphistry/tests/compute/test_call_engine_coercion.py -k 'not cudf and not umap and not dask'-> 2947 passed, 155 skipped, 244 deselected, 15 xfailed./bin/ruff.sh graphistry/tests/test_compute_chain.py graphistry/compute/ast.py graphistry/compute/gfql/call/validation.py graphistry/compute/gfql/row/pipeline.py graphistry/tests/compute/gfql/cypher/test_lowering.pybash -n docker/test-rapids-official-local.shgit diff --checkssh dgx-spark, randocker/test-rapids-official-local.shwithRAPIDS_VERSION=26.02 PROFILE=gfql WITH_GPU=1 WITH_IMAGE_BUILD=0, targeted [POST-RERUN] #880 residual: joined row projection bucket #1411 cuDF selector -> 1 passedgraphistry/test-rapids-official:25.02-gfqlwithPIP_PRE_DEPS=numba-cuda==0.22.2 cuda-bindings==12.9.5 cuda-core==0.3.2 cuda-python==12.9.5, targeted [POST-RERUN] #880 residual: joined row projection bucket #1411 cuDF selector -> 1 passed, 1 warningcudf.DataFrame({"x": [1, 2]}).to_pandas()host-transfer smoke; package bridge was{'numba_cuda': '0.22.2', 'cuda_bindings': '12.9.5', 'cuda_python': '12.9.5'}WITH_IMAGE_BUILD=1 RAPIDS_VERSION=25.02 PROFILE=gfql; default GFQL suite (test_parser.py,test_row_pipeline_ops.py, and cuDF lowering selectors) -> 343 passed, 6 warningsWITH_IMAGE_BUILD=1 RAPIDS_VERSION=26.02 PROFILE=gfql; default GFQL suite (test_parser.py,test_row_pipeline_ops.py, and cuDF lowering selectors) -> 343 passed, 5 warningsKnown validation caveats
./bin/typecheck.shon touched runtime files currently reportsgraphistry/_version.py:57HANDLERSannotation, outside this diff./bin/test-minimal-lite.shhardcodespython; this shell only haspython3, so validation used an explicit/tmp/pyg1411-bin/python -> /usr/bin/python3shim_ptxcompiler.pywarning aboutcuDriverGetVersion()/Not patching Numba; import smoke, trivial cuDF host transfer, and the targeted [POST-RERUN] #880 residual: joined row projection bucket #1411 cuDF selector pass