-
- Downloads
Fix set_append_rel_pathlist() to deal intelligently with cases where
substituting a child rel's output expressions into the appendrel's restriction clauses yields a pseudoconstant restriction. We might be able to skip scanning that child rel entirely (if we get constant FALSE), or generate a one-time filter. 8.3 more or less accidentally generated plans that weren't completely stupid in these cases, but that was only because an extra recursive level of subquery_planner() always occurred and allowed const-simplification to happen. 8.4's ability to pull up appendrel members with non-Var outputs exposes the fact that we need to work harder here. Per gripe from Sergey Burladyan.
Showing
- src/backend/optimizer/path/allpaths.c 31 additions, 4 deletionssrc/backend/optimizer/path/allpaths.c
- src/backend/optimizer/prep/prepunion.c 2 additions, 52 deletionssrc/backend/optimizer/prep/prepunion.c
- src/backend/optimizer/util/restrictinfo.c 77 additions, 1 deletionsrc/backend/optimizer/util/restrictinfo.c
- src/include/optimizer/restrictinfo.h 4 additions, 1 deletionsrc/include/optimizer/restrictinfo.h
Loading
Please register or sign in to comment