summaryrefslogtreecommitdiff
path: root/src/pl/plpgsql
diff options
context:
space:
mode:
Diffstat (limited to 'src/pl/plpgsql')
-rw-r--r--src/pl/plpgsql/src/pl_exec.c27
1 files changed, 6 insertions, 21 deletions
diff --git a/src/pl/plpgsql/src/pl_exec.c b/src/pl/plpgsql/src/pl_exec.c
index 1f54890e5c..0096b3825c 100644
--- a/src/pl/plpgsql/src/pl_exec.c
+++ b/src/pl/plpgsql/src/pl_exec.c
@@ -3,7 +3,7 @@
* procedural language
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.26 2000/08/03 16:34:57 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.27 2000/08/13 02:50:35 tgl Exp $
*
* This software is copyrighted by Jan Wieck - Hamburg.
*
@@ -54,6 +54,7 @@
#include "executor/spi.h"
#include "executor/spi_priv.h"
#include "fmgr.h"
+#include "parser/parse_expr.h"
#include "tcop/tcopprot.h"
#include "utils/builtins.h"
#include "utils/lsyscache.h"
@@ -2487,6 +2488,9 @@ exec_simple_check_node(Node *node)
case T_Const:
return TRUE;
+ case T_RelabelType:
+ return exec_simple_check_node(((RelabelType *) node)->arg);
+
default:
return FALSE;
}
@@ -2563,26 +2567,7 @@ exec_simple_check_plan(PLpgSQL_expr * expr)
* ----------
*/
expr->plan_simple_expr = tle->expr;
-
- switch (nodeTag(tle->expr))
- {
- case T_Expr:
- expr->plan_simple_type =
- ((Expr *) (tle->expr))->typeOid;
- break;
-
- case T_Param:
- expr->plan_simple_type =
- ((Param *) (tle->expr))->paramtype;
- break;
-
- case T_Const:
- expr->plan_simple_type = ((Const *) (tle->expr))->consttype;
- break;
-
- default:
- expr->plan_simple_type = InvalidOid;
- }
+ expr->plan_simple_type = exprType(tle->expr);
}