pgsql: Fix oversight in initial implementation of PORTAL_ONE_RETURNING

From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Fix oversight in initial implementation of PORTAL_ONE_RETURNING
Date: 2006-08-14 22:57:15
Message-ID: 20060814225715.D271B9FB1F9@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
Fix oversight in initial implementation of PORTAL_ONE_RETURNING mode: we
cannot assume that there's exactly one Query in the Portal, as we can for
ONE_SELECT mode, because non-SELECT queries might have extra queries added
during rule rewrites. Fix things up so that we'll use ONE_RETURNING mode
when a Portal contains one primary (canSetTag) query and that query has
a RETURNING list. This appears to be a second showstopper reason for running
the Portal to completion before we start to hand anything back --- we want
to be sure that the rule-added queries get run too.

Modified Files:
--------------
pgsql/src/backend/commands:
prepare.c (r1.60 -> r1.61)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/prepare.c.diff?r1=1.60&r2=1.61)
pgsql/src/backend/executor:
spi.c (r1.156 -> r1.157)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/spi.c.diff?r1=1.156&r2=1.157)
pgsql/src/backend/tcop:
pquery.c (r1.106 -> r1.107)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/tcop/pquery.c.diff?r1=1.106&r2=1.107)
pgsql/src/backend/utils/mmgr:
portalmem.c (r1.91 -> r1.92)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mmgr/portalmem.c.diff?r1=1.91&r2=1.92)
pgsql/src/include/utils:
portal.h (r1.65 -> r1.66)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/utils/portal.h.diff?r1=1.65&r2=1.66)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2006-08-14 23:39:32 pgsql: Cause '*' and 'foo.*' notations to mark the referenced RTE(s) as
Previous Message User Diogob 2006-08-14 21:29:57 xlogviewer - xlogdump: