Apache AGE

Apache AGE a PostgreSQL extension that provides graph database functionality. AGE is an acronym for A Graph Extension, and is inspired by Bitnine's fork of PostgreSQL 10, AgensGraph, which is a multi-model database. The goal of the project is to create single storage that can handle both relational and graph model data so that users can use standard ANSI SQL along with openCypher, the Graph query language.

Below is a brief overview of the AGE architecture in relation to the PostgreSQL architecture and backend. Every component runs on the PostgreSQL transaction cache layer and storage layer.


Getting AGE

Getting Source Code

Apache AGE releases

The release notes for each release can be found from one of the following links:

The source code can be downloaded from one of the following Apache release


The source code can be downloaded from the master branch on Github. Please note that this is the development link and the Apache AGE makes no guarantees about the stability of the source code.


Install the following essential libraries according to each OS.

Building AGE from source depends on the following Linux libraries (Ubuntu package names shown below):


$ yum install gcc glibc glib-common readline readline-devel zlib zlib-devel flex bison


$ dnf install gcc glibc bison flex readline readline-devel zlib zlib-devel


$ sudo apt-get install build-essential libreadline-dev zlib1g-dev flex bison


The build process will attempt to use the first path in the PATH environment variable when installing AGE. If the pg_config path is located there, run the following command in the source code directory of Apache AGE to build and install the extension.

$ make install

If the path to your Postgres installation is not in the PATH variable, add the path in the arguments:

$ make PG_CONFIG=/path/to/postgres/bin/pg_config install

Post Installation

Per Installation Instructions

After the installation, run the CREATE EXTENSION command to have AGE be installed on the server.


Per Session Instructions

LOAD 'age';

We recommend adding ag_catalog to your search_path to simplify your queries. The rest of this document will assume you have done so. If you do not, remember to add 'ag_catalog' to your cypher query function calls.

SET search_path = ag_catalog, "$user", public;