pgsql: Fix two separate bugs in setrefs.c.
От | tgl@svr1.postgresql.org (Tom Lane) |
---|---|
Тема | pgsql: Fix two separate bugs in setrefs.c. |
Дата | |
Msg-id | 20050827180449.A4D98D7D97@svr1.postgresql.org обсуждение исходный текст |
Список | 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)
В списке pgsql-committers по дате отправления: