diff --git a/contrib/statmath/Makefile b/contrib/statmath/Makefile
deleted file mode 100644
index e292c52e6ca9f7700e70ebacf7bbf765e20a4738..0000000000000000000000000000000000000000
--- a/contrib/statmath/Makefile
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# $Header: /cvsroot/pgsql/contrib/statmath/Attic/Makefile,v 1.2 2000/07/09 13:13:41 petere Exp $
-#
-
-subdir = contrib/statmath
-top_builddir = ../..
-include ../../src/Makefile.global
-
-NAME	:= statmath
-SONAME	:= $(NAME)$(DLSUFFIX)
-
-CFLAGS += -I. $(CFLAGS_SL)
-
-all: $(SONAME) $(NAME).sql
-
-$(NAME).sql: $(NAME).sql.in
-	sed -e 's:MODULE_PATHNAME:$(libdir)/contrib/$(SONAME):g' < $< > $@
-
-install: all installdirs
-	$(INSTALL_SHLIB) $(SONAME)	$(libdir)/contrib
-	$(INSTALL_DATA) $(NAME).sql	$(datadir)/contrib
-	$(INSTALL_DATA) README.$(NAME)	$(docdir)/contrib
-
-installdirs:
-	$(mkinstalldirs) $(libdir)/contrib $(datadir)/contrib $(docdir)/contrib
-
-uninstall:
-	rm -f $(libdir)/contrib/$(SONAME) $(datadir)/contrib/$(NAME).sql $(docdir)/contrib/README.$(NAME)
-
-clean:
-	rm -f $(SONAME) $(NAME).sql
-
-depend dep:
-	$(CC) -MM -MG $(CFLAGS) *.c > depend
-
-ifeq (depend,$(wildcard depend))
-include depend
-endif
diff --git a/contrib/statmath/README.statmath b/contrib/statmath/README.statmath
deleted file mode 100644
index 7db5f7c673beab14c533b405f46b656cfec98ece..0000000000000000000000000000000000000000
--- a/contrib/statmath/README.statmath
+++ /dev/null
@@ -1,39 +0,0 @@
-Statistical aggregate functions for PostgreSQL.
-
-This module provides some aggregate functions for statistical 
-mathematics. A new datatype holding two double precision 
-floating point values is required by them. 
-
-The aggregates are:
-
-average(float8)         average value computed by
-
-                                   n
-                                  ___
-                        _    1    \
-                        x = ---    >  x
-                             n    /__  i
-                                  i=1
-
-
-variance(float8         variance computed by
-
-                                    n
-                                   ___
-                         2    1    \         _ 2
-                        s  = ---    >  (x  - x) 
-                             n-1   /__   i
-                                   i=1
-
-
-
-stddev(float8)          standard deviation computed by
-
-                                 _____
-                                /  2 
-                        s =    /  s
-                             \/
-
-
--- 
-Jan Wieck <JanWieck@Yahoo.com>
diff --git a/contrib/statmath/statmath.c b/contrib/statmath/statmath.c
deleted file mode 100644
index 7832b35fb2f76f2da13a5e773e0dcda164e7c9b7..0000000000000000000000000000000000000000
--- a/contrib/statmath/statmath.c
+++ /dev/null
@@ -1,309 +0,0 @@
-/* ----------
- * Module statmath
- *
- *	statistical aggregates for average, variance and standard
- *	deviation.
- *
- * $Header: /cvsroot/pgsql/contrib/statmath/Attic/statmath.c,v 1.2 2000/07/04 14:37:32 wieck Exp $
- *
- *	Jan Wieck
- * ----------
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <errno.h>
-
-#include "postgres.h"
-#include "utils/palloc.h"
-
-
-/* ----------
- * Declarations
- *
- * statmath_stateval_in()	Input function for state transition variable
- * statmath_stateval_out()	Output function for state transition variable
- * statmath_collect()		State transition function to collect items
- * statmath_average_fin()	Final function for average aggregate
- * statmath_variance_fin()	Final function for variance aggregate
- * statmath_stddev_fin()	Final function for deviation aggregate
- * ----------
- */
-
-float64 statmath_stateval_in(char *str);
-char *statmath_stateval_out(float64 sval);
-
-float64 statmath_collect(float64 sval, float64 item);
-float64 statmath_average_fin(float64 sval, int4 n);
-float64 statmath_variance_fin(float64 sval, int4 n);
-float64 statmath_stddev_fin(float64 sval, int4 n);
-
-
-/* ----------
- * statmath_checkval -
- *
- *	Bounds checking for float8 values in Postgres
- * ----------
- */
-static void
-statmath_checkval(double val)
-{
-	if (fabs(val) > DBL_MAX)
-		elog(ERROR, "statmath: overflow");
-	if (val != 0.0 && fabs(val) < DBL_MIN)
-		elog(ERROR, "statmath: underflow");
-}
-
-
-/* ----------
- * statmath_stateval_in -
- *
- *	Input function for the state transition value data type.
- *	The input string are two float8's separated with a colon ':'.
- * ----------
- */
-float64
-statmath_stateval_in(char *str)
-{
-	float64		retval;
-	double		tmp;
-	char		*cp1, *cp2;
-
-	if (!str)
-		return (float64) NULL;
-
-	/*
-	 * Allocate space for the result
-	 */
-	retval = (float64) palloc(sizeof(float64data) * 2);
-
-	/*
-	 * Get the first number
-	 */
-	errno = 0;
-	tmp = strtod(str, &cp1);
-	if (*cp1 != ':' || errno == ERANGE)
-		elog(ERROR, "statmath: illegal input format '%s'", str);
-	statmath_checkval(tmp);
-	retval[0] = tmp;
-
-	/*
-	 * Get the second number
-	 */
-	tmp = strtod(++cp1, &cp2);
-	if (*cp2 != '\0' || errno == ERANGE)
-		elog(ERROR, "statmath: illegal input format '%s'", str);
-	statmath_checkval(tmp);
-	retval[1] = tmp;
-
-	/*
-	 * Return the internal binary format
-	 */
-	return retval;
-}
-
-
-/* ----------
- * statmath_stateval_out -
- *
- *	Output function for the state transition value data type.
- * ----------
- */
-char *
-statmath_stateval_out(float64 sval)
-{
-	char		buf[1024];
-	double		v1, v2;
-
-	if (!sval)
-		return pstrdup("(null)");
-	
-	/*
-	 * Print the values in the external format and return
-	 * the result in allocated space
-	 */
-	v1 = sval[0];
-	v2 = sval[1];
-	sprintf(buf, "%.*g:%.*g", DBL_DIG, v1, DBL_DIG, v2);
-	return pstrdup(buf);
-}
-
-
-/* ----------
- * statmath_collect -
- *
- *	State transition function to collect data for the variance
- *	and standard deviation aggregates.
- *	The state transition variable holds 2 float8 values. The
- *	first is the sum of the items, the second the sum of the
- *	item quadratic products.
- * ----------
- */
-float64
-statmath_collect(float64 sval, float64 item)
-{
-	float64		retval;
-	double		tmp;
-
-	if (!sval || !item)
-		return (float64) NULL;
-
-	/*
-	 * Allocate space for the result
-	 */
-	retval = (float64) palloc(sizeof(float64data) * 2);
-
-	/*
-	 * Compute the new values
-	 */
-	tmp = sval[0] + *item;
-	statmath_checkval(tmp);
-	retval[0] = tmp;
-
-	tmp = sval[1] + *item * *item;
-	statmath_checkval(tmp);
-	retval[1] = tmp;
-
-	/*
-	 * Return the result
-	 */
-	return retval;
-}
-
-
-/* ----------
- * statmath_average_fin -
- *
- *	Final computation function for the average aggregate.
- * ----------
- */
-float64
-statmath_average_fin(float64 sum, int4 n)
-{
-	float64		retval;
-	double		tmp;
-
-	if (!sum)
-		return (float64) NULL;
-
-	/*
-	 * Allocate space for the result
-	 */
-	retval = (float64) palloc(sizeof(float64data));
-
-	/*
-	 * Avoid division by zero if no items collected
-	 */
-	if (n == 0)
-	{
-		*retval = 0.0;
-		return retval;
-	}
-
-	/*
-	 * Compute the average
-	 */
-	tmp = *sum / (double)n;
-	statmath_checkval(tmp);
-	*retval = tmp;
-
-	/*
-	 * Return the result
-	 */
-	return retval;
-}
-
-
-/* ----------
- * statmath_variance_fin -
- *
- *	Final computation function for the variance aggregate
- * ----------
- */
-float64
-statmath_variance_fin(float64 sval, int4 n)
-{
-	float64		retval;
-	double		avg;
-	double		variance;
-
-	if (!sval)
-		return (float64) NULL;
-
-	/*
-	 * Allocate space for the result
-	 */
-	retval = (float64) palloc(sizeof(float64data));
-
-	/*
-	 * Avoid division by zero if less than 2 items collected
-	 */
-	if (n < 2)
-	{
-		*retval = 0.0;
-		return retval;
-	}
-
-	/*
-	 * Calculate the variance
-	 */
-	avg = sval[0] / (double)n;
-	variance = (sval[1] - sval[0] * avg) / ((double)n - 1.0);
-
-	statmath_checkval(variance);
-	*retval = variance;
-
-	/*
-	 * Return the result
-	 */
-	return retval;
-}
-
-
-/* ----------
- * statmath_stateval_in -
- *
- *	Input function for the state transition value data type
- * ----------
- */
-float64
-statmath_stddev_fin(float64 sval, int4 n)
-{
-	float64		retval;
-	double		avg;
-	double		stddev;
-
-	if (!sval)
-		return (float64) NULL;
-
-	/*
-	 * Allocate space for the result
-	 */
-	retval = (float64) palloc(sizeof(float64data));
-
-	/*
-	 * Avoid division by zero if less than 2 items collected
-	 */
-	if (n < 2)
-	{
-		*retval = 0.0;
-		return retval;
-	}
-
-	/*
-	 * Calculate the standard deviation
-	 */
-	avg = sval[0] / (double)n;
-	stddev = sqrt((sval[1] - sval[0] * avg) / ((double)n - 1.0));
-
-	statmath_checkval(stddev);
-	*retval = stddev;
-
-	/*
-	 * Return the result
-	 */
-	return retval;
-}
-
-
diff --git a/contrib/statmath/statmath.sql.in b/contrib/statmath/statmath.sql.in
deleted file mode 100644
index ce01b460ad5068b446a844c99734b8f8f41157dd..0000000000000000000000000000000000000000
--- a/contrib/statmath/statmath.sql.in
+++ /dev/null
@@ -1,88 +0,0 @@
--- statmath.sql
---
--- Install the statistical aggregates
---
-
---
--- Create the new data type for the state transition variable
---
-CREATE FUNCTION statmath_stateval_in(opaque)
-	RETURNS statmath_stateval
-	AS 'MODULE_PATHNAME'
-	LANGUAGE 'C';
-
-CREATE FUNCTION statmath_stateval_out(opaque)
-	RETURNS opaque
-	AS 'MODULE_PATHNAME'
-	LANGUAGE 'C';
-
-CREATE TYPE statmath_stateval (
-	internallength = 16,
-	input = statmath_stateval_in,
-	output = statmath_stateval_out,
-	alignment = double
-);
-
---
--- Create the statistic data collector used in the aggregates
---
-CREATE FUNCTION statmath_collect(statmath_stateval, float8)
-	RETURNS statmath_stateval
-	AS 'MODULE_PATHNAME'
-	LANGUAGE 'C';
-
---
--- Create the final functions for the three aggregates
---
-CREATE FUNCTION statmath_average_fin(float8, int4)
-	RETURNS float8
-	AS 'MODULE_PATHNAME'
-	LANGUAGE 'C';
-
-CREATE FUNCTION statmath_variance_fin(statmath_stateval, int4)
-	RETURNS float8
-	AS 'MODULE_PATHNAME'
-	LANGUAGE 'C';
-
-CREATE FUNCTION statmath_stddev_fin(statmath_stateval, int4)
-	RETURNS float8
-	AS 'MODULE_PATHNAME'
-	LANGUAGE 'C';
-
---
--- Create the aggregates themself
---
-CREATE AGGREGATE average (
-	basetype = float8,
-	stype1 = float8,
-	stype2 = int4,
-	sfunc1 = float8pl,
-	sfunc2 = int4inc,
-	finalfunc = statmath_average_fin,
-	initcond1 = '0',
-	initcond2 = '0'
-);
-
-CREATE AGGREGATE variance (
-	basetype = float8,
-	stype1 = statmath_stateval,
-	stype2 = int4,
-	sfunc1 = statmath_collect,
-	sfunc2 = int4inc,
-	finalfunc = statmath_variance_fin,
-	initcond1 = '0:0',
-	initcond2 = '0'
-);
-
-CREATE AGGREGATE stddev (
-	basetype = float8,
-	stype1 = statmath_stateval,
-	stype2 = int4,
-	sfunc1 = statmath_collect,
-	sfunc2 = int4inc,
-	finalfunc = statmath_stddev_fin,
-	initcond1 = '0:0',
-	initcond2 = '0'
-);
-
-