0001-Fix-dependency-recording-for-command-triggers.patch
text/x-patch
Filename: 0001-Fix-dependency-recording-for-command-triggers.patch
Type: text/x-patch
Part: 0
Message:
Re: Command Triggers
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: format-patch
Series: patch 0001
Subject: Fix dependency recording for command triggers
| File | + | − |
|---|---|---|
| src/backend/commands/cmdtrigger.c | 4 | 7 |
From 99a67fa63e5bcec6631c00253653717688bbdfde Mon Sep 17 00:00:00 2001 From: Andres Freund <andres@anarazel.de> Date: Thu, 1 Dec 2011 14:18:55 +0100 Subject: [PATCH 1/3] Fix dependency recording for command triggers * the oid is only defined after heap_insert * use the correct relationship as classid --- src/backend/commands/cmdtrigger.c | 11 ++++------- 1 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/backend/commands/cmdtrigger.c b/src/backend/commands/cmdtrigger.c index 5a4d370..c6cda29 100644 --- a/src/backend/commands/cmdtrigger.c +++ b/src/backend/commands/cmdtrigger.c @@ -157,16 +157,13 @@ CreateCmdTrigger(CreateCmdTrigStmt *stmt, const char *queryString) tuple = heap_form_tuple(tgrel->rd_att, values, nulls); - /* force tuple to have the desired OID */ - trigoid = HeapTupleGetOid(tuple); - - /* - * Insert tuple into pg_trigger. - */ simple_heap_insert(tgrel, tuple); CatalogUpdateIndexes(tgrel, tuple); + /* remember oid for record dependencies */ + trigoid = HeapTupleGetOid(tuple); + heap_freetuple(tuple); heap_close(tgrel, RowExclusiveLock); @@ -174,7 +171,7 @@ CreateCmdTrigger(CreateCmdTrigStmt *stmt, const char *queryString) * Record dependencies for trigger. Always place a normal dependency on * the function. */ - myself.classId = TriggerRelationId; + myself.classId = CmdTriggerRelationId; myself.objectId = trigoid; myself.objectSubId = 0; -- 1.7.6.409.ge7a85.dirty