feat: extend parameterized queries and close out dialect parity#20
Merged
dylanbstorey merged 6 commits intomainfrom Feb 7, 2026
Merged
feat: extend parameterized queries and close out dialect parity#20dylanbstorey merged 6 commits intomainfrom
dylanbstorey merged 6 commits intomainfrom
Conversation
added 6 commits
February 7, 2026 08:19
Replace cypher_with_params()/query_with_params() with a fluent builder API (cypher_builder()/query_builder()) that supports individual .param() calls and bulk .params() from JSON objects. Old methods are deprecated with #[deprecated(since = "0.4.0")].
Neo4j and Memgraph accept optional trailing semicolons on queries. Add two productions to the stmt rule so GraphQLite does the same.
Refactor the expression grammar to support three Cypher dialect features: - Backtick-quoted property keys: n.`special-key`, n.`with spaces` - Nested dot access on JSON properties: n.metadata.name, n.data.a.b.c - Bracket chaining with string keys: n['status'], n['a']['b'] - Mixed patterns: n['metadata'].name Grammar: move dot/bracket access from primary_expr to expr rule as left-recursive productions (expr '.' IDENT, expr '.' BQIDENT, expr '[' expr ']'). Remove five now-redundant primary_expr rules. Add BQIDENT variants to remove_item for REMOVE n.`key`. Transform: extend transform_property_access() to handle nested AST_NODE_PROPERTY and AST_NODE_SUBSCRIPT base expressions via json_extract(). Add string-key-to-property normalization in the AST_NODE_SUBSCRIPT case so n['key'] maps to n.key. Nested/bracket access is read-only (RETURN, WHERE, WITH contexts).
The angreal test python task hardcoded python3.11 which breaks on systems using uv for Python management. Now auto-detects uv.lock in the bindings directory and runs via `uv run python -m pytest` directly. Falls back to python3 when uv is not present. The --python flag still works for explicit overrides. Also update Makefile default to python3.
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.
Summary
paramsargument to PythonGraph.query()methodIssues