head	1.23;
access;
symbols
	REL9_0_0:1.23
	REL9_1_ALPHA1:1.23
	REL9_0_RC1:1.23
	REL9_0_BETA4:1.23
	REL9_0_STABLE:1.23.0.8
	REL9_0_BETA3:1.23
	REL9_0_BETA2:1.23
	REL7_4_29:1.17
	REL8_0_25:1.18
	REL8_1_21:1.19
	REL8_2_17:1.19
	REL8_3_11:1.20
	REL8_4_4:1.21
	REL9_0_BETA1:1.23
	REL9_0_ALPHA5_BRANCH:1.23.0.6
	REL9_0_ALPHA5:1.23
	REL7_4_28:1.17
	REL8_0_24:1.18
	REL8_1_20:1.19
	REL8_2_16:1.19
	REL8_3_10:1.20
	REL8_4_3:1.21
	REL9_0_ALPHA4:1.23
	REL9_0_ALPHA4_BRANCH:1.23.0.4
	REL8_5_ALPHA3:1.23
	REL8_5_ALPHA3_BRANCH:1.23.0.2
	REL7_4_27:1.17
	REL8_0_23:1.18
	REL8_1_19:1.19
	REL8_2_15:1.19
	REL8_3_9:1.20
	REL8_4_2:1.21
	REL8_5_ALPHA2:1.22
	REL8_5_ALPHA2_BRANCH:1.22.0.4
	REL7_4_26:1.17
	REL8_0_22:1.18
	REL8_1_18:1.19
	REL8_2_14:1.19
	REL8_3_8:1.20
	REL8_4_1:1.21
	REL8_5_ALPHA1:1.22
	REL8_5_ALPHA1_BRANCH:1.22.0.2
	REL8_4_STABLE:1.21.0.2
	REL8_4_0:1.21
	REL8_4_RC2:1.21
	REL8_4_RC1:1.21
	REL8_4_BETA2:1.21
	REL8_4_BETA1:1.21
	REL7_4_25:1.17
	REL8_0_21:1.18
	REL8_1_17:1.19
	REL8_2_13:1.19
	REL8_3_7:1.20
	REL7_4_24:1.17
	REL8_0_20:1.18
	REL8_1_16:1.19
	REL8_2_12:1.19
	REL8_3_6:1.20
	REL7_4_23:1.17
	REL8_0_19:1.18
	REL8_1_15:1.19
	REL8_2_11:1.19
	REL8_3_5:1.20
	REL7_4_22:1.17
	REL8_0_18:1.18
	REL8_1_14:1.19
	REL8_2_10:1.19
	REL8_3_4:1.20
	REL7_4_21:1.17
	REL8_0_17:1.18
	REL8_1_13:1.19
	REL8_2_9:1.19
	REL8_3_3:1.20
	REL7_4_20:1.17
	REL8_0_16:1.18
	REL8_1_12:1.19
	REL8_2_8:1.19
	REL8_3_2:1.20
	REL8_2_7:1.19
	REL8_3_1:1.20
	REL8_3_STABLE:1.20.0.2
	REL8_3_0:1.20
	REL8_3_RC2:1.20
	REL7_3_21:1.17
	REL7_4_19:1.17
	REL8_0_15:1.18
	REL8_1_11:1.19
	REL8_2_6:1.19
	REL8_3_RC1:1.20
	REL8_3_BETA4:1.20
	REL8_3_BETA3:1.20
	REL8_3_BETA2:1.20
	REL8_3_BETA1:1.20
	REL7_3_20:1.17
	REL7_4_18:1.17
	REL8_0_14:1.18
	REL8_1_10:1.19
	REL8_2_5:1.19
	REL7_3_19:1.17
	REL7_4_17:1.17
	REL8_0_13:1.18
	REL8_1_9:1.19
	REL8_2_4:1.19
	REL8_0_12:1.18
	REL8_1_8:1.19
	REL8_2_3:1.19
	REL7_3_18:1.17
	REL7_4_16:1.17
	REL8_0_11:1.18
	REL8_1_7:1.19
	REL8_2_2:1.19
	REL8_0_10:1.18
	REL8_1_6:1.19
	REL8_2_1:1.19
	REL7_4_15:1.17
	REL7_3_17:1.17
	REL8_2_STABLE:1.19.0.4
	REL8_2_0:1.19
	REL8_2_RC1:1.19
	REL8_2_BETA3:1.19
	REL8_2_BETA2:1.19
	REL8_1_5:1.19
	REL8_0_9:1.18
	REL7_4_14:1.17
	REL7_3_16:1.17
	REL8_2_BETA1:1.19
	REL7_3_15:1.17
	REL7_4_13:1.17
	REL8_0_8:1.18
	REL8_1_4:1.19
	REL7_3_14:1.17
	REL7_4_12:1.17
	REL8_0_7:1.18
	REL8_1_3:1.19
	REL7_3_13:1.17
	REL7_4_11:1.17
	REL8_0_6:1.18
	REL8_1_2:1.19
	REL7_3_12:1.17
	REL7_4_10:1.17
	REL8_0_5:1.18
	REL8_1_1:1.19
	REL8_1_STABLE:1.19.0.2
	REL8_1_0:1.19
	REL8_1_0RC1:1.19
	REL8_1_0BETA4:1.19
	REL8_1_0BETA3:1.19
	REL7_3_11:1.17
	REL7_4_9:1.17
	REL8_0_4:1.18
	REL8_1_0BETA2:1.19
	REL8_1_0BETA1:1.19
	REL7_2_8:1.17
	REL7_3_10:1.17
	REL7_4_8:1.17
	REL8_0_3:1.18
	REL8_0_2:1.18
	REL7_2_7:1.17
	REL7_3_9:1.17
	REL7_4_7:1.17
	REL8_0_1:1.18
	REL8_0_STABLE:1.18.0.4
	REL8_0_0:1.18.0.2
	REL8_0_0RC5:1.18
	REL8_0_0RC4:1.18
	REL8_0_0RC3:1.18
	REL8_0_0RC2:1.18
	REL8_0_0RC1:1.18
	REL8_0_0BETA5:1.18
	REL8_0_0BETA4:1.18
	REL7_4_6:1.17
	REL7_3_8:1.17
	REL7_2_6:1.17
	REL8_0_0BETA3:1.18
	REL8_0_0BETA2:1.18
	REL7_2_5:1.17
	REL7_4_5:1.17
	REL7_3_7:1.17
	REL7_4_4:1.17
	REL8_0_0BETA1:1.18
	REL7_4_3:1.17
	REL7_4_2:1.17
	REL7_3_6:1.17
	REL7_4_1:1.17
	REL7_3_5:1.17
	REL7_4:1.17
	REL7_4_RC2:1.17
	REL7_4_STABLE:1.17.0.8
	REL7_4_RC1:1.17
	REL7_4_BETA5:1.17
	REL7_4_BETA4:1.17
	REL7_4_BETA3:1.17
	REL7_4_BETA2:1.17
	WIN32_DEV:1.17.0.6
	REL7_4_BETA1:1.17
	REL7_3_4:1.17
	REL7_3_2:1.17
	REL7_2_4:1.17
	REL7_3_STABLE:1.17.0.4
	REL7_2_3:1.17
	REL7_2_STABLE:1.17.0.2
	REL7_2:1.17
	REL7_2_RC2:1.17
	REL7_2_RC1:1.17
	REL7_2_BETA5:1.17
	REL7_2_BETA4:1.17
	REL7_2_BETA3:1.17
	REL7_2_BETA2:1.17
	REL7_2_BETA1:1.16
	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.10.0.2
	REL7_0:1.10
	REL6_5_PATCHES:1.7.0.4
	REL6_5:1.7
	REL6_4:1.7.0.2
	release-6-3:1.6
	REL2_0B:1.3.0.2
	REL2_0:1.3;
locks; strict;
comment	@# @;


1.23
date	2009.12.19.01.32.35;	author sriggs;	state Exp;
branches;
next	1.22;

1.22
date	2009.07.31.20.26.23;	author tgl;	state Exp;
branches;
next	1.21;

1.21
date	2008.02.19.10.30.08;	author petere;	state Exp;
branches;
next	1.20;

1.20
date	2007.01.20.17.16.12;	author petere;	state Exp;
branches;
next	1.19;

1.19
date	2005.05.19.21.35.46;	author tgl;	state Exp;
branches;
next	1.18;

1.18
date	2003.11.29.19.51.56;	author pgsql;	state Exp;
branches;
next	1.17;

1.17
date	2001.11.04.19.55.31;	author tgl;	state Exp;
branches;
next	1.16;

1.16
date	2001.09.27.19.10.02;	author tgl;	state Exp;
branches;
next	1.15;

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

1.14
date	2000.09.29.17.17.33;	author petere;	state Exp;
branches;
next	1.13;

1.13
date	2000.08.31.16.10.33;	author petere;	state Exp;
branches;
next	1.12;

1.12
date	2000.07.13.16.06.54;	author petere;	state Exp;
branches;
next	1.11;

1.11
date	2000.05.29.05.45.06;	author tgl;	state Exp;
branches;
next	1.10;

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

1.9
date	99.12.09.19.15.01;	author momjian;	state Exp;
branches;
next	1.8;

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

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

1.6
date	97.12.20.00.27.25;	author scrappy;	state Exp;
branches;
next	1.5;

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

1.4
date	97.09.18.14.20.08;	author momjian;	state Exp;
branches;
next	1.3;

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

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

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


desc
@@


1.23
log
@Allow read only connections during recovery, known as Hot Standby.

Enabled by recovery_connections = on (default) and forcing archive recovery using a recovery.conf. Recovery processing now emulates the original transactions as they are replayed, providing full locking and MVCC behaviour for read only queries. Recovery must enter consistent state before connections are allowed, so there is a delay, typically short, before connections succeed. Replay of recovering transactions can conflict and in some cases deadlock with queries during recovery; these result in query cancellation after max_standby_delay seconds have expired. Infrastructure changes have minor effects on normal running, though introduce four new types of WAL record.

New test mode "make standbycheck" allows regression tests of static command behaviour on a standby server while in recovery. Typical and extreme dynamic behaviours have been checked via code inspection and manual testing. Few port specific behaviours have been utilised, though primary testing has been on Linux only so far.

This commit is the basic patch. Additional changes will follow in this release to enhance some aspects of behaviour, notably improved handling of conflicts, deadlock detection and query cancellation. Changes to VACUUM FULL are also required.

Simon Riggs, with significant and lengthy review by Heikki Linnakangas, including streamlined redesign of snapshot creation and two-phase commit.

Important contributions from Florian Pflug, Mark Kirkwood, Merlin Moncure, Greg Stark, Gianni Ciolli, Gabriele Bartolini, Hannu Krosing, Robert Haas, Tatsuo Ishii, Hiroyuki Yamada plus support and feedback from many other community members.
@
text
@#
# Makefile for storage/ipc
#
# $PostgreSQL: pgsql/src/backend/storage/ipc/Makefile,v 1.22 2009/07/31 20:26:23 tgl Exp $
#

subdir = src/backend/storage/ipc
top_builddir = ../../../..
include $(top_builddir)/src/Makefile.global

# seems to be required 1999/07/22 bjm
ifeq "$(findstring alpha,$(host_cpu))" "alpha"
ifeq "$(GCC)" "yes"
override CFLAGS+= -fno-inline
endif
endif

OBJS = ipc.o ipci.o pmsignal.o procarray.o procsignal.o shmem.o shmqueue.o \
	sinval.o sinvaladt.o standby.o

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


1.22
log
@Create a multiplexing structure for signals to Postgres child processes.

This patch gets us out from under the Unix limitation of two user-defined
signal types.  We already had done something similar for signals directed to
the postmaster process; this adds multiplexing for signals directed to
backends and auxiliary processes (so long as they're connected to shared
memory).

As proof of concept, replace the former usage of SIGUSR1 and SIGUSR2
for backends with use of the multiplexing mechanism.  There are still some
hard-wired definitions of SIGUSR1 and SIGUSR2 for other process types,
but getting rid of those doesn't seem interesting at the moment.

Fujii Masao
@
text
@d4 1
a4 1
# $PostgreSQL: pgsql/src/backend/storage/ipc/Makefile,v 1.21 2008/02/19 10:30:08 petere Exp $
d19 1
a19 1
	sinval.o sinvaladt.o
@


1.21
log
@Refactor backend makefiles to remove lots of duplicate code
@
text
@d4 1
a4 1
# $PostgreSQL: pgsql/src/backend/storage/ipc/Makefile,v 1.20 2007/01/20 17:16:12 petere Exp $
d18 1
a18 1
OBJS = ipc.o ipci.o pmsignal.o procarray.o shmem.o shmqueue.o \
@


1.20
log
@Remove remains of old depend target.
@
text
@d4 1
a4 1
# $PostgreSQL: pgsql/src/backend/storage/ipc/Makefile,v 1.19 2005/05/19 21:35:46 tgl Exp $
d21 1
a21 7
all: SUBSYS.o

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

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


1.19
log
@Split the shared-memory array of PGPROC pointers out of the sinval
communication structure, and make it its own module with its own lock.
This should reduce contention at least a little, and it definitely makes
the code seem cleaner.  Per my recent proposal.
@
text
@d4 1
a4 1
# $PostgreSQL: pgsql/src/backend/storage/ipc/Makefile,v 1.18 2003/11/29 19:51:56 pgsql Exp $
a25 3
depend dep:
	$(CC) -MM $(CFLAGS) *.c >depend

a27 4

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


1.18
log
@
$Header: -> $PostgreSQL Changes ...
@
text
@d4 1
a4 1
# $PostgreSQL: /cvsroot/pgsql-server/src/backend/storage/ipc/Makefile,v 1.17 2001/11/04 19:55:31 tgl Exp $
d18 2
a19 1
OBJS = ipc.o ipci.o pmsignal.o shmem.o shmqueue.o sinval.o sinvaladt.o
@


1.17
log
@Merge three existing ways of signaling postmaster from child processes,
so that only one signal number is used not three.  Flags in shared
memory tell the reason(s) for the current signal.  This method is
extensible to handle more signal reasons without chewing up even more
signal numbers, but the immediate reason is to keep pg_pwd reloads
separate from SIGHUP processing in the postmaster.
Also clean up some problems in the postmaster with delayed response to
checkpoint status changes --- basically, it wouldn't schedule a checkpoint
if it wasn't getting connection requests on a regular basis.
@
text
@d4 1
a4 1
# $Header: /cvsroot/pgsql/src/backend/storage/ipc/Makefile,v 1.16 2001/09/27 19:10:02 tgl Exp $
@


1.16
log
@Move s_lock.c and spin.c into lmgr subdirectory, which seems a much
more reasonable location for them.
@
text
@d4 1
a4 1
# $Header: /cvsroot/pgsql/src/backend/storage/ipc/Makefile,v 1.15 2000/10/20 21:03:47 petere Exp $
d18 1
a18 1
OBJS = ipc.o ipci.o shmem.o shmqueue.o sinval.o sinvaladt.o
@


1.15
log
@Add support for VPATH builds, that is, building somewhere else than in the
source directory.  This involves mostly makefiles using $(srcdir) when they
might have used ".".  (Regression tests don't work with this, yet.)

Sort out usage of CPPFLAGS, CFLAGS (and CXXFLAGS).  Add "override" keyword
in most places, to preserve necessary flags even when the user overrode the
flags.
@
text
@d4 1
a4 1
# $Header: /home/projects/pgsql/cvsroot/pgsql/src/backend/storage/ipc/Makefile,v 1.14 2000/09/29 17:17:33 petere Exp $
d18 1
a18 2
OBJS = ipc.o ipci.o shmem.o shmqueue.o sinval.o \
       sinvaladt.o spin.o
@


1.14
log
@New unified regression test driver, test/regress makefile cleanup,
add "check" and "installcheck" targets, straighten out make variable naming
of host_os, host_cpu, etc.
@
text
@d4 1
a4 1
# $Header: /home/projects/pgsql/cvsroot/pgsql/src/backend/storage/ipc/Makefile,v 1.13 2000/08/31 16:10:33 petere Exp $
d14 1
a14 1
CFLAGS+= -fno-inline
@


1.13
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
@d4 1
a4 1
# $Header: /home/projects/pgsql/cvsroot/pgsql/src/backend/storage/ipc/Makefile,v 1.12 2000/07/13 16:06:54 petere Exp $
d12 2
a13 2
ifeq ($(CPU), alpha)
ifeq ($(GCC), yes)
@


1.12
log
@Repair parallel make in backend tree (and make it really parallel).
Make Gen_fmgrtab.sh reasonably robust against concurrent invocation.
@
text
@d4 1
a4 1
# $Header: /home/projects/pgsql/cvsroot/pgsql/src/backend/storage/ipc/Makefile,v 1.11 2000/05/29 05:45:06 tgl Exp $
d9 1
a9 1
include ../../../Makefile.global
@


1.11
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
@a0 1
#-------------------------------------------------------------------------
d2 1
a2 2
# Makefile--
#    Makefile for storage/ipc
d4 1
a4 2
# IDENTIFICATION
#    $Header: /home/projects/pgsql/cvsroot/pgsql/src/backend/storage/ipc/Makefile,v 1.10 1999/12/13 22:33:45 momjian Exp $
a5 1
#-------------------------------------------------------------------------
d7 2
a8 1
SRCDIR = ../../..
d12 2
a13 5
ifeq ($(CPU),alpha)
ifeq ($(CC), gcc)
CFLAGS+= -fno-inline
endif
ifeq ($(CC), egcs)
a34 1

@


1.10
log
@New LDOUT makefile variable for QNX os.
@
text
@d7 1
a7 1
#    $Header: /usr/local/cvsroot/pgsql/src/backend/storage/ipc/Makefile,v 1.9 1999/12/09 19:15:01 momjian Exp $
a12 2

CFLAGS += -I../..
@


1.9
log
@Make LD -r as macros that can be changed for QNX.
@
text
@d7 1
a7 1
#    $Header: /usr/local/cvsroot/pgsql/src/backend/storage/ipc/Makefile,v 1.8 1999/07/22 18:30:07 momjian Exp $
d32 1
a32 1
	$(LD) $(LDREL) -o SUBSYS.o $(OBJS)
@


1.8
log
@Alpha spinlock fix from Uncle George <gatgul@@voicenet.com>
@
text
@d7 1
a7 1
#    $Header: /usr/local/cvsroot/pgsql/src/backend/storage/ipc/Makefile,v 1.7 1998/04/06 00:25:14 momjian Exp $
d32 1
a32 1
	$(LD) -r -o SUBSYS.o $(OBJS)
@


1.7
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/storage/ipc/Makefile,v 1.6 1997/12/20 00:27:25 scrappy Exp $
d15 10
@


1.6
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/storage/ipc/Makefile,v 1.5 1997/12/19 02:07:13 scrappy Exp $
d14 1
a14 3
INCLUDE_OPT = -I../.. 

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


1.5
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/storage/ipc/Makefile,v 1.4 1997/09/18 14:20:08 momjian Exp $
a14 4

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


1.4
log
@Inline frequently called functions.
@
text
@d7 1
a7 1
#    $Header: /usr/local/cvsroot/pgsql/src/backend/storage/ipc/Makefile,v 1.3 1996/11/09 06:21:47 momjian Exp $
d14 5
a18 3
INCLUDE_OPT = -I../.. \
              -I../../port/$(PORTNAME) \
              -I../../../include
@


1.3
log
@Makefile cleanup after reorganization
@
text
@d7 1
a7 1
#    $Header: /usr/local/cvsroot/postgres95/src/backend/storage/ipc/Makefile,v 1.2 1996/11/03 05:06:52 scrappy Exp $
d20 1
a20 1
OBJS = ipc.o ipci.o s_lock.o shmem.o shmqueue.o sinval.o \
@


1.2
log
@Clean up Makefile(s)

Add #include "postgres.h" as required

Remove #include "c.h" *and* "utils/elog.h" as applicable
@
text
@d7 1
a7 1
#    $Header: /usr/local/cvsroot/postgres95/src/backend/storage/ipc/Makefile,v 1.1 1996/10/27 09:52:10 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 \
@
