From 1bdf124b94af3c24d3c3083c820804274df8262b Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 14 Nov 2005 23:54:23 +0000 Subject: Restore the former RestrictInfo field valid_everywhere (but invert the flag sense and rename to "outerjoin_delayed" to more clearly reflect what it means). I had decided that it was redundant in 8.1, but the folly of this is exposed by a bug report from Sebastian Böck. The place where it's needed is to prevent orindxpath.c from cherry-picking arms of an outer-join OR clause to form a relation restriction that isn't actually legal to push down to the relation scan level. There may be some legal cases that this forbids optimizing, but we'd need much closer analysis to determine it. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/include/optimizer/restrictinfo.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/include/optimizer/restrictinfo.h') diff --git a/src/include/optimizer/restrictinfo.h b/src/include/optimizer/restrictinfo.h index 0715df59d68..4ca5c87bae8 100644 --- a/src/include/optimizer/restrictinfo.h +++ b/src/include/optimizer/restrictinfo.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/optimizer/restrictinfo.h,v 1.34 2005/10/15 02:49:45 momjian Exp $ + * $PostgreSQL: pgsql/src/include/optimizer/restrictinfo.h,v 1.35 2005/11/14 23:54:23 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -19,6 +19,7 @@ extern RestrictInfo *make_restrictinfo(Expr *clause, bool is_pushed_down, + bool outerjoin_delayed, Relids required_relids); extern List *make_restrictinfo_from_bitmapqual(Path *bitmapqual, bool is_pushed_down, -- cgit v1.2.3