mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-03-01 19:45:33 +08:00
When building a bitmap scan, must copy the bitmapqualorig expression tree
to avoid sharing substructure with the lower-level indexquals. This is currently only an issue if there are SubPlans in the indexquals, which is uncommon but not impossible --- see bug #2218 reported by Nicholas Vinen. We use the same kluge for indexqual vs indexqualorig in the index scans themselves ... would be nice to clean this up someday.
This commit is contained in:
parent
3edec383e1
commit
3276e911d1
@ -10,7 +10,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/optimizer/plan/createplan.c,v 1.206 2006/01/25 20:29:23 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/optimizer/plan/createplan.c,v 1.207 2006/01/29 18:55:48 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -963,6 +963,12 @@ create_bitmap_scan_plan(PlannerInfo *root,
|
||||
*/
|
||||
bitmapqualorig = list_difference_ptr(bitmapqualorig, qpqual);
|
||||
|
||||
/*
|
||||
* Copy the finished bitmapqualorig to make sure we have an independent
|
||||
* copy --- needed in case there are subplans in the index quals
|
||||
*/
|
||||
bitmapqualorig = copyObject(bitmapqualorig);
|
||||
|
||||
/* Finally ready to build the plan node */
|
||||
scan_plan = make_bitmap_heapscan(tlist,
|
||||
qpqual,
|
||||
|
Loading…
Reference in New Issue
Block a user