Skip to content

Commit 56cf167

Browse files
genezhangclaude
andcommitted
docs: CHANGELOG for v0.6.3-dev release
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent eb1999a commit 56cf167

1 file changed

Lines changed: 59 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,62 @@
1+
## [0.6.3-dev] - 2026-03-01
2+
3+
### 🚀 Features
4+
5+
- **LDBC SNB benchmark: 14/37 → 36/37 (97%)** — 22 queries promoted from adapted to official Cypher. The only remaining gap is bi-16 (CALL subquery, a known language feature gap).
6+
- **Official queries promoted**: complex-3, complex-5, complex-7, complex-10, complex-12, complex-13, bi-3, bi-8, bi-14, and others
7+
- Adapted queries remaining: bi-17 (multi-VLP), complex-14 (weighted shortest path via `cost(path)`)
8+
9+
- **GraphRAG structured output** (`format: "Graph"`) (PR #165): Query results returned as graph-structured JSON with nodes, edges, and properties — enables direct consumption by graph visualization and RAG pipelines.
10+
11+
- **ClickHouse cluster load balancing** (`CLICKHOUSE_CLUSTER` env var) (PR #164): Distributes queries across ClickHouse cluster nodes for horizontal read scaling.
12+
13+
- **`apoc.meta.schema()` for MCP server compatibility** (PR #163): Implements the Neo4j APOC procedure that MCP servers and graph tools use for schema introspection.
14+
15+
- **LLM-powered schema discovery** (`:discover` command) (PR #146): Server formats a discovery prompt (`POST /schemas/discover-prompt`), client calls LLM (Anthropic or OpenAI-compatible) to generate YAML schema from ClickHouse table metadata. Replaced the GLiNER/gline-rs approach.
16+
17+
- **Weighted shortest path** (`cost(path)` function) (PR #160): Supports Dijkstra-style weighted VLP traversal for queries like complex-14. `WeightCteConfig` carries weight info through the VLP pipeline; auto-creates bidirectional weight CTEs for undirected traversal.
18+
19+
- **List comprehension → `arrayCount()` optimization** (PR #153): Parses `[x IN list WHERE cond | expr]` syntax, maps `size(ListComprehension)` to ClickHouse `arrayCount()` — avoids correlated subqueries that fail with UNION ALL ("Cannot clone Union plan step").
20+
21+
- **Pattern comprehension → pre-aggregated CTE approach** (PR #159): Replaces correlated subqueries from `size(PatternComprehension)` with pre-aggregated CTEs + LEFT JOINs. Includes `arrayConcat()` for list concatenation (`list1 + list2`).
22+
23+
- **Official complex-7 — chained map access + NOT EXISTS** (PR #152): Greedy chained property parsing (`a.b.c`), map literal node flattening (`head(collect({key: node}))`), split NOT EXISTS for undirected edges.
24+
25+
- **Official complex-3 — supertype inference + IN→OR expansion** (PR #151): Supertype collapse (Post+Comment → Message), `IN [col1, col2]``OR` expansion for ClickHouse compatibility, 5-WITH chain support.
26+
27+
- **Map property access** (`collect({score: x})[0].score` → ClickHouse map subscript) (PR #147): Tracks `map_keys` through CTE pipeline, generates `ArraySubscript` for map property access with 0-based → 1-based index conversion.
28+
29+
- **UNWIND support** (ARRAY JOIN) (PR #133): Translates Cypher UNWIND to ClickHouse ARRAY JOIN.
30+
31+
- **`--log-level` CLI flag** for runtime log level configuration.
32+
33+
### 🐛 Bug Fixes
34+
35+
- **Undirected edge fixes**: Removed `has_nested_undirected_edge` guard that prevented UNION split for mid-chain undirected edges (PR #147). Fixed BidirectionalUnion for multi-pattern MATCH with bound endpoints — collapses redundant Union to single Outgoing branch (PR #148).
36+
37+
- **VLP (variable-length path) fixes**: Fixed path rewriting for reverse UNION branches (PR #135), composite ID support (PR #134, #136), `*N..N` exact-hop guard (PR #137), duplicate WITH RECURSIVE removal (PR #131), multi-VLP query support (PR #132), DISTINCT deduplication (PR #130), zero-lower-bound `*0..` for single-type and multi-type VLPs (PR #142), CROSS JOIN removal for VLP CTEs in downstream queries (PR #145).
38+
39+
- **OPTIONAL MATCH fixes**: INNER→LEFT JOIN conversion for CTE-backed JOINs in OPTIONAL MATCH context, spurious duplicate JOIN removal, orphan JOIN removal guards, `collect(node)` expansion to ID-only for `has()` compatibility (PR #143).
40+
41+
- **CTE/scope fixes**: Bare variable resolution after WITH barrier (PR #120, #121), `cte_references` preservation in UNION branches (PR #122), composite alias augmentation (PR #128), buried WithClause preservation in DuplicateScansRemoving (PR #138).
42+
43+
- **shortestPath fixes**: `CASE path IS NULL``ifNull(minOrNull(hop_count), -1)` rewriting, spurious non-VLP JOIN cleanup, endpoint inline filter preservation (PR #157).
44+
45+
- **Parser whitespace fix**: `MATCH`/`OPTIONAL MATCH` now handle leading whitespace after `$param` syntax (PR #145).
46+
47+
- **Browser click-to-expand regressions**: Fixed 5 bugs from scope resolution redesign — filter_tagging crash, VLP multi-type inference, type mismatch, polymorphic label extraction, pruned MATCH detection (PR #156).
48+
49+
- **Determinism fixes**: HashSet→BTreeSet in anchor node selection, HashMap→BTreeMap in GraphSchema, sorted conversions in CTE extraction (PR #137, #139).
50+
51+
### ⚙️ Infrastructure
52+
53+
- **Integration test cleanup**: 3,068 tests passing, 57 stale xfails removed (PR #169).
54+
- **Scoping-only WITH collapse + benchmark infrastructure** (PR #168): Optimizes scoping-only WITH clauses that don't need CTE materialization.
55+
- **Schema-parameterized SQL generation tests**: 76 tests across 6 schema variants (PR #162).
56+
- **Browser interaction tests** with full schema variant coverage (PR #161).
57+
- **Version bump to v0.6.3-dev** with README cleanup (PR #167).
58+
- **Roadmap and guide updates** (PR #166).
59+
160
## [0.6.2-dev] - 2026-02-20
261

362
### ⚙️ Architecture

0 commit comments

Comments
 (0)