summaryrefslogtreecommitdiff
path: root/src/backend/rewrite/rewriteManip.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2001-04-18 20:42:56 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2001-04-18 20:42:56 +0000
commitd5096af2c42a78b2fccf24057a1eacb892399b40 (patch)
treef2e1b09d6e65e3fc3c977826ac07ad537562594a /src/backend/rewrite/rewriteManip.c
parente4c06b21251965fd8cea93764c65848430f5aa0a (diff)
downloadpostgresql-d5096af2c42a78b2fccf24057a1eacb892399b40.tar.gz
Make the world safe for passing whole rows of views to functions. This
already worked fine for whole rows of tables, but not so well for views...
Diffstat (limited to 'src/backend/rewrite/rewriteManip.c')
-rw-r--r--src/backend/rewrite/rewriteManip.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/backend/rewrite/rewriteManip.c b/src/backend/rewrite/rewriteManip.c
index 663b67708e..45115b8d04 100644
--- a/src/backend/rewrite/rewriteManip.c
+++ b/src/backend/rewrite/rewriteManip.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteManip.c,v 1.56 2001/03/22 03:59:44 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteManip.c,v 1.57 2001/04/18 20:42:55 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -765,8 +765,13 @@ ResolveNew_mutator(Node *node, ResolveNew_context *context)
if (this_varno == context->target_varno &&
this_varlevelsup == context->sublevels_up)
{
- Node *n = FindMatchingNew(context->targetlist,
- var->varattno);
+ Node *n;
+
+ /* band-aid: don't do the wrong thing with a whole-tuple Var */
+ if (var->varattno == InvalidAttrNumber)
+ elog(ERROR, "ResolveNew: can't handle whole-tuple reference");
+
+ n = FindMatchingNew(context->targetlist, var->varattno);
if (n == NULL)
{