aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2000-07-25 23:43:38 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2000-07-25 23:43:38 +0000
commit0e06e6838758d3d67a94c454fe4b55c86aa1491d (patch)
tree452ac62e81dee3d795ff5204dc0b86cc8439b865 /src/backend/executor
parent742cd8799923d8d30ee90294130bb973af486b80 (diff)
downloadpostgresql-0e06e6838758d3d67a94c454fe4b55c86aa1491d.tar.gz
postgresql-0e06e6838758d3d67a94c454fe4b55c86aa1491d.zip
ExecRestrPos() really needs to raise ERROR, not a wimpy DEBUG message,
if given a node type it doesn't support. As is, wrong results from a mergejoin would go undetected.
Diffstat (limited to 'src/backend/executor')
-rw-r--r--src/backend/executor/execAmi.c29
1 files changed, 18 insertions, 11 deletions
diff --git a/src/backend/executor/execAmi.c b/src/backend/executor/execAmi.c
index 10478f60ad6..c3cb019c89d 100644
--- a/src/backend/executor/execAmi.c
+++ b/src/backend/executor/execAmi.c
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: execAmi.c,v 1.49 2000/07/12 02:37:00 tgl Exp $
+ * $Id: execAmi.c,v 1.50 2000/07/25 23:43:38 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -356,7 +356,8 @@ ExecReScan(Plan *node, ExprContext *exprCtxt, Plan *parent)
break;
default:
- elog(ERROR, "ExecReScan: node type %u not supported", nodeTag(node));
+ elog(ERROR, "ExecReScan: node type %d not supported",
+ nodeTag(node));
return;
}
@@ -393,7 +394,8 @@ ExecReScanR(Relation relDesc, /* LLL relDesc unused */
*
* Marks the current scan position.
*
- * XXX Needs to be extended to include all the node types.
+ * XXX Needs to be extended to include all the node types,
+ * or at least all the ones that can be directly below a mergejoin.
* ----------------------------------------------------------------
*/
void
@@ -422,16 +424,20 @@ ExecMarkPos(Plan *node)
break;
default:
- elog(DEBUG, "ExecMarkPos: node type %u not supported", nodeTag(node));
+ /* don't make hard error unless caller asks to restore... */
+ elog(DEBUG, "ExecMarkPos: node type %d not supported",
+ nodeTag(node));
break;
}
- return;
}
/* ----------------------------------------------------------------
* ExecRestrPos
*
* restores the scan position previously saved with ExecMarkPos()
+ *
+ * XXX Needs to be extended to include all the node types,
+ * or at least all the ones that can be directly below a mergejoin.
* ----------------------------------------------------------------
*/
void
@@ -441,22 +447,23 @@ ExecRestrPos(Plan *node)
{
case T_SeqScan:
ExecSeqRestrPos((SeqScan *) node);
- return;
+ break;
case T_IndexScan:
ExecIndexRestrPos((IndexScan *) node);
- return;
+ break;
case T_Material:
ExecMaterialRestrPos((Material *) node);
- return;
+ break;
case T_Sort:
ExecSortRestrPos((Sort *) node);
- return;
+ break;
default:
- elog(DEBUG, "ExecRestrPos: node type %u not supported", nodeTag(node));
- return;
+ elog(ERROR, "ExecRestrPos: node type %d not supported",
+ nodeTag(node));
+ break;
}
}