summaryrefslogtreecommitdiff
path: root/src/backend/catalog/dependency.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/catalog/dependency.c')
-rw-r--r--src/backend/catalog/dependency.c35
1 files changed, 19 insertions, 16 deletions
diff --git a/src/backend/catalog/dependency.c b/src/backend/catalog/dependency.c
index bd837da31a..bcc92bfab0 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))