From 46a0eee3006b11a15b73426c8146ed5ab32e1d62 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 28 Aug 2005 22:47:20 +0000 Subject: Tweak nodeBitmapAnd to stop evaluating sub-plan scans if it finds it's got an empty bitmap after any step; the remaining subplans can no longer affect the result. Per a suggestion from Ilia Kantor. --- src/backend/nodes/tidbitmap.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/backend/nodes/tidbitmap.c') diff --git a/src/backend/nodes/tidbitmap.c b/src/backend/nodes/tidbitmap.c index 777bf6482d..e36a8d9806 100644 --- a/src/backend/nodes/tidbitmap.c +++ b/src/backend/nodes/tidbitmap.c @@ -23,7 +23,7 @@ * Copyright (c) 2003-2005, PostgreSQL Global Development Group * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/nodes/tidbitmap.c,v 1.5 2005/07/24 02:25:26 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/nodes/tidbitmap.c,v 1.6 2005/08/28 22:47:20 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -510,6 +510,15 @@ tbm_intersect_page(TIDBitmap *a, PagetableEntry *apage, const TIDBitmap *b) } } +/* + * tbm_is_empty - is a TIDBitmap completely empty? + */ +bool +tbm_is_empty(const TIDBitmap *tbm) +{ + return (tbm->nentries == 0); +} + /* * tbm_begin_iterate - prepare to iterate through a TIDBitmap * -- cgit v1.2.1