Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
571c198
Fix issue 2245 - Creating more than 41 vlabels causes crash in drop_g…
jrgemignani Nov 19, 2025
5aed9ec
Add index on id columns (#2117)
MuhammadTahaNaveed Dec 3, 2025
26f748c
Fix Issue 2256: segmentation fault when calling coalesce function (#2…
jrgemignani Dec 9, 2025
fa9973a
Adjust 'could not find rte for' ERROR message (#2266)
jrgemignani Dec 9, 2025
0ea9464
Fix possible memory and file descriptors leaks (#2258)
ZigzagAK Dec 9, 2025
898481a
Fix ORDER BY alias resolution with AS in Cypher queries (#2269)
jrgemignani Dec 10, 2025
91de779
Update grammar file for maintainability (#2270)
jrgemignani Dec 11, 2025
1bb95bf
Convert string to raw string to remove invalid escape sequence warnin…
jsell-rh Dec 11, 2025
838926c
Migrate python driver configuration to pyproject.toml (#2272)
MuhammadTahaNaveed Dec 11, 2025
48fca83
Restrict age_load commands (#2274)
jrgemignani Dec 16, 2025
dd6deb7
Makefile: fix race condition on cypher_gram_def.h (#2273)
tureba Jan 6, 2026
4eeceab
Revise README for Python driver updates (#2298)
M15terHyde Jan 6, 2026
2e8f7ab
Fix Issue 2289: handle empty list in IN expression (#2294)
jrgemignani Jan 9, 2026
7beb653
Fix and improve index.sql regression test coverage (#2300)
jrgemignani Jan 9, 2026
a1f472d
Fix and improve index.sql addendum (#2301)
jrgemignani Jan 10, 2026
c979380
feat: Add 32-bit platform support for graphid type (#2286)
jpabbuehl Jan 12, 2026
b9d0982
Optimize vertex/edge field access with direct array indexing (#2302)
jrgemignani Jan 16, 2026
8bdeec5
Upgrade Jest to v29 for node: protocol compatibility (#2307)
jrgemignani Jan 17, 2026
56a92d8
Fix Issue 1884: Ambiguous column reference (#2306)
jrgemignani Jan 18, 2026
b29ca5e
Replace libcsv with pg COPY for csv loading (#2310)
MuhammadTahaNaveed Jan 19, 2026
1702ae0
Add RLS support and fix permission checks (#2309)
MuhammadTahaNaveed Jan 20, 2026
b3219fd
Master to PostgreSQL version 18 (#2315)
jrgemignani Jan 21, 2026
6287af8
Fix upgrade script for 1.6.0 to 1.7.0 (#2320)
MuhammadTahaNaveed Jan 22, 2026
858747c
Advance master branch to Apache AGE version 1.7.0 (#2316)
jrgemignani Jan 22, 2026
5fe2121
Add pg_upgrade support functions for PostgreSQL (#2326)
jrgemignani Feb 10, 2026
887564d
Fix JDBC driver CI test failures (#2333)
jrgemignani Feb 13, 2026
5f5b744
Update python-driver security and formatting (#2330)
jrgemignani Feb 13, 2026
77a16ec
Fix security vulnerabilities in Node.js driver (#2329)
jrgemignani Feb 13, 2026
0c9a527
Fix null pointer handling in array iteration (#2313)
ProjectMutilation Feb 13, 2026
fa91350
Fix ISO C90 forbids mixed declarations and code warning (#2334)
jrgemignani Feb 14, 2026
3c4d9cc
Remove labeler github action (#2335)
MuhammadTahaNaveed Feb 16, 2026
55476ad
fix incorrect variable assignment (#2336)
jrgemignani Feb 25, 2026
5005c21
Fix VLE NULL handling for chained OPTIONAL MATCH (#2337)
gregfelice Feb 26, 2026
346f319
Fix VLE queries failing on read-only replicas (#2160) (#2345)
gregfelice Feb 27, 2026
20ada84
Fix chained MERGE not seeing sibling MERGE's changes (#1446) (#2344)
gregfelice Feb 27, 2026
217467a
Fix MATCH after CREATE returning 0 rows (issue #2308) (#2340)
gregfelice Feb 27, 2026
a21120b
Support doubled-quote escaping in Cypher string literals (issue #2222…
gregfelice Mar 2, 2026
d0741d8
Fix entity_exists() CID visibility for CREATE + WITH + MERGE (#2343)
gregfelice Mar 2, 2026
23146a4
Fix crash in PREPARE with property parameter when enable_containment …
gregfelice Mar 3, 2026
90c33eb
Add extension upgrade template regression test (#2364)
jrgemignani Apr 6, 2026
a29e281
Fix nondeterministic age_global_graph regression test (#2365)
jrgemignani Apr 6, 2026
d6f1b7f
Fix MATCH on brand-new label after CREATE returning 0 rows (#2341)
gregfelice Apr 6, 2026
b3a00ee
Add index scan (#2351)
sandy-bes Apr 14, 2026
945a259
Add missing include for PR: Add index scan (#2351) (#2379)
jrgemignani Apr 14, 2026
1847644
Improve extension upgrade regression test (addendum to #2364) (#2377)
jrgemignani Apr 15, 2026
f1a9b1d
Fix upgrade test: build default install SQL from HEAD, not initial co…
jrgemignani Apr 16, 2026
ce50045
Python driver: Add `skip_load` parameter to skip `LOAD 'age'` stateme…
uesleilima Apr 19, 2026
15030a0
Fix OPTIONAL MATCH dropping null-preserving rows with subquery WHERE …
gregfelice Apr 19, 2026
4f9db37
Implement predicate functions: all(), any(), none(), single() (#2359)
gregfelice Apr 19, 2026
bdc8b6d
fix(python-driver): quote-escape column aliases in buildCypher() (#2373)
uesleilima Apr 20, 2026
6c40838
Fix substring() crash when start-offset is NULL and length is supplie…
SAY-5 Apr 20, 2026
908d7b2
Return an empty list from tail() for empty and singleton lists (#2399)
SAY-5 Apr 20, 2026
26bd4f4
fix(python-driver): add null-guards in ANTLR parser and relax runtime…
uesleilima Apr 20, 2026
ee25e2a
CI: fail build on compiler and bison warnings (#2398)
MuhammadTahaNaveed Apr 20, 2026
798917c
VLE cache + performance improvements (#2376)
jrgemignani Apr 21, 2026
6f520fe
Propagate null in agtype_access_slice bounds (#2400)
SAY-5 Apr 21, 2026
84e2954
Add MERGE ON CREATE SET / ON MATCH SET support (#2347)
gregfelice Apr 22, 2026
5a74048
Fix property access on list comprehension / predicate loop variables …
MuhammadTahaNaveed Apr 25, 2026
9f9d0f3
Add VLE semantics and cost model design note (#2349) (#2413)
gregfelice Apr 25, 2026
22f4c94
Update README.md (#2414)
crprashant Apr 27, 2026
774e781
Propagate null through agtype arithmetic operators (#2405)
MuhammadTahaNaveed Apr 27, 2026
ff47828
Allow safe Cypher reserved keywords in alias positions (#2355) (#2415)
crprashant Apr 29, 2026
54e19fa
Fix upgrade test: replace data-integrity checks with catalog comparis…
jrgemignani Apr 30, 2026
e9ef30b
Zero-initialize parent_cpstate in analyze_cypher (#2423)
hari90 May 4, 2026
a1b749a
Fix upgrade test: allow function removal (#2422)
jrgemignani May 5, 2026
01ee941
feat(python-driver): add public API for connection pooling and model …
uesleilima May 13, 2026
9960e9c
Add agtype <-> jsonb bidirectional casts (#350) (#2361)
gregfelice May 14, 2026
f02eda0
perf: VLE terminal-qual rewrite (#2420)
jrgemignani Jun 1, 2026
5ef7d6d
Add vertex and edge composite types with direct field access optimiza…
MuhammadTahaNaveed Jun 1, 2026
795a881
perf(agtype): arena passthrough + binary-direct id extraction (#2424)
jrgemignani Jun 1, 2026
5a254d6
python driver: preserve trailing quotes in agtype string values (#2425)
SAY-5 Jun 2, 2026
73d0705
perf: VLE hash-adjacency overhaul — agehash + flat-array VertexEdgeAr…
jrgemignani Jun 3, 2026
639c8d5
Restore contsel/contjoinsel for containment & key-existence operators…
crprashant Jun 8, 2026
23cbe57
fix: remove pthread_mutex that causes self-deadlock on VLE queries (#…
crdv7 Jun 9, 2026
12e2a31
Fix VLE [*0..N] zero-hop self-binding when edge label is missing (#23…
crprashant Jun 11, 2026
14732bf
Fix locale-dependent string comparison in direct_field_access test (#…
serdarmumcu Jun 11, 2026
a17bf45
Make age extension usable from shared_preload_libraries (#2438)
serdarmumcu Jun 20, 2026
310dc3f
feature: add create_subgraph() (#2441)
jrgemignani Jun 20, 2026
932d26f
cypher_vle: add ORDER BY to non-deterministic RETURN queries (#2434)
jrgemignani Jun 20, 2026
34483ef
age_global_graph: stabilize regression tests (#2431)
jrgemignani Jun 20, 2026
581d236
Makefile: add installcheck-existing target and improve readability (#…
jrgemignani Jun 20, 2026
01ea79d
Make ag_catalog ownership and built-in resolution explicit (#2440)
jrgemignani Jun 21, 2026
3cc74a4
cypher_with: add ORDER BY to non-deterministic RETURN queries (#2436)
jrgemignani Jun 21, 2026
5abb02f
Add shortest_path / all_shortest_paths SRFs (#2430)
jrgemignani Jun 21, 2026
2bc8e95
Support pattern expressions as boolean expressions (#2360)
gregfelice Jun 22, 2026
92e48e9
Add reduce() list folding function (#2435)
jrgemignani Jun 26, 2026
ce073ef
resolve subgraph staging sequences via regclass (#2446)
jrgemignani Jun 29, 2026
08da2ce
Support relationship-type filters and a minimum hop count (#2442)
jrgemignani Jun 29, 2026
fe48740
Fix single-node labeled pattern expressions not filtering by label (#…
gregfelice Jun 29, 2026
54668e1
Preserve null-valued keys in map literals (#2391) (#2412)
crprashant Jun 29, 2026
5137671
Fix Node.js driver CI build broken by @types/node drift (#2452)
jrgemignani Jul 2, 2026
fafdaa1
Fix stack overflow and precision loss in toFloatList() conversion (#2…
gregfelice Jul 2, 2026
7bfeb24
Support outer references in reduce() fold bodies (#2448)
jrgemignani Jul 2, 2026
09fce2c
Fix segfault and out-of-bounds reads in file loaders on malformed row…
gregfelice Jul 2, 2026
c1617a2
ci: pin Build/Regression runner to ubuntu-24.04 and guard Bison versi…
gregfelice Jul 2, 2026
d84b457
Add automatic header-dependency tracking to the Makefile (#2454)
jrgemignani Jul 2, 2026
39273ca
Propagate null through unnest and single() three-valued logic (#2406)
MuhammadTahaNaveed Jul 3, 2026
53ecacf
Fix segfault on CREATE/MERGE/SET with generated or extra label column…
gregfelice Jul 3, 2026
fef5470
Fix installcheck fetch-depth parameter to 100 (#2461)
jrgemignani Jul 3, 2026
9fb7df8
Advance master branch to Apache AGE version 1.8.0 (#2455)
jrgemignani Jul 3, 2026
f4798d3
Merge master into PG18: advance to Apache AGE 1.8.0
jgemignani Jul 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 0 additions & 26 deletions .github/labeler.yml

This file was deleted.

32 changes: 30 additions & 2 deletions .github/workflows/installcheck.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,12 @@ on:

jobs:
build:
runs-on: ubuntu-latest
# Pinned (not ubuntu-latest) so the Bison version stays fixed at 3.8.x.
# The Cypher GLR grammar pins exact conflict counts via %expect / %expect-rr
# in src/backend/parser/cypher_gram.y, and Bison treats %expect as exact-match:
# a different Bison version can report different counts and break the build.
# Freezing the runner image freezes Bison; bump both together, intentionally.
runs-on: ubuntu-24.04

steps:
- name: Get latest commit id of PostgreSQL 18
Expand All @@ -28,6 +33,27 @@ jobs:
sudo apt-get update
sudo apt-get install -y build-essential libreadline-dev zlib1g-dev flex bison

- name: Verify Bison version (grammar conflict counts are pinned)
run: |
ver=$(bison --version | awk 'NR==1 {print $NF}')
if [ -z "$ver" ]; then
echo "::error::Could not determine Bison version from 'bison --version'."
echo "::error::Expected the first line to end with a version (e.g. '... 3.8.2')."
exit 1
fi
echo "bison $ver"
case "$ver" in
3.8.*) ;;
*)
echo "::error::Bison $ver != 3.8.x. The Cypher GLR grammar pins exact"
echo "::error::%expect / %expect-rr conflict counts in src/backend/parser/cypher_gram.y."
echo "::error::A new Bison version may report different counts. Re-run bison locally,"
echo "::error::update the %expect/%expect-rr numbers (and the comment block), then bump"
echo "::error::the pinned runner image and this guard together."
exit 1
;;
esac

- name: Install PostgreSQL 18 and some extensions
if: steps.pg18cache.outputs.cache-hit != 'true'
run: |
Expand All @@ -42,11 +68,13 @@ jobs:
make PG_CONFIG=$HOME/pg18/bin/pg_config install -j$(nproc) > /dev/null

- uses: actions/checkout@v3
with:
fetch-depth: 100

- name: Build AGE
id: build
run: |
make PG_CONFIG=$HOME/pg18/bin/pg_config install -j$(nproc)
make PG_CONFIG=$HOME/pg18/bin/pg_config COPT=-Werror install -j$(nproc)

- name: Pull and build pgvector
id: pgvector
Expand Down
31 changes: 0 additions & 31 deletions .github/workflows/labeler.yml

This file was deleted.

4 changes: 2 additions & 2 deletions .github/workflows/nodejs-driver.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ jobs:
run: docker compose up -d

- name: Set up Node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: latest
node-version: 20

- name: Install dependencies
run: npm install
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/python-driver.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@ jobs:
run: docker compose up -d

- name: Set up python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: '3.12'

- name: Install pre-requisites
run: |
sudo apt-get install python3-dev libpq-dev
pip install -r requirements.txt
pip install --no-binary psycopg -r requirements.txt

- name: Build
run: |
Expand All @@ -40,3 +40,4 @@ jobs:
python test_age_py.py -db "postgres" -u "postgres" -pass "agens"
python test_networkx.py -db "postgres" -u "postgres" -pass "agens"
python -m unittest -v test_agtypes.py
python -m unittest -v test_security.py
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
*.o
*.d
*.so
build.sh
.idea
Expand All @@ -15,3 +16,4 @@ __pycache__
**/apache_age_python.egg-info

drivers/python/build
*.bc
8 changes: 4 additions & 4 deletions META.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,23 @@
"name": "ApacheAGE",
"abstract": "Apache AGE is a PostgreSQL Extension that provides graph database functionality",
"description": "Apache AGE is 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. A graph consists of a set of vertices (also called nodes) and edges, where each individual vertex and edge possesses a map of properties. A vertex is the basic object of a graph, that can exist independently of everything else in the graph. An edge creates a directed connection between two vertices. A graph database is simply composed of vertices and edges. This type of database is useful when the meaning is in the relationships between the data. Relational databases can easily handle direct relationships, but indirect relationships are more difficult to deal with in relational databases. A graph database stores relationship information as a first-class entity. Apache AGE gives you the best of both worlds, simultaneously.",
"version": "1.3.0",
"version": "1.8.0",
"maintainer": [
"users@age.apache.org"
],
"license": "apache_2_0",
"provides": {
"ApacheAGE": {
"abstract": "Apache AGE is a PostgreSQL Extension that provides graph database functionality",
"file": "age--1.3.0.sql",
"file": "age--1.8.0.sql",
"docfile": "README.md",
"version": "1.3.0"
"version": "1.8.0"
}
},
"prereqs": {
"runtime": {
"requires": {
"PostgreSQL": "14.0.0"
"PostgreSQL": "18.0.0"
}
}
},
Expand Down
Loading
Loading