From 88016a564a20276472f02a2fd98ec9fc7d968c4f Mon Sep 17 00:00:00 2001 From: Jan Wieck <JanWieck@Yahoo.com> Date: Thu, 6 Jan 2000 16:30:43 +0000 Subject: [PATCH] Fixed bug in targetlist expression replacement of SET DEFAULT referential action triggers. Jan --- src/backend/utils/adt/ri_triggers.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/backend/utils/adt/ri_triggers.c b/src/backend/utils/adt/ri_triggers.c index 323c1050a6f..a5c7fe8b321 100644 --- a/src/backend/utils/adt/ri_triggers.c +++ b/src/backend/utils/adt/ri_triggers.c @@ -6,7 +6,7 @@ * * 1999 Jan Wieck * - * $Header: /cvsroot/pgsql/src/backend/utils/adt/ri_triggers.c,v 1.10 1999/12/10 12:34:13 wieck Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/ri_triggers.c,v 1.11 2000/01/06 16:30:43 wieck Exp $ * * ---------- */ @@ -1903,7 +1903,12 @@ RI_FKey_setdefault_del (FmgrInfo *proinfo) qplan = SPI_prepare(querystr, qkey.nkeypairs, queryoids); /* ---------- - * Now replace the CONST NULL targetlist expressions + * Here now follows very ugly code depending on internals + * of the SPI manager. + * + * EVIL EVIL EVIL (but must be - Jan) + * + * We replace the CONST NULL targetlist expressions * in the generated plan by (any) default values found * in the tuple constructor. * ---------- @@ -1931,7 +1936,8 @@ RI_FKey_setdefault_del (FmgrInfo *proinfo) * ---------- */ spi_qptle = (TargetEntry *) - nth(i, spi_plan->targetlist); + nth(defval[j].adnum - 1, + spi_plan->targetlist); spi_qptle->expr = stringToNode(defval[j].adbin); break; @@ -2188,7 +2194,8 @@ RI_FKey_setdefault_upd (FmgrInfo *proinfo) * ---------- */ spi_qptle = (TargetEntry *) - nth(i, spi_plan->targetlist); + nth(defval[j].adnum - 1, + spi_plan->targetlist); spi_qptle->expr = stringToNode(defval[j].adbin); break; -- GitLab