MemGQL v0.6#1642
Merged
Merged
Conversation
The mapping JSON contract changed in v0.6: id_column is now required on every edge (previously optional, enforced at query time only for variable-length traversal). Updates the embedded mapping examples in quick-start, complete, and use-cases/public-private to reflect the new shape, and adds a v0.6.0 changelog entry covering the breaking change plus the improved parse errors and Cypher [:R*] hint.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…OUNT(DISTINCT) Expands the v0.6.0 changelog entry to cover the trail-semantics fix for bounded variable-length paths on SQL backends, the new actionable error for untyped edge traversal on SQL, end-to-end COUNT(DISTINCT) wiring, and the triaged parser bug fixes (modulo, UNWIND-style FOR..IN, NEXT composition, rel-variable reuse, _dummy leak). Also adds an untyped-edge entry to reference.mdx's "Known limitations" section so the limitation surfaces in the Features matrix companion page, not just the changelog.
…ight terminology cleanup Factual fixes: - Feature matrices on reference.mdx, connect/postgres.mdx, connect/mysql.mdx, and connect/duckdb.mdx all marked untyped edge `()-[]->(b)` as supported (✓) on SQL backends. v0.6 actually rejects it with an actionable error; the Known Limitations section already said so. Flip ✓ → ✗ everywhere the matrix surfaces. - quick-start.mdx referenced a non-existent config.mdx; point at reference.mdx. - complete.mdx Docker Compose pinned memgql:0.5.0, which lacks every v0.6 behavior the rest of the docs now describe; bump to :latest to match all other code samples on the site. New content: - reference.mdx grows a Mapping Schema section listing every field of the mapping JSON (top-level, node, edge, connector-specific extensions), with required/optional + semantic notes. Centralizes a contract that was previously scattered across quick-start, complete, and the per-connector pages. Terminology: - "schema mapping" → "graph mapping" in two places (complete.mdx, quick-start.mdx). "mapping file" (the on-disk artifact) and "mapping JSON" (the file's content) are left intact because they carry distinct meanings.
Several feature-matrix rows and limitation notes used internal terminology that a reader without the GQL ISO spec (or knowledge of MemGQL's SQL translation strategy) couldn't decode: - "WITH pipeline boundary (scope D)" referenced a GQL spec phase name. - "Multi-MATCH (cross-join)" leaked the relational translation. - "Whole-node WITH n carry-through" was idiomatic to the codebase. - "Bolt Node struct shape" required knowing the Bolt protocol. - "path binding on quantified traversals" combined two jargon terms in one bullet. Rewrite each in terms of the query syntax a user actually writes, with a worked example next to the limitation. Same support claims (no ✓/✗ changes); only the wording moves. Verified separately that aggregates inside `WITH` (e.g. `WITH count(p) AS n` and `WITH p.team AS t, count(p) AS n`) do work on SQL backends — not added as a fake limitation despite an earlier audit suggesting it.
Parity sweep across 5 backends surfaced three Cypher-only queries:
untyped edges and the chained typed→untyped variant are already covered
by the existing untyped-edge limitation entries. The third — FOR x IN
[...] (UNWIND-style) — was undocumented as Cypher-only.
The v0.6 changelog bullet about FOR x IN sounded backend-agnostic
("retains the iterated list and binds x correctly"). The fix made the
parser stop dropping the bound variable; execution support on SQL
backends is still a separate item. Clarify the scope inline so readers
don't assume their SQL connector can run it.
Adds a Known Limitations entry in reference.mdx and each SQL connector
page (postgres / mysql / duckdb) noting the actionable error users see
and pointing them at Cypher backends as the natively-supported path.
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.
Release note
Docs for the MemGQL v0.6 release. Three categories of change:
1. Breaking change:
id_columnon edges. v0.6 makesid_columnrequired on every edge mapping, validated at bothMAPPING_FILEstartup andADD MAPPINGruntime. Mapping examples updated inquick-start.mdx,complete.mdx, anduse-cases/public-private.mdx. Newv0.6.0changelog entry under⚠️ Breaking changes.2. v0.6.0 changelog now covers all the user-facing landings:
(){m,n}on SQL backends (no edge reused within a path; matches Memgraph/Neo4j on cyclic graphs).()-[]->(b)on SQL backends now returns an actionable error instead of silently overcounting.COUNT(DISTINCT …)works end-to-end on every backend.No statements in GQL query.[:R*]/[:R*1..3]now hints at the GQL form(-[:R]->()){1,3}.USEcross-graph parse errors are actionable instead of generic.%modulo,FOR x IN [...]UNWIND,NEXTcomposition name resolution, rel-variable reuse,RETURN 1_dummyleak).3. Global audit-driven cleanups (not tied to v0.6):
reference.mdx,connect/postgres.mdx,connect/mysql.mdx, andconnect/duckdb.mdxall marked untyped edges as supported on SQL (✓). The same files' Known Limitations sections already said otherwise. Flipped to ✗ everywhere the matrix surfaces.quick-start.mdxreferenced a non-existentconfig.mdx; repointed atreference.mdx.complete.mdxDocker Compose pinnedmemgraph/memgql:0.5.0, which lacks every v0.6 behavior the rest of the docs describe; bumped to:latest.reference.mdxgains a Mapping Schema section listing every field of the mapping JSON (top-level, node, edge, connector-specific extensions) with required/optional and semantic notes. Centralizes a contract that was previously scattered acrossquick-start,complete, and the per-connector pages.Related product PRs
PRs from product repo this doc page is related to:
https://github.com/memgraph/zero/pull/3
https://github.com/memgraph/zero/pull/4
https://github.com/memgraph/zero/pull/5
Checklist:
bugfixorfeaturelabel, based on the product PR type you're documenting