This is an automated email from the ASF dual-hosted git repository.

jrgemignani pushed a commit to branch PG19
in repository https://gitbox.apache.org/repos/asf/age.git

commit 681c2248b41ecae21c52f1587eee643b4c41f1a4
Author: John Gemignani <[email protected]>
AuthorDate: Mon Jun 29 06:47:55 2026 -0700

    resolve subgraph staging sequences via regclass (#2446)
    
    The vertex/edge staging copies in create_subgraph() generated new
    graphids with nextval(%L), which binds the sequence as a string literal
    and invokes the nextval(text) overload. That re-resolves the
    schema-qualified sequence name on each call.
    
    Cast the literal to regclass (nextval(%L::regclass)) so the sequence is
    resolved once to its OID, matching how AGE defines its label id defaults
    (nextval('schema.seq'::regclass)). Applied to both the vertex and edge
    staging queries, in sql/age_subgraph.sql and the identical body in the
    age--1.7.0--y.y.y.sql upgrade template so the upgrade-path catalog
    comparison still matches.
    
    Behavior is unchanged; all 38 regression tests pass against PostgreSQL 18.
    
    Addresses Copilot review feedback on apache/age#2441.
    
    Co-authored-by: GitHub Copilot (Claude Opus 4.8) <[email protected]>
    
    modified:   age--1.7.0--y.y.y.sql
    modified:   sql/age_subgraph.sql
---
 age--1.7.0--y.y.y.sql | 4 ++--
 sql/age_subgraph.sql  | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/age--1.7.0--y.y.y.sql b/age--1.7.0--y.y.y.sql
index ec909d2b..6dc8f707 100644
--- a/age--1.7.0--y.y.y.sql
+++ b/age--1.7.0--y.y.y.sql
@@ -1013,7 +1013,7 @@ BEGIN
         EXECUTE format(
             'CREATE TEMP TABLE _ag_sg_vstage ON COMMIT DROP AS '
             'SELECT t.id AS old_id, '
-            '       ag_catalog._graphid(%s, nextval(%L)) AS new_id, '
+            '       ag_catalog._graphid(%s, nextval(%L::regclass)) AS new_id, '
             '       t.properties AS props '
             'FROM ONLY %s t '
             'WHERE EXISTS (SELECT 1 FROM _ag_sg_kept_v k WHERE k.gid = t.id)',
@@ -1076,7 +1076,7 @@ BEGIN
         DROP TABLE IF EXISTS _ag_sg_estage;
         EXECUTE format(
             'CREATE TEMP TABLE _ag_sg_estage ON COMMIT DROP AS '
-            'SELECT ag_catalog._graphid(%s, nextval(%L)) AS new_id, '
+            'SELECT ag_catalog._graphid(%s, nextval(%L::regclass)) AS new_id, '
             '       vs.new_id AS new_start, ve.new_id AS new_end, '
             '       x.properties AS props '
             'FROM ONLY %s x '
diff --git a/sql/age_subgraph.sql b/sql/age_subgraph.sql
index 960790de..0d7e3648 100644
--- a/sql/age_subgraph.sql
+++ b/sql/age_subgraph.sql
@@ -205,7 +205,7 @@ BEGIN
         EXECUTE format(
             'CREATE TEMP TABLE _ag_sg_vstage ON COMMIT DROP AS '
             'SELECT t.id AS old_id, '
-            '       ag_catalog._graphid(%s, nextval(%L)) AS new_id, '
+            '       ag_catalog._graphid(%s, nextval(%L::regclass)) AS new_id, '
             '       t.properties AS props '
             'FROM ONLY %s t '
             'WHERE EXISTS (SELECT 1 FROM _ag_sg_kept_v k WHERE k.gid = t.id)',
@@ -268,7 +268,7 @@ BEGIN
         DROP TABLE IF EXISTS _ag_sg_estage;
         EXECUTE format(
             'CREATE TEMP TABLE _ag_sg_estage ON COMMIT DROP AS '
-            'SELECT ag_catalog._graphid(%s, nextval(%L)) AS new_id, '
+            'SELECT ag_catalog._graphid(%s, nextval(%L::regclass)) AS new_id, '
             '       vs.new_id AS new_start, ve.new_id AS new_end, '
             '       x.properties AS props '
             'FROM ONLY %s x '

Reply via email to