You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The row-pipeline expression evaluator has an AST path, but it still drops back to the legacy string evaluator for some structured/vector values. A concrete deletion target is to make the AST path cover map/list vector values and then shrink _gfql_eval_string_expr fallback usage.
Current evidence
On current origin/master:
graphistry/compute/gfql/row/pipeline.py::_gfql_eval_expr_ast() returns (False, None) for MapLiteral values where the evaluated value has .astype, with the comment: Vector map values are deferred to legacy evaluator for now.
_gfql_eval_string_expr() remains the fallback bridge and is called from projection/order/explode paths.
Existing tests compare AST output to legacy_out = ctx._gfql_eval_string_expr(...).
Goal
Promote the remaining safe structured expression cases to the AST evaluator and delete the corresponding legacy string-eval fallback branch/tests.
Scope
Add pandas/cuDF coverage for map/list literals with vector-valued entries where the fallback is currently used.
Implement AST evaluator handling for those values, preserving null semantics.
Remove the Vector map values are deferred to legacy evaluator for now fallback when covered.
Narrow _gfql_eval_string_expr() callers or add explicit unsupported errors where AST cannot cover the shape.
Out of scope
Full expression engine rewrite.
Public API changes.
Non-GFQL row pipeline work.
Acceptance
The targeted map/list vector cases no longer call _gfql_eval_string_expr().
Legacy comparison tests are rewritten to assert AST-native behavior instead of comparing to the legacy evaluator.
Focused pandas tests pass; cuDF coverage runs where applicable.
CI and relevant DGX GFQL/cuDF validation pass if cuDF path changes.
DGX RAPIDS 25.02 targeted cuDF amplified test: 1 passed, 1 warning with import smoke cudf 25.02.02, cuml 25.02.01; warning was the known ptxcompiler driver/runtime warning.
Full local TCK against companion branch: 3963 passed, 731 xfailed.
GitHub CI green after amplification and rebases, including tck-gfql and ReadTheDocs.
Review protocol converged; later amplification found no product bug, only an invalid initial test premise that was corrected to an AST-visit assertion.
Coordination note:
PR CI used the same-named graphistry/tck-gfql companion branch issue-1469-row-pipeline-map-list-ast for the direct-Cypher rebaseline where with5-2 now returns expected rows. Keep/land/sync that TCK rebaseline so future master CI does not fall back to stale TCK main.
Activity
lmeyerov commentedon May 17, 2026
#1469 closeout receipt
Closed by merged PR #1473:
#1473
Merge receipt:
592e34a66e40b79f79029d1620911f63158c99ed48806db98924c81c71b4eaae5de9dfe219c392f5What landed:
MapLiteralwith vector-valued entries.RETURNandWITH, to avoid wrong-row drift.CHANGELOG.mdentry.Validation:
6 passed.183 passed, 17 deselected.ruff,typecheck,py_compile, andci_cypher_surface_guard: green.1 passedwith import smokecudf 26.02.01,cuml 26.02.00.1 passed, 1 warningwith import smokecudf 25.02.02,cuml 25.02.01; warning was the known ptxcompiler driver/runtime warning.3963 passed, 731 xfailed.tck-gfqland ReadTheDocs.Coordination note:
graphistry/tck-gfqlcompanion branchissue-1469-row-pipeline-map-list-astfor the direct-Cypher rebaseline wherewith5-2now returns expected rows. Keep/land/sync that TCK rebaseline so future master CI does not fall back to stale TCK main.