github apache/age PG15/v1.8.0-rc0
Release v1.8.0 for PG15

pre-release4 hours ago

This candidate is for development testing and community review, pending Apache AGE PMC approval.

Performance and memory improvements

  • Added PostgreSQL composite vertex and edge types so queries can access IDs and properties without constructing and decoding complete agtype entities. Returning these composite types also avoids the final conversion to agtype.
  • Reduced entity access and comparison overhead through fixed field positions, direct binary graph-ID comparisons, and reusable comparison memory, benefiting sorting, joins, and aggregation.
  • Improved variable-length traversal with flat adjacency arrays, array-based traversal stacks, compact hash tables, and batched edge lookups.
  • Reduced graph-cache memory usage by storing tuple locations and fetching properties when needed. Traversals that only filter by label avoid fetching properties.
  • Exposed variable-length traversal endpoints as graphid columns, allowing ordinary equality joins instead of repeatedly decoding paths to match their endpoints.
  • Added per-graph version counters so unrelated database activity does not invalidate cached graphs. On PostgreSQL 15, this requires shared_preload_libraries = 'age'; otherwise, snapshot-based invalidation remains in use.
  • Added automatic vertex-ID and edge-endpoint indexes, with indexed lookups for entity existence checks, updates, and deletes. The upgrade also creates the required indexes for existing labels.
  • Reduced planning overhead for containment and key-existence predicates by replacing expensive statistics evaluation with fixed selectivity estimates, trading estimation precision for lower planning cost.
  • Improved CSV loading through PostgreSQL’s COPY parser, batched heap inserts, row and byte limits for flushing batches, and memory reuse between batches.
  • Added specialized edge-uniqueness checks for fixed-length paths containing two, three, or four relationships, reducing overhead for common short patterns.

Cypher and graph features

  • Adds MERGE with ON CREATE SET and ON MATCH SET.
  • Adds reduce() list folding, including references to enclosing query values, and the predicate functions all(), any(), none(), and single().

PostgreSQL and driver integration

  • Adds row-level security enforcement and improves permission checks for graph reads and writes.
  • Supports loading AGE through shared_preload_libraries and adds helpers for preparing and completing PostgreSQL major-version upgrades.
  • Adds Python APIs for configuring existing or pooled psycopg connections and converting graph models to ordinary Python dictionaries.
  • Includes Python, Node.js, JDBC, and Go driver fixes and dependency updates.

Correctness and stability

  • Fixes visibility of changes across CREATE, MATCH, and chained MERGE operations.
  • Corrects OPTIONAL MATCH, NULL propagation, zero-hop traversal, and read-only replica behavior.
  • Fixes crashes involving generated or additional label columns, malformed CSV input, prepared statements, and value conversions.
  • Addresses memory leaks, invalid memory accesses, and driver input-validation issues.

Full Changelog: PG15/v1.6.0-rc0...PG15/v1.8.0-rc0

Don't miss a new age release

NewReleases is sending notifications on new releases.