From 70fba70430bd42b1a31c6d49646f9d1991eb8e7c Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 27 Jan 2003 20:51:54 +0000 Subject: Upgrade cost estimation for joins, per discussion with Bradley Baetz. Try to model the effect of rescanning input tuples in mergejoins; account for JOIN_IN short-circuiting where appropriate. Also, recognize that mergejoin and hashjoin clauses may now be more than single operator calls, so we have to charge appropriate execution costs. --- src/backend/executor/nodeHashjoin.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/backend/executor/nodeHashjoin.c') diff --git a/src/backend/executor/nodeHashjoin.c b/src/backend/executor/nodeHashjoin.c index d452d3865f5..3603fd9b680 100644 --- a/src/backend/executor/nodeHashjoin.c +++ b/src/backend/executor/nodeHashjoin.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/nodeHashjoin.c,v 1.47 2003/01/20 18:54:45 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/nodeHashjoin.c,v 1.48 2003/01/27 20:51:48 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -253,6 +253,13 @@ ExecHashJoin(HashJoinState *node) return result; } } + + /* If we didn't return a tuple, may need to set NeedNewOuter */ + if (node->js.jointype == JOIN_IN) + { + node->hj_NeedNewOuter = true; + break; /* out of loop over hash bucket */ + } } } -- cgit v1.2.3