Skip to content

Commit b86ffbb

Browse files
committed
chore: Release v0.5.2
🚀 Features: - Complete polymorphic edge support (wildcard, multi-hop, bidirectional) - Composite edge IDs for polymorphic tables - Coupled edge optimization (JOIN elimination) - VLP + UNWIND support (path decomposition) - OPTIONAL MATCH + VLP fix (anchor node preservation) - Denormalized edge tables (edge = node table pattern) 🧪 Testing: - 534 library tests passing - 73 schema variation tests (Standard, Denormalized, Polymorphic, Coupled) 📚 Documentation: - Schema-Polymorphic-Edges.md wiki - Cypher-Subgraph-Extraction.md wiki - coupled-edges.md notes
1 parent d0e5070 commit b86ffbb

3 files changed

Lines changed: 49 additions & 32 deletions

File tree

CHANGELOG.md

Lines changed: 30 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,62 @@
1-
## [unreleased]
1+
## [0.5.2] - 2025-11-30
22

33
### 🚀 Features
44

5-
- Fix OPTIONAL MATCH + Variable-Length Paths returning 0 rows when no path exists
5+
- **OPTIONAL MATCH + Variable-Length Paths** - Fix returning 0 rows when no path exists
66
- Changed FROM clause to use anchor node instead of CTE for optional VLP
77
- Added LEFT JOIN for CTE (instead of FROM) when VLP is optional
88
- Added LEFT JOIN for end node through CTE
99
- Extract start node filter to outer query WHERE clause
10-
- Added `extract_start_filter_for_outer_query()` to traverse logical plan and find GraphRel.where_predicate
11-
- Added `GroupBy` handling to filter extraction (was missing, causing filter to not be found)
1210
- All 27 OPTIONAL MATCH tests now pass (100%)
1311

14-
- Complete polymorphic edge support for wildcard relationship patterns
12+
- **Complete Polymorphic Edge Support** - Single table with multiple edge types
1513
- Single-hop wildcard edges: `(u:User)-[r]->(target)` with unlabeled targets
1614
- Multi-hop polymorphic CTE chaining: `(u)-[r1]->(m)-[r2]->(t)` with proper JOIN chaining
1715
- Bidirectional (incoming) edges: `(u:User)<-[r]-(source)` using `to_node_id` JOIN
1816
- Mixed edge patterns: Standard edges + polymorphic edges in same query
19-
- Added `is_incoming` tracking for correct JOIN direction
17+
- Multi-type filter with IN clause: `[:FOLLOWS|LIKES]``WHERE type IN ('FOLLOWS', 'LIKES')`
2018

21-
- Verify composite edge ID support with polymorphic tables
19+
- **Composite Edge ID Support** - Multi-column uniqueness for polymorphic tables
2220
- Single-column edge IDs: `edge_id: uid`
2321
- Composite edge IDs: `edge_id: [from_id, to_id, interaction_type, timestamp]`
24-
- Works with VLP (variable-length paths) - generates `tuple(...)` for uniqueness
22+
- Works with VLP - generates `tuple(...)` for cycle detection
2523
- Works with polymorphic edge tables - type filters + composite IDs together
26-
- Proper `NOT has(path_edges, tuple(...))` cycle detection
2724

28-
- Add coupled edge alias unification for denormalized patterns
29-
- Automatic JOIN elimination for multi-hop patterns on same table
30-
- Unified table aliases for coupled edges (e.g., both `r1` and `r2` use `r1`)
25+
- **Coupled Edge Optimization** - JOIN elimination for multi-hop on same table
26+
- Automatic detection when edges share table and coupling node
27+
- Unified table aliases (e.g., both `r1` and `r2` use `r1`)
3128
- Works with all Cypher features: WHERE, aggregations, ORDER BY, DISTINCT, UNWIND
32-
33-
- Add UNWIND property mapping for denormalized nodes
34-
- `transform_unwind_expression()` resolves Cypher properties to SQL columns
35-
- Supports denormalized node properties (`from_node_properties`/`to_node_properties`)
3629

37-
- Add VLP + UNWIND support: UNWIND nodes(p) and relationships(p) after variable-length paths
38-
- Translates to ARRAY JOIN on CTE's path_nodes/path_relationships arrays
30+
- **VLP + UNWIND Support** - Path decomposition with ARRAY JOIN
31+
- `UNWIND nodes(p) AS n` - Explodes path nodes to rows
32+
- `UNWIND relationships(p) AS r` - Explodes path relationships to rows
3933
- Works with all VLP patterns: `*`, `*2`, `*1..3`, `*..5`, `*2..`
40-
41-
- Add coupled edge detection in graph schema
42-
- `are_edges_coupled()` and `get_coupled_edge_info()` schema methods
43-
- Detects when two edges share the same table and a common node
44-
- Foundation for multi-edge single-row optimization (Zeek DNS pattern)
34+
35+
- **Denormalized Edge Tables** - Edge table = node table pattern
36+
- Schema structure with `from_node_properties`/`to_node_properties`
37+
- Multi-hop patterns, VLP, aggregations all working
38+
- Graph algorithms: shortestPath, allShortestPaths, PageRank
39+
40+
### 🧪 Testing
41+
42+
- Add comprehensive schema variation test suite (73 tests)
43+
- Standard schema: 30 tests
44+
- Denormalized schema: 14 tests
45+
- Polymorphic schema: 24 tests
46+
- Coupled schema: 5 tests
47+
- All 534 library tests passing
4548

4649
### 📚 Documentation
4750

48-
- Update STATUS.md with complete polymorphic edge support
49-
- Add Coupled Edges section to denormalized-edge-tables.md
50-
- Add UNWIND with Coupled Edges documentation
51+
- Add Schema-Polymorphic-Edges.md wiki page
52+
- Add Cypher-Subgraph-Extraction.md wiki page
5153
- Add coupled-edges.md implementation notes
54+
- Update STATUS.md with complete schema variation support
5255

5356
### ⚙️ Miscellaneous Tasks
5457

5558
- Update CHANGELOG.md [skip ci]
59+
5660
## [0.5.1] - 2025-11-21
5761

5862
### 🚀 Features

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ members = [
55

66
[package]
77
name = "clickgraph"
8-
version = "0.5.1"
9-
edition = "2024"
8+
version = "0.5.2"
9+
edition = "2021"
1010
rust-version = "1.85"
1111

1212
[dependencies]

STATUS.md

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,20 @@
22

33
*Updated: November 30, 2025*
44

5+
## 🎉 **v0.5.2 Released** - November 30, 2025
6+
7+
**Highlights**:
8+
- ✅ Complete polymorphic edge support (wildcard, multi-hop, bidirectional)
9+
- ✅ Composite edge IDs for polymorphic tables
10+
- ✅ Coupled edge optimization (JOIN elimination)
11+
- ✅ VLP + UNWIND support (path decomposition)
12+
- ✅ OPTIONAL MATCH + VLP fix (anchor node preservation)
13+
- ✅ Denormalized edge tables (edge = node table pattern)
14+
- ✅ 534 library tests passing
15+
- ✅ 73 schema variation tests (Standard, Denormalized, Polymorphic, Coupled)
16+
17+
---
18+
519
## 🚨 **CRITICAL DOCUMENTATION FIX** - November 22, 2025
620

721
**Issue Found**: Cypher Language Reference was missing critical enterprise features:
@@ -30,12 +44,11 @@
3044

3145
---
3246

33-
## 🎯 **v0.5.2-alpha: In Progress** 🚧
47+
## **v0.5.2: Complete**
3448

35-
**Status**: ✅ **All Schema Variations - COMPLETE**
49+
**Status**: ✅ **RELEASED**
3650
**Started**: November 22, 2025
37-
**Updated**: November 29, 2025
38-
**Next**: v0.5.2-alpha release preparation
51+
**Completed**: November 30, 2025
3952

4053
### 🆕 Polymorphic Edge Filters - COMPLETE (Nov 29, 2025)
4154

0 commit comments

Comments
 (0)