summaryrefslogtreecommitdiff
path: root/src/backend/optimizer/prep/prepjointree.c
AgeCommit message (Collapse)Author
2003-10-13pull_up_subqueries() should copy the subquery before starting to modifyTom Lane
it. Not sure why I'd thought it would be a good idea to do differently way back when, but Greg Stark exposed the folly of doing so ...
2003-09-25Message editing: remove gratuitous variations in message wording, standardizePeter Eisentraut
terms, add some clarifications, fix some untranslatable attempts at dynamic message building.
2003-08-08Another pgindent run with updated typedefs.Bruce Momjian
2003-08-04Update copyrights to 2003.Bruce Momjian
2003-08-04pgindent run.Bruce Momjian
2003-07-25Error message editing in backend/optimizer, backend/rewrite.Tom Lane
2003-03-10Restructure parsetree representation of DECLARE CURSOR: now it's aTom Lane
utility statement (DeclareCursorStmt) with a SELECT query dangling from it, rather than a SELECT query with a few unusual fields in it. Add code to determine whether a planned query can safely be run backwards. If DECLARE CURSOR specifies SCROLL, ensure that the plan can be run backwards by adding a Materialize plan node if it can't. Without SCROLL, you get an error if you try to fetch backwards from a cursor that can't handle it. (There is still some discussion about what the exact behavior should be, but this is necessary infrastructure in any case.) Along the way, make EXPLAIN DECLARE CURSOR work.
2003-02-10Fix thinko in new logic about pushing down non-nullability constraints:Tom Lane
constraints appearing in outer-join qualification clauses are restricted as to when and where they can be pushed down. Add regression test to catch future errors in this area.
2003-02-09Detect case where an outer join can be reduced to a plain inner joinTom Lane
because there are WHERE clauses that will reject the null-extended rows. Per suggestion from Brandon Craig Rhodes, 19-Nov-02.
2003-02-09Remove bogus comment (too freely copied & pasted).Tom Lane
2003-02-08Replace planner's representation of relation sets, per pghackers discussion.Tom Lane
Instead of Lists of integers, we now store variable-length bitmap sets. This should be faster as well as less error-prone.
2003-01-25Allow the planner to collapse explicit inner JOINs together, rather thanTom Lane
necessarily following the JOIN syntax to develop the query plan. The old behavior is still available by setting GUC variable JOIN_COLLAPSE_LIMIT to 1. Also create a GUC variable FROM_COLLAPSE_LIMIT to control the similar decision about when to collapse sub-SELECT lists into their parent lists. (This behavior existed already, but the limit was always GEQO_THRESHOLD/2; now it's separately adjustable.)
2003-01-20IN clauses appearing at top level of WHERE can now be handled as joins.Tom Lane
There are two implementation techniques: the executor understands a new JOIN_IN jointype, which emits at most one matching row per left-hand row, or the result of the IN's sub-select can be fed through a DISTINCT filter and then joined as an ordinary relation. Along the way, some minor code cleanup in the optimizer; notably, break out most of the jointree-rearrangement preprocessing in planner.c and put it in a new file prep/prepjointree.c.