From d487ca0ab2b57076fbc93fa120ba41d7df805b24 Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Sun, 26 Apr 2026 12:01:30 -0700 Subject: [PATCH 1/7] Init changelog --- pages/memgraph-zero/memgql/changelog.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pages/memgraph-zero/memgql/changelog.mdx b/pages/memgraph-zero/memgql/changelog.mdx index d6df13e6d..7c41a02d0 100644 --- a/pages/memgraph-zero/memgql/changelog.mdx +++ b/pages/memgraph-zero/memgql/changelog.mdx @@ -5,6 +5,10 @@ description: MemGQL release notes # MemGQL Changelog +## MemGQL v0.3.1 - April 27th, 2026 + +- + ## MemGQL v0.3.0 - April 26th, 2026 - Added Apache Pinot connector support, including `CONNECTION_TYPE=pinot` single mode and multi-connection mode From 039fd0e74a8d225606c26e4f30155a542cba8e99 Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Sun, 26 Apr 2026 12:54:14 -0700 Subject: [PATCH 2/7] Add icons --- pages/memgraph-zero/memgql.mdx | 35 ++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/pages/memgraph-zero/memgql.mdx b/pages/memgraph-zero/memgql.mdx index dc61755f8..7c05326d7 100644 --- a/pages/memgraph-zero/memgql.mdx +++ b/pages/memgraph-zero/memgql.mdx @@ -3,6 +3,11 @@ title: MemGQL description: MemGQL documentation and reference. --- +import { SocialCards } from '/components/social-card/SocialCards'; +import { SocialCard } from '/components/social-card/SocialCard'; +import Discord from '/components/icons/Discord'; +import GitHub from '/components/icons/GitHub'; + # MemGQL MemGQL is a federated GQL ([ISO/IEC @@ -30,5 +35,35 @@ details. Review the [Licensing](/memgraph-zero/memgql/licensing) information for of use, and check the [Changelog](/memgraph-zero/memgql/changelog) to stay updated on the latest improvements. +## Questions & Feedback + +Have questions or want to share feedback? We'd love to hear from you! + + + } + title="Discord" + body="Chat with the community" + href="https://discord.gg/memgraph" + is_external={true} + /> + } + title="GitHub Issues" + body="Report bugs or request features" + href="https://github.com/memgraph/memgraph/issues" + is_external={true} + /> + } + title="GitHub Discussions" + body="Start longer form discussions" + href="https://github.com/memgraph/memgraph/discussions" + is_external={true} + /> + + +## MemGQL Enterprise + Interested in MemGQL Enterprise? [Get in touch](https://memgraph.com/contact-us) with our team to learn more. From 03e478e84b23e9fa95e00705e232f4ddbe7476cc Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Tue, 28 Apr 2026 21:32:26 -0700 Subject: [PATCH 3/7] Fix the config link --- pages/memgraph-zero/memgql/connect/_meta.ts | 2 ++ pages/memgraph-zero/memgql/connect/clickhouse.mdx | 2 +- pages/memgraph-zero/memgql/connect/duckdb.mdx | 2 +- pages/memgraph-zero/memgql/connect/iceberg.mdx | 2 +- pages/memgraph-zero/memgql/connect/memgraph.mdx | 2 +- pages/memgraph-zero/memgql/connect/mysql.mdx | 2 +- pages/memgraph-zero/memgql/connect/neo4j.mdx | 2 +- pages/memgraph-zero/memgql/connect/pinot.mdx | 2 +- pages/memgraph-zero/memgql/connect/postgres.mdx | 2 +- 9 files changed, 10 insertions(+), 8 deletions(-) diff --git a/pages/memgraph-zero/memgql/connect/_meta.ts b/pages/memgraph-zero/memgql/connect/_meta.ts index e558b5ac4..8af369f6a 100644 --- a/pages/memgraph-zero/memgql/connect/_meta.ts +++ b/pages/memgraph-zero/memgql/connect/_meta.ts @@ -5,4 +5,6 @@ export default { "memgraph": "to Memgraph", "neo4j": "to Neo4j", "postgres": "to PostgreSQL", + "mysql": "to MySQL", + "pinot": "to Pinot", } diff --git a/pages/memgraph-zero/memgql/connect/clickhouse.mdx b/pages/memgraph-zero/memgql/connect/clickhouse.mdx index bfe3f92e7..34572741c 100644 --- a/pages/memgraph-zero/memgql/connect/clickhouse.mdx +++ b/pages/memgraph-zero/memgql/connect/clickhouse.mdx @@ -95,4 +95,4 @@ MATCH (p:Person)-[:WORKS_AT]->(c:Company) RETURN p.name, c.name; MATCH (a:Person)-[:KNOWS]->(b:Person) RETURN a.name, b.name; ``` -For environment variables, see [Configuration](../config.mdx#clickhouse-clickhouse). +For environment variables, see [Reference](../reference.mdx#clickhouse-clickhouse). diff --git a/pages/memgraph-zero/memgql/connect/duckdb.mdx b/pages/memgraph-zero/memgql/connect/duckdb.mdx index 0e1ee66ac..67dec8cb6 100644 --- a/pages/memgraph-zero/memgql/connect/duckdb.mdx +++ b/pages/memgraph-zero/memgql/connect/duckdb.mdx @@ -73,4 +73,4 @@ MATCH (p:Person)-[:WORKS_AT]->(c:Company) RETURN p.name, c.name; MATCH (a:Person)-[:KNOWS]->(b:Person) RETURN a.name, b.name; ``` -For environment variables, see [Configuration](../config.mdx#duckdb-duckdb). +For environment variables, see [Reference](../reference.mdx#duckdb-duckdb). diff --git a/pages/memgraph-zero/memgql/connect/iceberg.mdx b/pages/memgraph-zero/memgql/connect/iceberg.mdx index f30e1808f..aada9077e 100644 --- a/pages/memgraph-zero/memgql/connect/iceberg.mdx +++ b/pages/memgraph-zero/memgql/connect/iceberg.mdx @@ -93,4 +93,4 @@ MATCH (p:Person)-[:WORKS_AT]->(c:Company) RETURN p.name, c.name; MATCH (a:Person)-[:KNOWS]->(b:Person) RETURN a.name, b.name; ``` -For environment variables, see [Configuration](../config.mdx#iceberg-iceberg). +For environment variables, see [Reference](../reference.mdx#iceberg-iceberg). diff --git a/pages/memgraph-zero/memgql/connect/memgraph.mdx b/pages/memgraph-zero/memgql/connect/memgraph.mdx index ee1b4f535..b16f4ee4b 100644 --- a/pages/memgraph-zero/memgql/connect/memgraph.mdx +++ b/pages/memgraph-zero/memgql/connect/memgraph.mdx @@ -70,4 +70,4 @@ MATCH (p:Person)-[:WORKS_AT]->(c:Company) RETURN p.name, c.name; MATCH (a:Person)-[:KNOWS]->(b:Person) RETURN a.name, b.name; ``` -For environment variables, see [Configuration](../config.mdx#memgraph-memgraph-memgraph-gql). +For environment variables, see [Reference](../reference.mdx#memgraph-memgraph-memgraph-gql). diff --git a/pages/memgraph-zero/memgql/connect/mysql.mdx b/pages/memgraph-zero/memgql/connect/mysql.mdx index 4217dd682..5027a423a 100644 --- a/pages/memgraph-zero/memgql/connect/mysql.mdx +++ b/pages/memgraph-zero/memgql/connect/mysql.mdx @@ -104,4 +104,4 @@ MATCH (a:Person)-[:KNOWS]->(b:Person) RETURN a.name, b.name; - Aliased single-table `DELETE` is emitted as the multi-table form `DELETE alias FROM table AS alias WHERE …` (MySQL 8.0+ requirement). -For environment variables, see [Configuration](../config.mdx#mysql-mysql). +For environment variables, see [Reference](../reference.mdx#mysql-mysql). diff --git a/pages/memgraph-zero/memgql/connect/neo4j.mdx b/pages/memgraph-zero/memgql/connect/neo4j.mdx index e3b93a0a2..1977845d3 100644 --- a/pages/memgraph-zero/memgql/connect/neo4j.mdx +++ b/pages/memgraph-zero/memgql/connect/neo4j.mdx @@ -73,4 +73,4 @@ MATCH (p:Person)-[:WORKS_AT]->(c:Company) RETURN p.name, c.name; MATCH (a:Person)-[:KNOWS]->(b:Person) RETURN a.name, b.name; ``` -For environment variables, see [Configuration](../config.mdx#neo4j-neo4j-neo4j-gql). +For environment variables, see [Reference](../reference.mdx#neo4j-neo4j-neo4j-gql). diff --git a/pages/memgraph-zero/memgql/connect/pinot.mdx b/pages/memgraph-zero/memgql/connect/pinot.mdx index 0f0f08585..21688e425 100644 --- a/pages/memgraph-zero/memgql/connect/pinot.mdx +++ b/pages/memgraph-zero/memgql/connect/pinot.mdx @@ -93,4 +93,4 @@ MATCH (p:Person)-[:WORKS_AT]->(c:Company) RETURN p.name, c.name; MATCH (a:Person)-[:KNOWS]->(b:Person) RETURN a.name, b.name; ``` -For environment variables, see [Configuration](../config.mdx#apache-pinot-pinot). +For environment variables, see [Reference](../reference.mdx#apache-pinot-pinot). diff --git a/pages/memgraph-zero/memgql/connect/postgres.mdx b/pages/memgraph-zero/memgql/connect/postgres.mdx index af42af918..ff6ac6656 100644 --- a/pages/memgraph-zero/memgql/connect/postgres.mdx +++ b/pages/memgraph-zero/memgql/connect/postgres.mdx @@ -88,4 +88,4 @@ MATCH (p:Person)-[:WORKS_AT]->(c:Company) RETURN p.name, c.name; MATCH (a:Person)-[:KNOWS]->(b:Person) RETURN a.name, b.name; ``` -For environment variables, see [Configuration](../config.mdx#postgresql-postgres). +For environment variables, see [Reference](../reference.mdx#postgresql-postgres). From 65b8b7562e09b50bb65a8703110085fcabe3d056 Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Thu, 7 May 2026 12:44:57 +0200 Subject: [PATCH 4/7] Prep the v0.4.0 release --- pages/memgraph-zero/memgql/changelog.mdx | 13 ++- pages/memgraph-zero/memgql/complete.mdx | 2 +- pages/memgraph-zero/memgql/features.mdx | 4 +- pages/memgraph-zero/memgql/reference.mdx | 2 +- pages/memgraph-zero/memgql/use-cases.mdx | 23 ++-- pages/memgraph-zero/memgql/use-cases/_meta.ts | 5 +- .../memgql/use-cases/federated-gql.mdx | 110 ++++++++++++++++++ .../memgql/use-cases/public-private.mdx | 2 +- 8 files changed, 143 insertions(+), 18 deletions(-) create mode 100644 pages/memgraph-zero/memgql/use-cases/federated-gql.mdx diff --git a/pages/memgraph-zero/memgql/changelog.mdx b/pages/memgraph-zero/memgql/changelog.mdx index 7c41a02d0..df946fd30 100644 --- a/pages/memgraph-zero/memgql/changelog.mdx +++ b/pages/memgraph-zero/memgql/changelog.mdx @@ -5,9 +5,16 @@ description: MemGQL release notes # MemGQL Changelog -## MemGQL v0.3.1 - April 27th, 2026 - -- +## MemGQL v0.4.0 - May 7th, 2026 + +- Added "Federated GQL Across Heterogeneous Backends" use case showing graph queries over ClickHouse and PostgreSQL +- Added WIP vector search capabilities +- Fixed `SET DEFAULT CONNECTION` handling +- Fixed flaky `USE graph` behavior and corrected `USE graph` routing +- Fixed multi node and edge SQL `INSERT` +- Fixed connection handling +- Improved Trino startup wait +- Fixed all tests under `run_tests.sh` ## MemGQL v0.3.0 - April 26th, 2026 diff --git a/pages/memgraph-zero/memgql/complete.mdx b/pages/memgraph-zero/memgql/complete.mdx index 0d708947c..e5bd0d537 100644 --- a/pages/memgraph-zero/memgql/complete.mdx +++ b/pages/memgraph-zero/memgql/complete.mdx @@ -101,7 +101,7 @@ Save the following as `docker-compose.yml`: ```yaml services: memgql: - image: memgraph/memgql:0.3.0 + image: memgraph/memgql:0.4.0 container_name: memgql ports: - "7688:7688" diff --git a/pages/memgraph-zero/memgql/features.mdx b/pages/memgraph-zero/memgql/features.mdx index 7fd3d32fb..5062367dd 100644 --- a/pages/memgraph-zero/memgql/features.mdx +++ b/pages/memgraph-zero/memgql/features.mdx @@ -20,8 +20,8 @@ description: MemGQL Community and Enterprise feature comparison. | [MySQL](/memgraph-zero/memgql/connect/mysql) | Yes | Yes | | [Pinot](/memgraph-zero/memgql/connect/pinot) | Yes | Yes | | **Multi-Connection Mode** | Yes | Yes | -| Max connectors | 4 | Unlimited | -| Max simultaneous connections | 4 | Unlimited | +| Max connectors | 2 | Unlimited | +| Max simultaneous connections | 2 | Unlimited | | **Agentic Capabilities** | | | | MCP Server | Yes | Yes | | Structured2Graph Agent to create mappings | Yes | Yes | diff --git a/pages/memgraph-zero/memgql/reference.mdx b/pages/memgraph-zero/memgql/reference.mdx index 07555ae4c..3b17d68d1 100644 --- a/pages/memgraph-zero/memgql/reference.mdx +++ b/pages/memgraph-zero/memgql/reference.mdx @@ -64,7 +64,7 @@ MemGQL is configured entirely via environment variables. When set, the license is decoded and verified against the organization name at startup. A valid enterprise license removes connector and connection limits. -Without a license, community mode allows up to 4 connectors and 4 simultaneous +Without a license, community mode allows up to 2 connectors and 2 simultaneous connections. ## Connector Types diff --git a/pages/memgraph-zero/memgql/use-cases.mdx b/pages/memgraph-zero/memgql/use-cases.mdx index f582b17a5..0d48576e8 100644 --- a/pages/memgraph-zero/memgql/use-cases.mdx +++ b/pages/memgraph-zero/memgql/use-cases.mdx @@ -10,26 +10,33 @@ across systems, silos, and compliance boundaries. Each use case below shows a real pattern, explains the architecture, and provides a working example you can run yourself. -## [Public-Private Data / Hybrid Graphs / Data Sovereignty](/memgraph-zero/memgql/use-cases/public-private) +## [Federated GQL Across Heterogeneous Backends](/memgraph-zero/memgql/use-cases/federated-gql) + +Run graph queries across non-graph stores like ClickHouse and PostgreSQL +through a single GQL endpoint. Tables become nodes and edges through a mapping +file; cross-store joins, pattern matching, and variable-length paths work +without ETL or schema changes. + +## [Public-Private Data / Data Sovereignty](/memgraph-zero/memgql/use-cases/public-private) Keep sensitive data sovereign while querying it alongside public knowledge graphs. A GDPR-compliant PostgreSQL database stores private customer profiles, while a public Memgraph instance hosts the open product catalog. MemGQL joins both from a single query endpoint without ever moving the regulated data. -## [Enterprise Context Sharing](/memgraph-zero/memgql/use-cases/enterprise-context) - -Share canonical context — org charts, product hierarchies, ontologies — across -departments without forcing every team into the same database. Each team keeps -its own data store; MemGQL provides a unified graph view. - ## [Horizontally Scalable Distributed Compute](/memgraph-zero/memgql/use-cases/distributed) Spread graph computation across multiple nodes for workloads that exceed the capacity of a single instance. MemGQL can partition queries and materialize intermediate results across a cluster. -## [Agentic Data Access](/memgraph-zero/memgql/use-cases/agentic) +## [Enterprise Context Sharing](/memgraph-zero/memgql/use-cases/enterprise-context) + +Share canonical context — org charts, product hierarchies, ontologies — across +departments without forcing every team into the same database. Each team keeps +its own data store; MemGQL provides a unified graph view. + +## [Agentic Access](/memgraph-zero/memgql/use-cases/agentic) Give AI agents a single semantic layer to discover and query any data in the organization. Agents use standard GQL to explore relationships across diff --git a/pages/memgraph-zero/memgql/use-cases/_meta.ts b/pages/memgraph-zero/memgql/use-cases/_meta.ts index 321b2b0f8..a36f68590 100644 --- a/pages/memgraph-zero/memgql/use-cases/_meta.ts +++ b/pages/memgraph-zero/memgql/use-cases/_meta.ts @@ -1,6 +1,7 @@ export default { + "federated-gql": "Federated GQL", "public-private": "Public-Private Data", - "enterprise-context": "Enterprise Context", "distributed": "Distributed Compute", - "agentic": "Agentic Data Access", + "enterprise-context": "Enterprise Context", + "agentic": "Agentic Access", } diff --git a/pages/memgraph-zero/memgql/use-cases/federated-gql.mdx b/pages/memgraph-zero/memgql/use-cases/federated-gql.mdx new file mode 100644 index 000000000..fd853c23b --- /dev/null +++ b/pages/memgraph-zero/memgql/use-cases/federated-gql.mdx @@ -0,0 +1,110 @@ +--- +title: Federated GQL Across Heterogeneous Backends +description: Run graph queries across non-graph stores like ClickHouse and PostgreSQL through a single GQL endpoint. +--- + +# Federated GQL Across Heterogeneous Backends + +Most operational data does not live in a graph database. Transactional records +sit in PostgreSQL. Analytical events sit in ClickHouse. Each store was chosen +for good reasons — strong OLTP semantics on one side, fast columnar scans on +the other — and neither team plans to migrate. But the *relationships* between +the rows in those stores are exactly what an analyst, an application, or an +agent wants to traverse. + +MemGQL exposes any registered backend as a graph behind a single GQL endpoint +(ISO/IEC 39075). Clients write standard GQL over Bolt; MemGQL parses the query +once, plans across all connected backends, pushes the maximal sub-plan each +backend can execute, and joins the rest locally. Tables in PostgreSQL and +ClickHouse become nodes and edges through a mapping file — no ETL, no schema +change, no per-vendor query rewrites. + +## The Problem + +Cross-store relationships in heterogeneous estates run into four recurring +frictions: + +1. **Dialect Drift**: PostgreSQL speaks standard SQL, ClickHouse speaks its own + dialect, graph stores speak Cypher or GQL. Each system has its own + functions, type coercions, and join semantics. Queries written against one + rarely run unchanged on another. + +2. **Cross-Store Joins**: Following a foreign key from a row in PostgreSQL to + a row in ClickHouse means pulling both sides into the application, matching + keys by hand, and re-implementing join logic the database should be doing. + +3. **No Native Graph Surface**: Many of the most interesting questions are + graph-shaped — "who is connected to whom", "what's reachable in three hops" + — but neither relational nor columnar engines offer a first-class + pattern-matching syntax. + +4. **Operational Fragmentation**: Each backend has its own driver, connection + pool, credentials, TLS setup, and monitoring. Application code accumulates + a per-store adapter layer that drifts out of sync with the underlying + schemas. + +## The Solution + +MemGQL sits in front of every registered backend and presents a standards-based +GQL surface. The query engine: + +- **Parses once** — the same GQL parser handles queries regardless of which + backends they touch. +- **Plans globally** — a cost-based optimizer decides, per sub-pattern, which + backend should execute it. Sub-plans the backend's `CapabilityProfile` + supports are pushed down; the rest runs locally. +- **Joins across stores** — cross-backend joins materialize both sides locally + and hash-join with Arrow IPC shuffle, so a `MATCH` that spans ClickHouse and + PostgreSQL behaves like any other join. +- **Maps tables to graph patterns** — a per-connector mapping file declares + which tables become nodes, which become edges, and how columns become + properties. The relational schema stays untouched. + +Backends stay where they are. Their data, security, and operational ownership +do not change. What changes is that every client — `mgconsole`, an existing +Bolt driver, a BI tool — connects to one endpoint and writes one language. + +## Scenario + +- **PostgreSQL** — the system of record for `persons` and their `knows` + relationships, governed by OLTP transactions. +- **ClickHouse** — a columnar store of `companies` and `works_at` events, + optimized for analytical scans across billions of rows. +- **MemGQL** — a single Bolt endpoint on `:7688` that registers both as named + graphs and routes each sub-query appropriately. + +``` + ┌──────────────┐ sql ┌──────────────┐ + │ │──────▶│ PostgreSQL │ + │ │ │ (Identity) │ + │ MemGQL │ └──────────────┘ +┌──────────────┐ │ :7688 │ +│ mgconsole │──bolt───▶│ │ http ┌──────────────┐ +└──────────────┘ │ │──────▶│ ClickHouse │ + └──────────────┘ │ (Analytics) │ + └──────────────┘ +``` + +A composite query like: + +```gql +USE identity MATCH (p:Person {id: $uid})-[:KNOWS]->(f:Person) RETURN f.id AS fid +UNION ALL +USE analytics MATCH (p:Person {id: $uid})-[:WORKS_AT]->(c:Company) RETURN c.id AS fid; +``` + +is parsed once, dispatched to the two backends in parallel, and merged at the +coordinator. The application never opens a connection to PostgreSQL or +ClickHouse directly. Cross-store joins — for example, finding the companies +where a person's friends work — are expressed as a single GQL pattern; MemGQL +materializes both sides and joins them locally. + +## Why this matters + +| Concern | How MemGQL addresses it | +|---|---| +| **Standards-based interface** | One ISO/IEC 39075 GQL surface, regardless of backend dialect. | +| **No migration** | Existing PostgreSQL and ClickHouse deployments stay in place; MemGQL fronts them. | +| **Graph queries on non-graph stores** | Pattern matching, variable-length paths, and quantified path patterns work over relational and columnar tables. | +| **Cross-store joins** | Joins between rows in different backends run as first-class GQL, not application glue. | +| **Capability-aware push-down** | Each connector declares what it can execute; the optimizer pushes down maximal sub-plans. | diff --git a/pages/memgraph-zero/memgql/use-cases/public-private.mdx b/pages/memgraph-zero/memgql/use-cases/public-private.mdx index 991d9ade0..384dd4971 100644 --- a/pages/memgraph-zero/memgql/use-cases/public-private.mdx +++ b/pages/memgraph-zero/memgql/use-cases/public-private.mdx @@ -62,7 +62,7 @@ MemGQL, and a one-shot init container: cat > docker-compose.yml << 'EOF' services: memgql: - image: ${MEMGQL_IMAGE:-memgraph/memgql:0.3.0} + image: ${MEMGQL_IMAGE:-memgraph/memgql:0.4.0} ports: - "7688:7688" environment: From 749aaa175099ca1631906a6192a5a3467c54c048 Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Thu, 7 May 2026 12:46:11 +0200 Subject: [PATCH 5/7] Update the changelog item --- pages/memgraph-zero/memgql/changelog.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/memgraph-zero/memgql/changelog.mdx b/pages/memgraph-zero/memgql/changelog.mdx index df946fd30..349caecd4 100644 --- a/pages/memgraph-zero/memgql/changelog.mdx +++ b/pages/memgraph-zero/memgql/changelog.mdx @@ -8,7 +8,7 @@ description: MemGQL release notes ## MemGQL v0.4.0 - May 7th, 2026 - Added "Federated GQL Across Heterogeneous Backends" use case showing graph queries over ClickHouse and PostgreSQL -- Added WIP vector search capabilities +- Added vector search capabilities (only Memgraph backend) - Fixed `SET DEFAULT CONNECTION` handling - Fixed flaky `USE graph` behavior and corrected `USE graph` routing - Fixed multi node and edge SQL `INSERT` From 85b51e4f98d9a685e0b2602578fca7c12510b186 Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Thu, 7 May 2026 13:15:58 +0200 Subject: [PATCH 6/7] Update the reference docs --- pages/memgraph-zero/memgql/reference.mdx | 63 +++++++++++++++--------- 1 file changed, 41 insertions(+), 22 deletions(-) diff --git a/pages/memgraph-zero/memgql/reference.mdx b/pages/memgraph-zero/memgql/reference.mdx index 3b17d68d1..a18187910 100644 --- a/pages/memgraph-zero/memgql/reference.mdx +++ b/pages/memgraph-zero/memgql/reference.mdx @@ -3,7 +3,7 @@ title: Reference description: All the details about syntax and various configs --- -## Graph Management +## Graph Management Query Syntax ``` ADD GRAPH ON CONNECTOR @@ -26,28 +26,19 @@ ALTER GRAPH SET MAPPING ; ALTER GRAPH REMOVE MAPPING; ``` -## Query Syntax - ``` -- Single graph USE ; --- Focused multi-graph -USE -USE -RETURN ...; - -- Composite USE UNION | UNION ALL | INTERSECT | INTERSECT ALL | EXCEPT | EXCEPT ALL USE ; ``` -# Configuration Reference - -MemGQL is configured entirely via environment variables. +## Configuration Reference -## General +### General | Variable | Default | Description | |--------------------|---------------------|--------------------------------------| @@ -55,7 +46,35 @@ MemGQL is configured entirely via environment variables. | `CONNECTION_TYPE` | _(none)_ | Alias for `CONNECTOR_TYPE` | | `BOLT_LISTEN_ADDR` | `127.0.0.1:7688` | Address the Bolt server binds to | -## Enterprise License +### Logging + +MemGQL writes log lines to the console (stdout/stderr) and, in parallel, to a +log file. Both destinations are configured via CLI flags on the Bolt server +binary. + +#### CLI Flags + +| Flag | Default | Description | +|------------------------|--------------------|--------------------------------------------------------------| +| `--log-level=` | `info` | Console logging verbosity (see levels below) | +| `--log-file=` | `bolt_server.log` | File to mirror all log output to (always written, regardless of `--log-level`) | + +#### Log Levels + +| Level | Console output | +|----------------------|---------------------------------------------------------------------------------| +| `info` | Full logging: connections, incoming queries, transpiled output, results, state changes | +| `info-queries-only` | Only the incoming GQL query and its transpiled output (Cypher / SQL) | + +`info` is the most verbose level today. There is no `debug` or `trace`. The +`RUST_LOG` environment variable is not consulted. + +The log file always receives every log line — including queries, errors, and +state changes — independent of the console `--log-level`. To silence the +console while keeping a full file record, use `--log-level=info-queries-only` +and tail the log file separately. + +### Enterprise License | Variable | Default | Description | |-------------------------------|---------|------------------------------------------| @@ -67,7 +86,7 @@ startup. A valid enterprise license removes connector and connection limits. Without a license, community mode allows up to 2 connectors and 2 simultaneous connections. -## Connector Types +### Connector Types | Connector | Translation | Backend | |----------------|--------------------|----------------------------------| @@ -83,7 +102,7 @@ connections. | `pinot` | GQL -> SQL | Apache Pinot | | `multi` | Per-connector | Multiple backends simultaneously | -## Memgraph (`memgraph`, `memgraph-gql`) +#### Memgraph (`memgraph`, `memgraph-gql`) | Variable | Default | Description | |-----------------|------------------|----------------| @@ -92,7 +111,7 @@ connections. | `MEMGRAPH_PASS` | `pass` | Password | | `MEMGRAPH_DB` | `memgraph` | Database name | -## Neo4j (`neo4j`, `neo4j-gql`) +#### Neo4j (`neo4j`, `neo4j-gql`) | Variable | Default | Description | |--------------|------------------|----------------| @@ -101,28 +120,28 @@ connections. | `NEO4J_PASS` | `password` | Password | | `NEO4J_DB` | `neo4j` | Database name | -## PostgreSQL (`postgres`) +#### PostgreSQL (`postgres`) | Variable | Default | Description | |----------------|-----------------------------------------------------------------|---------------------------| | `POSTGRES_URL` | `host=localhost user=postgres password=postgres dbname=postgres` | libpq connection string | | `MAPPING_FILE` | _(none, uses built-in default)_ | Path to JSON mapping file | -## MySQL (`mysql`) +#### MySQL (`mysql`) | Variable | Default | Description | |----------------|-----------------------------------------------|------------------------------------------| | `MYSQL_URL` | `mysql://root:mysql@localhost:3306/test` | MySQL connection URL (`mysql://user:pass@host:port/database`) | | `MAPPING_FILE` | _(none, uses built-in default)_ | Path to JSON mapping file | -## DuckDB (`duckdb`) +#### DuckDB (`duckdb`) | Variable | Default | Description | |----------------|---------------------------------|---------------------------| | `DUCKDB_PATH` | `:memory:` | Path to DuckDB file | | `MAPPING_FILE` | _(none, uses built-in default)_ | Path to JSON mapping file | -## ClickHouse (`clickhouse`) +#### ClickHouse (`clickhouse`) | Variable | Default | Description | |-------------------|---------------------------|---------------------------| @@ -132,7 +151,7 @@ connections. | `CLICKHOUSE_DB` | `default` | ClickHouse database | | `MAPPING_FILE` | _(none, uses built-in default)_ | Path to JSON mapping file | -## Apache Pinot (`pinot`) +#### Apache Pinot (`pinot`) | Variable | Default | Description | |-----------------------|----------------------------|--------------------------------------------------| @@ -140,7 +159,7 @@ connections. | `PINOT_QUERY_OPTIONS` | `useMultistageEngine=true` | Query options sent with broker SQL requests | | `MAPPING_FILE` | _(none, uses built-in default)_ | Path to JSON mapping file | -## Iceberg (`iceberg`) +#### Iceberg (`iceberg`) | Variable | Default | Description | |-----------------|-------------------------|---------------------------| From 64ff755667a416715867b2d955650257840886e6 Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Thu, 7 May 2026 13:29:49 +0200 Subject: [PATCH 7/7] Add the poll link --- pages/memgraph-zero.mdx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pages/memgraph-zero.mdx b/pages/memgraph-zero.mdx index 86e06a97c..f882e4e19 100644 --- a/pages/memgraph-zero.mdx +++ b/pages/memgraph-zero.mdx @@ -3,8 +3,15 @@ title: Memgraph Zero description: Zero ETL. Query data where it lives. --- +import { Callout } from 'nextra/components' + # Memgraph Zero + + Help shape the Memgraph Zero roadmap — [share your feedback in our short + survey](https://forms.gle/2MLfWp24uwbJpsey8). + + **Zero ETL. Query data where it lives.** Memgraph Zero is a product line from Memgraph built on a simple idea: your data