diff options
author | adam <adam@pkgsrc.org> | 2009-07-29 06:26:17 +0000 |
---|---|---|
committer | adam <adam@pkgsrc.org> | 2009-07-29 06:26:17 +0000 |
commit | eb96381589f7a1eefa37deddd215970018438825 (patch) | |
tree | 3d8deebace809e8bf3bcce76bf966506c0a86294 /databases/postgresql84/files | |
parent | 893ec2a407d193134ed0f0d8bd639efa33d674eb (diff) | |
download | pkgsrc-eb96381589f7a1eefa37deddd215970018438825.tar.gz |
Many of the changes in PostgreSQL 8.4 are new or improved administration and
monitoring tools and commands. Each user has their own favorite features which
will make day-to-day work with PostgreSQL easier and more productive for them.
Among the most popular enhancements are:
* Parallel Database Restore, speeding up recovery from backup up to 8 times
* Per-Column Permissions, allowing more granular control of sensitive data
* Per-database Collation Support, making PostgreSQL more useful in
multi-lingual environments
* In-place Upgrades through pg_migrator (beta), enabling upgrades from 8.3 to
8.4 without extensive downtime
* New Query Monitoring Tools, giving administrators more insight into query
activity
* Greatly Reduced VACUUM Overhead through the Visibility Map
* New Monitoring Tools for current queries, query load and deadlocks
Version 8.4 also makes data analysis easier through the advanced ANSI SQL2003
features of windowing functions, common table expressions and recursive queries.
Enhancements to stored procedures, such as default parameters and variadic
parameters, make database server programming simpler and more compact.
Of course, there are also performance improvements included in this version.
Diffstat (limited to 'databases/postgresql84/files')
-rw-r--r-- | databases/postgresql84/files/GNUmakefile.libpq | 20 | ||||
-rw-r--r-- | databases/postgresql84/files/Makefile.custom | 42 | ||||
-rw-r--r-- | databases/postgresql84/files/Makefile.libtool | 141 | ||||
-rw-r--r-- | databases/postgresql84/files/dynloader-ltdl.h | 17 |
4 files changed, 220 insertions, 0 deletions
diff --git a/databases/postgresql84/files/GNUmakefile.libpq b/databases/postgresql84/files/GNUmakefile.libpq new file mode 100644 index 00000000000..36bacb7e155 --- /dev/null +++ b/databases/postgresql84/files/GNUmakefile.libpq @@ -0,0 +1,20 @@ +# $NetBSD: GNUmakefile.libpq,v 1.1.1.1 2009/07/29 06:26:17 adam Exp $ +# +# This GNUmakefile overrides the `all' target of $(libpq_srcdir)/Makefile +# to be empty if INSTALLED_LIBPQ is defined. This handles the submake +# targets sprinkled throughout the PostgreSQL Makefiles that execute +# +# @$(MAKE) -C $(libpq_builddir) all +# +# to ensure that the libpq libraries are built first. If INSTALLED_LIBPQ +# is defined, then have the `all' target simple return success. + +ifdef INSTALLED_LIBPQ +all: + @test -f libpq.a || touch libpq.a +endif + +%: force + @$(MAKE) -f Makefile $@ + +force: ; diff --git a/databases/postgresql84/files/Makefile.custom b/databases/postgresql84/files/Makefile.custom new file mode 100644 index 00000000000..35a2580f7a0 --- /dev/null +++ b/databases/postgresql84/files/Makefile.custom @@ -0,0 +1,42 @@ +# $NetBSD: Makefile.custom,v 1.1.1.1 2009/07/29 06:26:17 adam Exp $ +# +# This file is included at the end of Makefile.global, which is included +# by every sub-Makefile in the build tree. Makefiles for shared +# libraries include Makefile.global then Makefile.shlib. +# + +# Override any OS-specific locations for where to put SQL man pages. +sqlmansect = 7 + +# Override installation paths to avoid logic in Makefile.global. +includedir = $(prefix)/include +libdir = $(exec_prefix)/lib +pkglibdir = $(libdir)/postgresql +pkgincludedir = $(includedir)/postgresql + +# INSTALLED_LIBPQ is passed in from the environment and tells the build +# system how to link to an installed libpq.*. +# +ifdef INSTALLED_LIBPQ +libpq = -lpq +else +ifdef LIBTOOL +libpq = $(libpq_builddir)/libpq.la +endif +ifdef PGFILEDESC +libpq = -L$(libpq_builddir)/.libs -lpq +endif +endif + +# In pkgsrc, libpython is always present as a shared library. +shared_libpython = yes + +# $(libpq_builddir)/libpq.a is used in several places as a dependency, +# but if we're building with libtool, then we don't actually want to +# create that file since it will mess up the re-linking process. +# Declare it to be phony to prevent GNU make from thinking it's a +# target. +# +ifdef LIBTOOL +.PHONY: $(libpq_builddir)/libpq.a +endif diff --git a/databases/postgresql84/files/Makefile.libtool b/databases/postgresql84/files/Makefile.libtool new file mode 100644 index 00000000000..1c3d700045f --- /dev/null +++ b/databases/postgresql84/files/Makefile.libtool @@ -0,0 +1,141 @@ +#------------------------------------------------------------------------- +# +# Makefile.libtool +# Common rules for buildling libtool archives +# +# IDENTIFICATION +# $NetBSD: Makefile.libtool,v 1.1.1.1 2009/07/29 06:26:18 adam Exp $ +# +#------------------------------------------------------------------------- + +## +## Hacks/workarounds for makefiles in certain directories +## + +# The following directories are building loadable shared modules, not +# shared libraries. +# +ifneq (,$(findstring src/backend/utils/mb/conversion_procs/,$(subdir))) +shmodule = yes +else +ifneq (,$(findstring src/backend/snowball,$(subdir))) +shmodule = yes +else +ifneq (,$(findstring src/pl/,$(subdir))) +shmodule = yes +else +ifneq (,$(findstring contrib/adminpack,$(subdir))) +shmodule = yes +else +shmodule = no +endif +endif +endif +endif + +# Fix dependencies in some makefiles that assume the target matches +# %.o so that when built for libtool, the target matches the corresponding +# %.lo. +# +ifeq ($(subdir), src/interfaces/ecpg/ecpglib) +path.lo: path.c $(top_builddir)/src/port/pg_config_paths.h +endif + +ifeq ($(subdir), src/interfaces/libpq) +fe-connect.lo: fe-connect.c $(top_builddir)/src/port/pg_config_paths.h +endif + +ifeq ($(subdir), src/pl/plpgsql/src) +pl_gram.lo pl_handler.lo pl_comp.lo pl_exec.lo pl_funcs.lo: plpgsql.h +pl_gram.lo: $(srcdir)/pl_scan.c +endif + + +## +## VARIABLE DEFINITIONS +## + +# Loadable shared modules are named differently from shared libraries +# and are installed into $(pkglibdir). +# +ifeq ($(shmodule),yes) +ltlib = $(NAME)$(DLSUFFIX) +ltmodule = -module +rpathdir = $(pkglibdir) +else +ltlib = lib$(NAME)$(DLSUFFIX) +ltmodule = +endif + +DLSUFFIX = .la +SO_MAJOR_VERSION?=0 +SO_MINOR_VERSION?=0 + +LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(CFLAGS) $(CPPFLAGS) +LTLINK = $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) $(ltmodule) -rpath $(rpathdir) -version-info $(SO_MAJOR_VERSION):$(SO_MINOR_VERSION) +LTOBJS = $(OBJS:%.o=%.lo) + +# Define INSTALL_SHLIB and shlib for the benefit of Makefiles for +# loadable modules that have their own target for installing the +# module. +# +INSTALL_LTLIB = $(LIBTOOL) --mode=install $(INSTALL) +INSTALL_STLIB = $(INSTALL_LTLIB) +INSTALL_SHLIB = $(INSTALL_LTLIB) +shlib = $(ltlib) + +%.lo : %.c + $(LTCOMPILE) -c $< -o $@ + + +## +## BUILD +## + +.PHONY: all-lib all-static-lib all-shared-lib all-la-lib +all-lib all-static-lib all-shared-lib: all-la-lib + +all-la-lib: $(ltlib) + +$(ltlib): $(LTOBJS) + $(LTLINK) -o $@ $(LTOBJS) $(SHLIB_LINK) + + +## +## INSTALL +## + +.PHONY: install-lib install-lib-static install-lib-shared installdirs-lib install-lib-la +install-lib install-static-lib install-shared-lib: install-lib-la + +install-lib-la: $(ltlib) +ifeq ($(shmodule),yes) + $(INSTALL_LTLIB) $< $(DESTDIR)$(pkglibdir)/$(shlib) +else + $(INSTALL_LTLIB) $< $(DESTDIR)$(libdir)/$(ltlib) +endif + +installdirs-lib: +ifeq ($(shmodule),yes) + $(mkinstalldirs) '$(DESTDIR)$(pkglibdir)' +else + $(mkinstalldirs) '$(DESTDIR)$(libdir)' +endif + + +## +## UNINSTALL +## + +.PHONY: uninstall-lib +uninstall-lib: + $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$(ltlib) + + +## +## CLEAN +## + +.PHONY: clean-lib +clean-lib: + $(LIBTOOL) --mode=clean rm -f $(ltlib) $(LTOBJS) diff --git a/databases/postgresql84/files/dynloader-ltdl.h b/databases/postgresql84/files/dynloader-ltdl.h new file mode 100644 index 00000000000..8c66b6aa2a1 --- /dev/null +++ b/databases/postgresql84/files/dynloader-ltdl.h @@ -0,0 +1,17 @@ +/* $NetBSD: dynloader-ltdl.h,v 1.1.1.1 2009/07/29 06:26:18 adam Exp $ */ + +/* + * dynamic loader based on libltdl + */ +#ifndef PORT_PROTOS_H +#define PORT_PROTOS_H + +#include <ltdl.h> +#include "utils/dynamic_loader.h" + +#define pg_dlopen(a) ((void *)lt_dlopen(a)) +#define pg_dlsym(a,b) lt_dlsym((lt_dlhandle)(a), (b)) +#define pg_dlclose(a) lt_dlclose((lt_dlhandle)(a)) +#define pg_dlerror lt_dlerror + +#endif /* PORT_PROTOS_H */ |