This release of AgensGraph brings significant enhancements and bug fixes, including upstream compatibility with PostgreSQL 17.10, improved Cypher query support, and build infrastructure updates.
Upstream Changes:
- Upstream Merge: AgensGraph is now compatible with PostgreSQL 17 up to the 17.10 release, incorporating the latest PostgreSQL improvements and security patches.
- Incremental Backup:
pg_basebackupcan now take incremental backups, combined later withpg_combinebackup, reducing the size and time of routine base backups. - MERGE Enhancements:
MERGEnow supports aRETURNINGclause (with themerge_action()function) and theWHEN NOT MATCHED BY SOURCEaction. - SQL/JSON
JSON_TABLE: AddedJSON_TABLE()along with the SQL/JSON query functionsJSON_EXISTS(),JSON_QUERY(), andJSON_VALUE()for standards-compliant JSON processing. - VACUUM Memory & Performance: A new internal data structure for storing dead tuple IDs greatly reduces VACUUM memory usage and improves performance on large tables.
- Query Performance: Numerous planner and executor improvements, including better handling of
IS [NOT] NULLand streaming I/O for sequential scans.
Enhancements:
- Optimize DELETE / DETACH DELETE performance — up to ~30x faster (#781):
- Deleting a vertex no longer scans every edge label sequentially, making deletes of highly-connected vertices roughly 30x faster in internal tests.
- New
enable_graph_dmlconfiguration parameter (#786):- Adds the
enable_graph_dmlGUC, which permits running SQL DML statements (INSERT/UPDATE/DELETE) directly against graph objects (the underlying vertex and edge tables). It defaults tooffand is superuser-only, because issuing raw SQL DML on graph storage can corrupt graph data.
- Adds the
- pgvector and expression property indexes on graph properties (#804):
CREATE PROPERTY INDEXcan now build and use pgvector HNSW indexes over a::vector(n)cast and GIN indexes overto_tsvector(...)on graph properties — the foundation for vector, full-text, and hybrid search inside Cypher (see the new Vector / Full Text / Hybrid Search guides).
AI Library:
You can access those products at the AI Repository
- LangChain AgensGraph
- Python plugin to provide support for GraphStore and VectorStore integration in
langchain.
- Python plugin to provide support for GraphStore and VectorStore integration in
- LlamaIndex AgensGraph
- Python plugin to provide support for AgensGraphStore, PropertyGraphIndex, AgensgraphVectorStore integration in
llamaindex.
- Python plugin to provide support for AgensGraphStore, PropertyGraphIndex, AgensgraphVectorStore integration in
- AgensGraph LightRag
- Python plugin to add support for storing and querying knowledge graphs in AgensGraph with
LightRAG.
- Python plugin to add support for storing and querying knowledge graphs in AgensGraph with
- Cognee Community Graph Adapter - AgensGraph
- Python plugin to provide an AgensGraph graph database adapter for the
Cogneeframework.
- Python plugin to provide an AgensGraph graph database adapter for the
- AgensGraph MCP Server
- A Model Context Protocol (MCP) server implementation that provides database interaction and allows graph exploration capabilities through AgensGraph.
Bug Fixes:
- Cannot use graph entities in list comprehensions (#788)
- Graph entities and the functions that operate on them — for example
nodes(),relationships(),startNode(),type()andlabel()— can now be used inside list comprehensions such as[n IN nodes(p) | n]or[r IN relationships(p) WHERE type(r) = 'knows']. Previously these returned incorrect results because graph objects were collected into an untyped JSONB array; they are now collected into a properly typed array.
- Graph entities and the functions that operate on them — for example
CypherList is expectederror in theINoperator (#789)- Fixed a spurious
CypherList is expectederror when the right-hand side of theINoperator is a list produced by an expression, for examplex IN split(s, ',')orx IN ['1', '2'].
- Fixed a spurious
- Assertion failure with NULL in the
SET +=operator (#791)- Using
NULLwith theSET +=(map-merge) operator no longer triggers an assertion failure; the NULL case is now handled safely with aCOALESCEfallback.
- Using
ORDER BYcould not reference variables outsideRETURN(#805)- A Cypher
RETURNfollowed byORDER BYon a column not in the projection — e.g.MATCH (p:person) RETURN p.name ORDER BY p.age— now works instead of failing.
- A Cypher
Documentation:
- Vector, Full Text, and Hybrid Search guides:
- New developer-manual pages for semantic (pgvector), full-text, and hybrid search over graph properties, including indexing and GraphRAG patterns.
- Documentation Portal:
- The documentation portal is updated for the AgensGraph 2.17 release.