summaryrefslogtreecommitdiff
path: root/src/backend/optimizer/path/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* Split all OBJS style lines in makefiles into one-line-per-entry style.Andres Freund2019-11-051-2/+10
| | | | | | | | | | | | | | | When maintaining or merging patches, one of the most common sources for conflicts are the list of objects in makefiles. Especially when the split across lines has been changed on both sides, which is somewhat common due to attempting to stay below 80 columns, those conflicts are unnecessarily laborious to resolve. By splitting, and alphabetically sorting, OBJS style lines into one object per line, conflicts should be less frequent, and easier to resolve when they still occur. Author: Andres Freund Discussion: https://postgr.es/m/20191029200901.vww4idgcxv74cwes@alap3.anarazel.de
* Extract restriction OR clauses whether or not they are indexable.Tom Lane2013-12-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | It's possible to extract a restriction OR clause from a join clause that has the form of an OR-of-ANDs, if each sub-AND includes a clause that mentions only one specific relation. While PG has been aware of that idea for many years, the code previously only did it if it could extract an indexable OR clause. On reflection, though, that seems a silly limitation: adding a restriction clause can be a win by reducing the number of rows that have to be filtered at the join step, even if we have to test the clause as a plain filter clause during the scan. This should be especially useful for foreign tables, where the change can cut the number of rows that have to be retrieved from the foreign server; but testing shows it can win even on local tables. Per a suggestion from Robert Haas. As a heuristic, I made the code accept an extracted restriction clause if its estimated selectivity is less than 0.9, which will probably result in accepting extracted clauses just about always. We might need to tweak that later based on experience. Since the code no longer has even a weak connection to Path creation, remove orindxpath.c and create a new file optimizer/util/orclauses.c. There's some additional janitorial cleanup of now-dead code that needs to happen, but it seems like that's a fit subject for a separate commit.
* Remove cvs keywords from all files.Magnus Hagander2010-09-201-1/+1
|
* Refactor backend makefiles to remove lots of duplicate codePeter Eisentraut2008-02-191-8/+2
|
* Refactor planner's pathkeys data structure to create a separate, explicitTom Lane2007-01-201-2/+2
| | | | | | | | | | | | | | representation of equivalence classes of variables. This is an extensive rewrite, but it brings a number of benefits: * planner no longer fails in the presence of "incomplete" operator families that don't offer operators for every possible combination of datatypes. * avoid generating and then discarding redundant equality clauses. * remove bogus assumption that derived equalities always use operators named "=". * mergejoins can work with a variety of sort orders (e.g., descending) now, instead of tying each mergejoinable operator to exactly one sort order. * better recognition of redundant sort columns. * can make use of equalities appearing underneath an outer join.
* Remove remains of old depend target.Peter Eisentraut2007-01-201-8/+1
|
* $Header: -> $PostgreSQL Changes ...PostgreSQL Daemon2003-11-291-1/+1
|
* Fix relative path references so that make knowns which dependencies referPeter Eisentraut2000-08-311-4/+4
| | | | | to one another. Sort out builddir vs srcdir variable namings. Remove some now obsoleted make variables.
* Generated header files parse.h and fmgroids.h are now copied intoTom Lane2000-05-291-3/+1
| | | | | the src/include tree, so that -I backend is no longer necessary anywhere. Also, clean up some bit rot in contrib tree.
* Repair planning bugs caused by my misguided removal of restrictinfo linkTom Lane2000-02-071-3/+2
| | | | | | | | | | | fields in JoinPaths --- turns out that we do need that after all :-(. Also, rearrange planner so that only one RelOptInfo is created for a particular set of joined base relations, no matter how many different subsets of relations it can be created from. This saves memory and processing time compared to the old method of making a bunch of RelOptInfos and then removing the duplicates. Clean up the jointree iteration logic; not sure if it's better, but I sure find it more readable and plausible now, particularly for the case of 'bushy plans'.
* New LDOUT makefile variable for QNX os.Bruce Momjian1999-12-131-2/+2
|
* Make LD -r as macros that can be changed for QNX.Bruce Momjian1999-12-091-2/+2
|
* Tid access method feature from Hiroshi Inoue, Inoue@tpf.co.jpBruce Momjian1999-11-231-2/+3
|
* Major planner/optimizer revision: get rid of PathOrder node type,Tom Lane1999-08-161-3/+3
| | | | | | | | | store all ordering information in pathkeys lists (which are now lists of lists of PathKeyItem nodes, not just lists of lists of vars). This was a big win --- the code is smaller and IMHO more understandable than it was, even though it handles more cases. I believe the node changes will not force an initdb for anyone; planner nodes don't show up in stored rules.
* another rename of optimizerBruce Momjian1999-02-201-2/+2
|
* rename optimizer file nameBruce Momjian1999-02-181-5/+2
|
* Hi,Bruce Momjian1998-04-061-5/+3
| | | | | | | | | | | | | | | | | | | | | | Attached you'll find a (big) patch that fixes make dep and make depend in all Makefiles where I found it to be appropriate. It also removes the dependency in Makefile.global for NAMEDATALEN and OIDNAMELEN by making backend/catalog/genbki.sh and bin/initdb/initdb.sh a little smarter. This no longer requires initdb.sh that is turned into initdb with a sed script when installing Postgres, hence initdb.sh should be renamed to initdb (after the patch has been applied :-) ) This patch is against the 6.3 sources, as it took a while to complete. Please review and apply, Cheers, Jeroen van Vianen
* Major cleanout of PORTNAME variables from Makefiles...bound to screw upMarc G. Fournier1997-12-201-5/+1
| | | | some of the ports...
* More cleanups. I can now compile without PORTNAME being defined nMarc G. Fournier1997-12-191-4/+6
| | | | | | | | | Makefile.global. End result, if all goes well, should allow for much easier porting, since there will no longer be a concept of a "port". Most, if not everything, *should* be determined by configure, or by the compiler itself. Still work to be done though :)
* Makefile cleanup after reorganizationBruce Momjian1996-11-091-2/+3
|
* Cleanup MakefilesMarc G. Fournier1996-10-311-4/+2
| | | | | | Add #include "postgres.h" and #include <sys/types.h>
* Simplify make files, add full dependencies.Bryan Henderson1996-10-271-0/+41