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
Copy file name to clipboardExpand all lines: CHANGELOG.md
+33-2Lines changed: 33 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,39 @@
1
-
## [0.6.4-dev] - 2026-03-14
1
+
## [0.6.5-dev] - 2026-03-21
2
2
3
3
### 🚀 Features
4
4
5
-
-**Hybrid remote query + local storage**: Execute Cypher queries against a remote ClickHouse cluster from embedded mode, then store results locally in chdb as a subgraph for fast re-querying. New `RemoteConfig` for `SystemConfig`, plus `Connection` methods: `query_remote()`, `query_remote_graph()`, `query_graph()`, `store_subgraph()`. New `GraphResult` structured output and `StoreStats` return type. Available in Rust, Python (UniFFI), and Go (UniFFI) bindings. `RoleConnectionPool::new_with_params()` enables programmatic pool creation without env vars.
5
+
-**Hybrid remote query + local storage** (PR #240): Execute Cypher queries against a remote ClickHouse cluster from embedded mode, then store results locally in chdb as a subgraph for fast re-querying. New `RemoteConfig` for `SystemConfig`, plus `Connection` methods: `query_remote()`, `query_remote_graph()`, `query_graph()`, `store_subgraph()`. New `GraphResult` structured output and `StoreStats` return type. Available in Rust, Python (UniFFI), and Go (UniFFI) bindings.
6
+
7
+
-**Embedded write API** (PR #236): `create_node()`, `create_edge()`, `upsert_node()`, `upsert_edge()` with batch variants (`create_nodes()`, `create_edges()`). `delete_nodes()`, `delete_edges()` for cleanup. `import_json()` and `import_json_file()` for bulk JSON import. Schema entries without `source:` get auto-created as `ReplacingMergeTree` tables. `property_types` field for type-aware DDL (PR #238).
-**Python wrapper improvements** (PR #246): `result.compiling_time`/`execution_time`/`column_data_types` properties. `conn.create_node()`/`create_edge()`/`create_nodes()`/`import_file()`/`execute_sql()` accept plain Python dicts with auto-conversion to FFI Value types.
18
+
19
+
### 📚 Documentation
20
+
21
+
-**Tutorials and examples** (PR #246): 5 runnable Python scripts (`examples/embedded/`) covering quick start, DataFrames, write API, GraphRAG hybrid workflow, and export formats. Wiki tutorial page (`docs/wiki/Embedded-Tutorials.md`) with Python + Rust code, architecture diagrams, and API quick reference.
22
+
23
+
### 🐛 Bug Fixes
24
+
25
+
-**Edge extraction fallback** (PR #241): `extract_edge_from_row` falls back to `from_id`/`to_id` aliases when schema FK column names don't match SQL-generated column names.
26
+
-**Security dep updates**: `lz4_flex` 0.11.5→0.11.6 (RUSTSEC-2026-0041), `rustls-webpki` 0.103.8→0.103.10 (RUSTSEC-2026-0049).
27
+
28
+
### 🧹 Infrastructure
29
+
30
+
-**CI**: `cargo audit` ignores unmaintained `rustls-pemfile` warning (transitive dep via chdb-rust).
31
+
32
+
---
33
+
34
+
## [0.6.4-dev] - 2026-03-14
35
+
36
+
### 🚀 Features
6
37
7
38
-**Denormalized & coupled schema support**: Full query support for schemas where node properties are embedded in edge tables via `from_node_properties`/`to_node_properties`. Includes property mapping, ORDER BY resolution, UNION aggregate column rewriting, and `id()` on virtual nodes (PRs #224-#228).
Copy file name to clipboardExpand all lines: README.md
+10-14Lines changed: 10 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,29 +4,25 @@
4
4
5
5
# ClickGraph
6
6
7
-
#### ClickGraph - A high-performance, stateless, read-only graph query service for ClickHouse, written in Rust, with Neo4j ecosystem compatibility - Cypher and Bolt Protocol 5.8 support. Now supports embedded mode and exporting query results to external destinations, with Golang, Python bindings, in addition to native Rust.
7
+
#### ClickGraph - A high-performance, stateless, read-only graph query service for ClickHouse, written in Rust, with Neo4j ecosystem compatibility - Cypher and Bolt Protocol 5.8 support. Now supports embedded mode with local writes, and exporting query results to external destinations, with Golang, Python bindings, in addition to native Rust.
8
8
9
9
> **Note: ClickGraph dev release is at beta quality for view-based graph analytics applications. Kindly raise an issue if you encounter any problem.**
10
10
11
11
---
12
12
## Motivation and Rationale
13
-
- Viewing ClickHouse databases (including external sources) as graph data with graph analytics capability brings another level of abstraction and boosts productivity with graph tools, and enables agentic GraphRAG support.
13
+
- Viewing ClickHouse databases (including external sources) as graph data with graph analytics capability brings another level of abstraction and boosts productivity with graph tools, and enables agentic GraphRAG support with local writes.
14
14
- Research shows relational analytics with columnar stores and vectorized execution engines like ClickHouse provide superior analytical performance and scalability to graph-native technologies, which usually leverage explicit adjacency representations and are more suitable for local-area graph traversals.
15
15
- View-based graph analytics offer the benefits of zero-ETL without the hassle of data migration and duplicate cost, yet better performance and scalability than most of the native graph analytics options.
16
16
- Neo4j Bolt protocol support gives access to the tools available based on the Bolt protocol.
17
17
---
18
-
## What's New Under Development
18
+
## What's New in v0.6.5-dev
19
19
20
20
-**Hybrid remote query + local storage** — Execute Cypher queries against a remote ClickHouse cluster from embedded mode, then store results locally in chdb as a subgraph for fast re-querying. `query_remote()`, `query_remote_graph()`, `store_subgraph()` — ideal for GraphRAG context enrichment. Available in Rust, Python, and Go. See [Embedded Mode](docs/wiki/Embedded-Mode.md#hybrid-remote-query--local-storage).
21
-
-**Embedded write API for GraphRAG** - `create_node()`, `create_edge()`, `upsert_node()` with batch variants. AI agents can extract entities from documents, store them as graph data, and query with Cypher — all in-process. See [Embedded Mode Write API](docs/wiki/Embedded-Mode.md#write-api-embedded-mode-only).
22
-
23
-
## What's New in v0.6.4-dev
24
-
25
-
-**Embedded mode** - Query Parquet/Iceberg/Delta/S3 directly — no ClickHouse server needed. Use as a Rust library (`clickgraph-embedded`) or run the server with `--embedded`. Use for agent's local tool.
26
-
-**Golang and Python bindings** - for embedded ClickGraph in addition to Rust native interface.
27
-
-**Export query results** - `CALL apoc.export.{csv|json|parquet}.query()` exports to files, S3, GCS, Azure, and HTTP destinations. Compatible commands with Kuzu and DuckDB are also provided.
28
-
-**Denormalized & coupled schema fixes** - Corrected property mapping, OPTIONAL MATCH (was silently dropped), and VLP cycle prevention for schemas where node properties are embedded in edge tables.
29
-
-**1,591 unit tests** - Up from 1,277, with comprehensive cross-schema pattern matrix tests.
21
+
-**Embedded write API for GraphRAG** — `create_node()`, `create_edge()`, `upsert_node()` with batch variants. AI agents can extract entities from documents, store them as graph data, and query with Cypher — all in-process. See [Embedded Mode Write API](docs/wiki/Embedded-Mode.md#write-api-embedded-mode-only).
22
+
-**Kuzu API parity** — `Value::Date/Timestamp/UUID` types, query timing (`compiling_time`/`execution_time`), `Database::in_memory()`, `Connection::set_query_timeout()`, column type metadata, multi-format file import (CSV/Parquet/JSON).
23
+
-**DataFrame output** — `result.get_as_df()` (Pandas), `result.get_as_arrow()` (PyArrow), `result.get_as_pl()` (Polars) for Python data science workflows.
24
+
-**Tutorials and examples** — 5 runnable Python examples covering quick start, DataFrames, write API, GraphRAG hybrid workflow, and export formats. See [`examples/embedded/`](examples/embedded/).
25
+
-**1,599 unit tests** — Up from 1,591, with hybrid E2E tests and comprehensive Value type coverage.
30
26
31
27
See [CHANGELOG.md](CHANGELOG.md) for complete release history.
32
28
@@ -46,7 +42,7 @@ See [CHANGELOG.md](CHANGELOG.md) for complete release history.
46
42
-**GraphRAG structured output** - `format: "Graph"` returns deduplicated nodes, edges, and stats for graph visualization and RAG pipelines.
47
43
-**Query Metrics** - Phase-by-phase timing via HTTP headers and structured logging
48
44
-**ClickHouse cluster load balancing** - `CLICKHOUSE_CLUSTER` env var auto-discovers and balances queries across cluster nodes.
49
-
-**Complex queries like LDBC SNB benchmark: 36/37 queries (97%)** - Near-complete Social Network Benchmark coverage. See [benchmark results](benchmarks/ldbc_snb/BENCHMARK_RESULTS.md) for performance data on sf0.003 and sf10 datasets.
45
+
-**Complex queries like LDBC SNB benchmark: 36/37 queries (97%)** - Near-complete Social Network Benchmark coverage. See [benchmark results](benchmarks/ldbc_snb/BENCHMARK_RESULTS.md) for performance data on sf0.003, sf1 and sf10 datasets.
0 commit comments