From: | tgl(at)svr1(dot)postgresql(dot)org (Tom Lane) |
---|---|
To: | pgsql-committers(at)postgresql(dot)org |
Subject: | pgsql: Fix two separate bugs in setrefs.c. |
Date: | 2005-08-27 18:04:49 |
Message-ID: | 20050827180449.A4D98D7D97@svr1.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Log Message:
-----------
Fix two separate bugs in setrefs.c. set_subqueryscan_references needs
to copy the whole plan tree before invoking adjust_plan_varnos(); else
if there is any multiply-linked substructure, the latter might increment
some Var's varno twice. Previously there were some retail copyObject
calls inside adjust_plan_varnos, but it seems a lot safer to just dup the
whole tree first. Also, set_inner_join_references was trying to avoid
work by not recursing if a BitmapHeapScan's bitmapqualorig contained no
outer references; which was OK at the time the code was written, I think,
but now that create_bitmap_scan_plan removes duplicate clauses from
bitmapqualorig it is possible for that field to be NULL while outer
references still remain in the qpqual and/or contained indexscan nodes.
For safety, always recurse even if the BitmapHeapScan looks to be outer
reference free. Per reports from Michael Fuhr and Oleg Bartunov.
Modified Files:
--------------
pgsql/src/backend/optimizer/plan:
setrefs.c (r1.111 -> r1.112)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/setrefs.c.diff?r1=1.111&r2=1.112)
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2005-08-27 18:44:03 | pgsql: Windows needs WSAStartup() before getaddrinfo() will work. |
Previous Message | Tom Lane | 2005-08-27 16:22:58 | pgsql: Get the MIPS assembler syntax right. |