aboutsummaryrefslogtreecommitdiff
path: root/src/backend/catalog
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/catalog')
-rw-r--r--src/backend/catalog/dependency.c35
-rw-r--r--src/backend/catalog/heap.c12
-rw-r--r--src/backend/catalog/index.c4
-rw-r--r--src/backend/catalog/pg_proc.c4
4 files changed, 25 insertions, 30 deletions
diff --git a/src/backend/catalog/dependency.c b/src/backend/catalog/dependency.c
index bd837da31ac..bcc92bfab0f 100644
--- a/src/backend/catalog/dependency.c
+++ b/src/backend/catalog/dependency.c
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/dependency.c,v 1.17 2002/12/06 05:00:10 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/dependency.c,v 1.18 2002/12/12 15:49:21 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -806,25 +806,28 @@ find_expr_references_walker(Node *node,
}
return false;
}
- if (IsA(node, Expr))
+ if (IsA(node, FuncExpr))
{
- Expr *expr = (Expr *) node;
+ FuncExpr *funcexpr = (FuncExpr *) node;
- if (expr->opType == OP_EXPR ||
- expr->opType == DISTINCT_EXPR)
- {
- Oper *oper = (Oper *) expr->oper;
+ add_object_address(OCLASS_PROC, funcexpr->funcid, 0,
+ &context->addrs);
+ /* fall through to examine arguments */
+ }
+ if (IsA(node, OpExpr))
+ {
+ OpExpr *opexpr = (OpExpr *) node;
- add_object_address(OCLASS_OPERATOR, oper->opno, 0,
- &context->addrs);
- }
- else if (expr->opType == FUNC_EXPR)
- {
- Func *func = (Func *) expr->oper;
+ add_object_address(OCLASS_OPERATOR, opexpr->opno, 0,
+ &context->addrs);
+ /* fall through to examine arguments */
+ }
+ if (IsA(node, DistinctExpr))
+ {
+ DistinctExpr *distinctexpr = (DistinctExpr *) node;
- add_object_address(OCLASS_PROC, func->funcid, 0,
- &context->addrs);
- }
+ add_object_address(OCLASS_OPERATOR, distinctexpr->opno, 0,
+ &context->addrs);
/* fall through to examine arguments */
}
if (IsA(node, Aggref))
diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c
index f8f667e24a9..bd068271acd 100644
--- a/src/backend/catalog/heap.c
+++ b/src/backend/catalog/heap.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.235 2002/11/15 02:50:05 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.236 2002/12/12 15:49:23 tgl Exp $
*
*
* INTERFACE ROUTINES
@@ -1603,11 +1603,6 @@ AddRelationRawConstraints(Relation rel,
expr = (Node *) make_ands_implicit((Expr *) expr);
/*
- * Must fix opids in operator clauses.
- */
- fix_opids(expr);
-
- /*
* OK, store it.
*/
StoreRelCheck(rel, ccname, nodeToString(expr));
@@ -1750,11 +1745,6 @@ cookDefault(ParseState *pstate,
*/
expr = eval_const_expressions(expr);
- /*
- * Must fix opids, in case any operators remain...
- */
- fix_opids(expr);
-
return (expr);
}
diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c
index cdac597ae5f..c11bd5b172b 100644
--- a/src/backend/catalog/index.c
+++ b/src/backend/catalog/index.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.205 2002/11/13 00:39:46 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.206 2002/12/12 15:49:24 tgl Exp $
*
*
* INTERFACE ROUTINES
@@ -41,6 +41,7 @@
#include "executor/executor.h"
#include "miscadmin.h"
#include "optimizer/clauses.h"
+#include "optimizer/planmain.h"
#include "optimizer/prep.h"
#include "parser/parse_func.h"
#include "storage/sinval.h"
@@ -919,6 +920,7 @@ BuildIndexInfo(Form_pg_index indexStruct)
predString = DatumGetCString(DirectFunctionCall1(textout,
PointerGetDatum(&indexStruct->indpred)));
ii->ii_Predicate = stringToNode(predString);
+ fix_opfuncids((Node *) ii->ii_Predicate);
pfree(predString);
}
else
diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c
index b915a02c310..14f37344b4d 100644
--- a/src/backend/catalog/pg_proc.c
+++ b/src/backend/catalog/pg_proc.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.94 2002/09/18 21:35:20 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.95 2002/12/12 15:49:24 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -424,7 +424,7 @@ checkretval(Oid rettype, char fn_typtype, List *queryTreeList)
} while (attr->attisdropped);
rellogcols++;
- tletype = exprType(tle->expr);
+ tletype = exprType((Node *) tle->expr);
atttype = attr->atttypid;
if (!IsBinaryCoercible(tletype, atttype))
elog(ERROR, "function declared to return %s returns %s instead of %s at column %d",