head	1.19;
access;
symbols
	REL9_0_0:1.19
	REL9_1_ALPHA1:1.19
	REL9_0_RC1:1.19
	REL9_0_BETA4:1.19
	REL9_0_STABLE:1.19.0.14
	REL9_0_BETA3:1.19
	REL9_0_BETA2:1.19
	REL7_4_29:1.15
	REL8_0_25:1.16
	REL8_1_21:1.16
	REL8_2_17:1.16
	REL8_3_11:1.18
	REL8_4_4:1.19
	REL9_0_BETA1:1.19
	REL9_0_ALPHA5_BRANCH:1.19.0.12
	REL9_0_ALPHA5:1.19
	REL7_4_28:1.15
	REL8_0_24:1.16
	REL8_1_20:1.16
	REL8_2_16:1.16
	REL8_3_10:1.18
	REL8_4_3:1.19
	REL9_0_ALPHA4:1.19
	REL9_0_ALPHA4_BRANCH:1.19.0.10
	REL8_5_ALPHA3:1.19
	REL8_5_ALPHA3_BRANCH:1.19.0.8
	REL7_4_27:1.15
	REL8_0_23:1.16
	REL8_1_19:1.16
	REL8_2_15:1.16
	REL8_3_9:1.18
	REL8_4_2:1.19
	REL8_5_ALPHA2:1.19
	REL8_5_ALPHA2_BRANCH:1.19.0.6
	REL7_4_26:1.15
	REL8_0_22:1.16
	REL8_1_18:1.16
	REL8_2_14:1.16
	REL8_3_8:1.18
	REL8_4_1:1.19
	REL8_5_ALPHA1:1.19
	REL8_5_ALPHA1_BRANCH:1.19.0.4
	REL8_4_STABLE:1.19.0.2
	REL8_4_0:1.19
	REL8_4_RC2:1.19
	REL8_4_RC1:1.19
	REL8_4_BETA2:1.19
	REL8_4_BETA1:1.19
	REL7_4_25:1.15
	REL8_0_21:1.16
	REL8_1_17:1.16
	REL8_2_13:1.16
	REL8_3_7:1.18
	REL7_4_24:1.15
	REL8_0_20:1.16
	REL8_1_16:1.16
	REL8_2_12:1.16
	REL8_3_6:1.18
	REL7_4_23:1.15
	REL8_0_19:1.16
	REL8_1_15:1.16
	REL8_2_11:1.16
	REL8_3_5:1.18
	REL7_4_22:1.15
	REL8_0_18:1.16
	REL8_1_14:1.16
	REL8_2_10:1.16
	REL8_3_4:1.18
	REL7_4_21:1.15
	REL8_0_17:1.16
	REL8_1_13:1.16
	REL8_2_9:1.16
	REL8_3_3:1.18
	REL7_4_20:1.15
	REL8_0_16:1.16
	REL8_1_12:1.16
	REL8_2_8:1.16
	REL8_3_2:1.18
	REL8_2_7:1.16
	REL8_3_1:1.18
	REL8_3_STABLE:1.18.0.2
	REL8_3_0:1.18
	REL8_3_RC2:1.18
	REL7_3_21:1.15
	REL7_4_19:1.15
	REL8_0_15:1.16
	REL8_1_11:1.16
	REL8_2_6:1.16
	REL8_3_RC1:1.18
	REL8_3_BETA4:1.18
	REL8_3_BETA3:1.18
	REL8_3_BETA2:1.18
	REL8_3_BETA1:1.18
	REL7_3_20:1.15
	REL7_4_18:1.15
	REL8_0_14:1.16
	REL8_1_10:1.16
	REL8_2_5:1.16
	REL7_3_19:1.15
	REL7_4_17:1.15
	REL8_0_13:1.16
	REL8_1_9:1.16
	REL8_2_4:1.16
	REL8_0_12:1.16
	REL8_1_8:1.16
	REL8_2_3:1.16
	REL7_3_18:1.15
	REL7_4_16:1.15
	REL8_0_11:1.16
	REL8_1_7:1.16
	REL8_2_2:1.16
	REL8_0_10:1.16
	REL8_1_6:1.16
	REL8_2_1:1.16
	REL7_4_15:1.15
	REL7_3_17:1.15
	REL8_2_STABLE:1.16.0.8
	REL8_2_0:1.16
	REL8_2_RC1:1.16
	REL8_2_BETA3:1.16
	REL8_2_BETA2:1.16
	REL8_1_5:1.16
	REL8_0_9:1.16
	REL7_4_14:1.15
	REL7_3_16:1.15
	REL8_2_BETA1:1.16
	REL7_3_15:1.15
	REL7_4_13:1.15
	REL8_0_8:1.16
	REL8_1_4:1.16
	REL7_3_14:1.15
	REL7_4_12:1.15
	REL8_0_7:1.16
	REL8_1_3:1.16
	REL7_3_13:1.15
	REL7_4_11:1.15
	REL8_0_6:1.16
	REL8_1_2:1.16
	REL7_3_12:1.15
	REL7_4_10:1.15
	REL8_0_5:1.16
	REL8_1_1:1.16
	REL8_1_STABLE:1.16.0.6
	REL8_1_0:1.16
	REL8_1_0RC1:1.16
	REL8_1_0BETA4:1.16
	REL8_1_0BETA3:1.16
	REL7_3_11:1.15
	REL7_4_9:1.15
	REL8_0_4:1.16
	REL8_1_0BETA2:1.16
	REL8_1_0BETA1:1.16
	REL7_2_8:1.15
	REL7_3_10:1.15
	REL7_4_8:1.15
	REL8_0_3:1.16
	REL8_0_2:1.16
	REL7_2_7:1.15
	REL7_3_9:1.15
	REL7_4_7:1.15
	REL8_0_1:1.16
	REL8_0_STABLE:1.16.0.4
	REL8_0_0:1.16.0.2
	REL8_0_0RC5:1.16
	REL8_0_0RC4:1.16
	REL8_0_0RC3:1.16
	REL8_0_0RC2:1.16
	REL8_0_0RC1:1.16
	REL8_0_0BETA5:1.16
	REL8_0_0BETA4:1.16
	REL7_4_6:1.15
	REL7_3_8:1.15
	REL7_2_6:1.15
	REL8_0_0BETA3:1.16
	REL8_0_0BETA2:1.16
	REL7_2_5:1.15
	REL7_4_5:1.15
	REL7_3_7:1.15
	REL7_4_4:1.15
	REL8_0_0BETA1:1.16
	REL7_4_3:1.15
	REL7_4_2:1.15
	REL7_3_6:1.15
	REL7_4_1:1.15
	REL7_3_5:1.15
	REL7_4:1.15
	REL7_4_RC2:1.15
	REL7_4_STABLE:1.15.0.10
	REL7_4_RC1:1.15
	REL7_4_BETA5:1.15
	REL7_4_BETA4:1.15
	REL7_4_BETA3:1.15
	REL7_4_BETA2:1.15
	WIN32_DEV:1.15.0.8
	REL7_4_BETA1:1.15
	REL7_3_4:1.15
	REL7_3_2:1.15
	REL7_2_4:1.15
	REL7_3_STABLE:1.15.0.6
	REL7_2_3:1.15
	REL7_2_STABLE:1.15.0.4
	REL7_2:1.15
	REL7_2_RC2:1.15
	REL7_2_RC1:1.15
	REL7_2_BETA5:1.15
	REL7_2_BETA4:1.15
	REL7_2_BETA3:1.15
	REL7_2_BETA2:1.15
	REL7_2_BETA1:1.15
	REL7_1_2:1.15
	REL7_1_STABLE:1.15.0.2
	REL7_1_BETA:1.15
	REL7_1_BETA3:1.15
	REL7_1_BETA2:1.15
	REL7_1:1.15
	REL7_0_PATCHES:1.13.0.2
	REL7_0:1.13
	REL6_5_PATCHES:1.8.0.2
	REL6_5:1.8
	REL6_4:1.6.0.2
	release-6-3:1.5
	REL2_0B:1.3.0.2
	REL2_0:1.3;
locks; strict;
comment	@# @;


1.19
date	2008.02.19.10.30.07;	author petere;	state Exp;
branches;
next	1.18;

1.18
date	2007.01.20.20.45.38;	author tgl;	state Exp;
branches;
next	1.17;

1.17
date	2007.01.20.17.16.11;	author petere;	state Exp;
branches;
next	1.16;

1.16
date	2003.11.29.19.51.50;	author pgsql;	state Exp;
branches;
next	1.15;

1.15
date	2000.08.31.16.10.09;	author petere;	state Exp;
branches;
next	1.14;

1.14
date	2000.05.29.05.44.50;	author tgl;	state Exp;
branches;
next	1.13;

1.13
date	2000.02.07.04.40.59;	author tgl;	state Exp;
branches;
next	1.12;

1.12
date	99.12.13.22.32.52;	author momjian;	state Exp;
branches;
next	1.11;

1.11
date	99.12.09.19.14.45;	author momjian;	state Exp;
branches;
next	1.10;

1.10
date	99.11.23.20.06.54;	author momjian;	state Exp;
branches;
next	1.9;

1.9
date	99.08.16.02.17.50;	author tgl;	state Exp;
branches;
next	1.8;

1.8
date	99.02.20.15.27.42;	author momjian;	state Exp;
branches;
next	1.7;

1.7
date	99.02.18.19.58.51;	author momjian;	state Exp;
branches;
next	1.6;

1.6
date	98.04.06.00.23.17;	author momjian;	state Exp;
branches;
next	1.5;

1.5
date	97.12.20.00.24.23;	author scrappy;	state Exp;
branches;
next	1.4;

1.4
date	97.12.19.02.05.59;	author scrappy;	state Exp;
branches;
next	1.3;

1.3
date	96.11.09.06.18.10;	author momjian;	state Exp;
branches;
next	1.2;

1.2
date	96.10.31.10.58.58;	author scrappy;	state Exp;
branches;
next	1.1;

1.1
date	96.10.27.09.48.20;	author bryanh;	state Exp;
branches;
next	;


desc
@@


1.19
log
@Refactor backend makefiles to remove lots of duplicate code
@
text
@#-------------------------------------------------------------------------
#
# Makefile--
#    Makefile for optimizer/path
#
# IDENTIFICATION
#    $PostgreSQL: pgsql/src/backend/optimizer/path/Makefile,v 1.18 2007/01/20 20:45:38 tgl Exp $
#
#-------------------------------------------------------------------------

subdir = src/backend/optimizer/path
top_builddir = ../../../..
include $(top_builddir)/src/Makefile.global

OBJS = allpaths.o clausesel.o costsize.o equivclass.o indxpath.o \
       joinpath.o joinrels.o orindxpath.o pathkeys.o tidpath.o

include $(top_srcdir)/src/backend/common.mk
@


1.18
log
@Refactor planner's pathkeys data structure to create a separate, explicit
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.
@
text
@d7 1
a7 1
#    $PostgreSQL: pgsql/src/backend/optimizer/path/Makefile,v 1.17 2007/01/20 17:16:11 petere Exp $
d18 1
a18 7
all: SUBSYS.o

SUBSYS.o: $(OBJS)
	$(LD) $(LDREL) $(LDOUT) SUBSYS.o $(OBJS)

clean: 
	rm -f SUBSYS.o $(OBJS)
@


1.17
log
@Remove remains of old depend target.
@
text
@d7 1
a7 1
#    $PostgreSQL: pgsql/src/backend/optimizer/path/Makefile,v 1.16 2003/11/29 19:51:50 pgsql Exp $
d15 1
a15 1
OBJS = allpaths.o clausesel.o costsize.o indxpath.o \
@


1.16
log
@
$Header: -> $PostgreSQL Changes ...
@
text
@d7 1
a7 1
#    $PostgreSQL: /cvsroot/pgsql-server/src/backend/optimizer/path/Makefile,v 1.15 2000/08/31 16:10:09 petere Exp $
a22 3
depend dep:
	$(CC) -MM $(CFLAGS) *.c >depend

a24 4

ifeq (depend,$(wildcard depend))
include depend
endif
@


1.15
log
@Fix relative path references so that make knowns which dependencies refer
to one another. Sort out builddir vs srcdir variable namings. Remove some
now obsoleted make variables.
@
text
@d7 1
a7 1
#    $Header: /home/projects/pgsql/cvsroot/pgsql/src/backend/optimizer/path/Makefile,v 1.14 2000/05/29 05:44:50 tgl Exp $
@


1.14
log
@Generated header files parse.h and fmgroids.h are now copied into
the src/include tree, so that -I backend is no longer necessary anywhere.
Also, clean up some bit rot in contrib tree.
@
text
@d7 1
a7 1
#    $Header: /home/projects/pgsql/cvsroot/pgsql/src/backend/optimizer/path/Makefile,v 1.13 2000/02/07 04:40:59 tgl Exp $
d11 3
a13 2
SRCDIR = ../../..
include ../../../Makefile.global
a31 1

@


1.13
log
@Repair planning bugs caused by my misguided removal of restrictinfo link
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'.
@
text
@d7 1
a7 1
#    $Header: /usr/local/cvsroot/pgsql/src/backend/optimizer/path/Makefile,v 1.12 1999/12/13 22:32:52 momjian Exp $
a12 2

CFLAGS += -I../..
@


1.12
log
@New LDOUT makefile variable for QNX os.
@
text
@d7 1
a7 1
#    $Header: /usr/local/cvsroot/pgsql/src/backend/optimizer/path/Makefile,v 1.11 1999/12/09 19:14:45 momjian Exp $
d17 1
a17 2
       joinpath.o joinrels.o orindxpath.o pathkeys.o prune.o \
	tidpath.o
@


1.11
log
@Make LD -r as macros that can be changed for QNX.
@
text
@d7 1
a7 1
#    $Header: /usr/local/cvsroot/pgsql/src/backend/optimizer/path/Makefile,v 1.10 1999/11/23 20:06:54 momjian Exp $
d23 1
a23 1
	$(LD) $(LDREL) -o SUBSYS.o $(OBJS)
@


1.10
log
@Tid access method feature from Hiroshi Inoue, Inoue@@tpf.co.jp
@
text
@d7 1
a7 1
#    $Header: /usr/local/cvsroot/pgsql/src/backend/optimizer/path/Makefile,v 1.9 1999/08/16 02:17:50 tgl Exp $
d23 1
a23 1
	$(LD) -r -o SUBSYS.o $(OBJS)
@


1.9
log
@Major planner/optimizer revision: get rid of PathOrder node type,
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.
@
text
@d7 1
a7 1
#    $Header: /usr/local/cvsroot/pgsql/src/backend/optimizer/path/Makefile,v 1.8 1999/02/20 15:27:42 momjian Exp $
d17 2
a18 1
       joinpath.o joinrels.o orindxpath.o pathkeys.o prune.o
@


1.8
log
@another rename of optimizer
@
text
@d7 1
a7 1
#    $Header: /usr/local/cvsroot/pgsql/src/backend/optimizer/path/Makefile,v 1.7 1999/02/18 19:58:51 momjian Exp $
d16 2
a17 2
OBJS = allpaths.o clausesel.o costsize.o hashutils.o indxpath.o \
       joinpath.o joinrels.o mergeutils.o orindxpath.o pathkeys.o prune.o
@


1.7
log
@rename optimizer file name
@
text
@d7 1
a7 1
#    $Header: /usr/local/cvsroot/pgsql/src/backend/optimizer/path/Makefile,v 1.6 1998/04/06 00:23:17 momjian Exp $
d17 1
a17 1
       joinpath.o joinrels.o mergeutils.o orindxpath.o pathkey.o prune.o
@


1.6
log
@Hi,

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
@
text
@d7 1
a7 1
#    $Header: /usr/local/cvsroot/pgsql/src/backend/optimizer/path/Makefile,v 1.5 1997/12/20 00:24:23 scrappy Exp $
d17 1
a17 4
       joinpath.o joinrels.o joinutils.o mergeutils.o orindxpath.o \
       prune.o

# not ready yet: predmig.o xfunc.o
@


1.5
log
@Major cleanout of PORTNAME variables from Makefiles...bound to screw up
some of the ports...
@
text
@d7 1
a7 1
#    $Header: /usr/local/cvsroot/pgsql/src/backend/optimizer/path/Makefile,v 1.4 1997/12/19 02:05:59 scrappy Exp $
d14 1
a14 3
INCLUDE_OPT = -I../.. 

CFLAGS+=$(INCLUDE_OPT)
d28 1
a28 1
	$(CC) -MM $(INCLUDE_OPT) *.c >depend
@


1.4
log
@More cleanups.  I can now compile without PORTNAME being defined n
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 :)
@
text
@d7 1
a7 1
#    $Header: /usr/local/cvsroot/pgsql/src/backend/optimizer/path/Makefile,v 1.3 1996/11/09 06:18:10 momjian Exp $
a14 4

ifdef PORTNAME
INCLUDE_OPT+=-I../../port/$(PORTNAME)  
endif
@


1.3
log
@Makefile cleanup after reorganization
@
text
@d7 1
a7 1
#    $Header: /usr/local/cvsroot/postgres95/src/backend/optimizer/path/Makefile,v 1.2 1996/10/31 10:58:58 scrappy Exp $
d14 5
a18 3
INCLUDE_OPT = -I../.. \
              -I../../port/$(PORTNAME) \
              -I../../../include
@


1.2
log
@Cleanup Makefiles

Add #include "postgres.h"
	and
    #include <sys/types.h>
@
text
@d7 1
a7 1
#    $Header: /usr/local/cvsroot/postgres95/src/backend/optimizer/path/Makefile,v 1.1 1996/10/27 09:48:20 bryanh Exp $
d14 2
a15 1
INCLUDE_OPT = -I../../port/$(PORTNAME) \
@


1.1
log
@Simplify make files, add full dependencies.
@
text
@d7 1
a7 1
#    $Header: /usr/local/cvsroot/postgres95/src/backend/access/common/Makefile.inc,v 1.1.1.1 1996/07/09 06:21:09 scrappy Exp $
d14 1
a14 3
INCLUDE_OPT = -I../.. \
              -I../../port/$(PORTNAME) \
              -I../../include \
@
