aboutsummaryrefslogtreecommitdiff
path: root/doc/man/create_aggregate.l
diff options
context:
space:
mode:
authorMarc G. Fournier <scrappy@hub.org>1996-11-14 10:15:16 +0000
committerMarc G. Fournier <scrappy@hub.org>1996-11-14 10:15:16 +0000
commit389fe48cbb513888205bbe3a5008ed109976dacb (patch)
treee1bc978627338c127aa0d9c0fdbd8bed7fa6821c /doc/man/create_aggregate.l
parent65a10b1be6400025e7fd54befbc4a8489fd50e10 (diff)
downloadpostgresql-389fe48cbb513888205bbe3a5008ed109976dacb.tar.gz
postgresql-389fe48cbb513888205bbe3a5008ed109976dacb.zip
Removed man pages...moved to src/man
Requested by Bryan
Diffstat (limited to 'doc/man/create_aggregate.l')
-rw-r--r--doc/man/create_aggregate.l94
1 files changed, 0 insertions, 94 deletions
diff --git a/doc/man/create_aggregate.l b/doc/man/create_aggregate.l
deleted file mode 100644
index 645c54f8a51..00000000000
--- a/doc/man/create_aggregate.l
+++ /dev/null
@@ -1,94 +0,0 @@
-.\" This is -*-nroff-*-
-.\" XXX standard disclaimer belongs here....
-.\" $Header: /cvsroot/pgsql/doc/man/Attic/create_aggregate.l,v 1.1.1.1 1996/08/18 22:14:21 scrappy Exp $
-.TH "CREATE AGGREGATE" SQL 11/05/95 Postgres95 Postgres95
-.SH NAME
-create aggregate \(em define a new aggregate
-.SH SYNOPSIS
-.nf
-\fBcreate aggregate\fR agg-name [\fBas\fR]
- \fB(\fP[\fBsfunc1\fR \fB=\fR state-transition-function-1
- ,\fP \fBbasetype\fR \fB=\fR data-type
- ,\fP \fBstype1\fR \fB=\fR sfunc1-return-type]
- [\fB,\fP \fBsfunc2\fR \fB=\fR state-transition-function-2
- ,\fP \fBstype2\fR \fB=\fR sfunc2-return-type]
- [\fB,\fP \fBfinalfunc\fR \fB=\fR final-function]
- [\fB,\fP \fBinitcond1\fR \fB=\fR initial-condition-1]
- [\fB,\fP \fBinitcond2\fR \fB=\fR initial-condition-2]\fB)\fR
-.fi
-.SH DESCRIPTION
-An aggregate function can use up to three functions, two
-.IR "state transition"
-functions, X1 and X2:
-.nf
-X1( internal-state1, next-data_item ) ---> next-internal-state1
-X2( internal-state2 ) ---> next-internal-state2
-.fi
-and a
-.BR "final calculation"
-function, F:
-.nf
-F(internal-state1, internal-state2) ---> aggregate-value
-.fi
-These functions are required to have the following properties:
-.IP
-The arguments to state-transition-function-1 must be
-.BR ( stype1 , basetype ) ,
-and its return value must be stype1.
-.IP
-The argument and return value of state-transition-function-2 must be
-.BR stype2 .
-.IP
-The arguments to the final-calculation-function must be
-.BR ( stype1 , stype2 ) ,
-and its return value must be a POSTGRES base type (not
-necessarily the same as basetype.
-.IP
-The final-calculation-function should be specified if and only if both
-state-transition functions are specified.
-.PP
-Note that it is possible to specify aggregate functions that have
-varying combinations of state and final functions. For example, the
-\*(lqcount\*(rq aggregate requires
-.BR sfunc2
-(an incrementing function) but not
-.BR sfunc1 " or " finalfunc ,
-whereas the \*(lqsum\*(rq aggregate requires
-.BR sfunc1
-(an addition function) but not
-.BR sfunc2 " or " finalfunc
-and the \*(lqaverage\*(rq aggregate requires both of the above state
-functions as well as a
-.BR finalfunc
-(a division function) to produce its answer. In any case, at least
-one state function must be defined, and any
-.BR sfunc2
-must have a corresponding
-.BR initcond2 .
-.PP
-Aggregates also require two initial conditions, one for each
-transition function. These are specified and stored in the database
-as fields of type
-.IR text .
-.SH EXAMPLE
-This
-.IR avg
-aggregate consists of two state transition functions, a addition
-function and a incrementing function. These modify the internal state
-of the aggregate through a running sum and and the number of values
-seen so far. It accepts a new employee salary, increments the count,
-and adds the new salary to produce the next state. The state
-transition functions must be passed correct initialization values.
-The final calculation then divides the sum by the count to produce the
-final answer.
-.nf
---
---Create an aggregate for int4 average
---
-create aggregate avg (sfunc1 = int4add, basetype = int4,
- stype1 = int4, sfunc2 = int4inc, stype2 = int4,
- finalfunc = int4div, initcond1 = "0", initcond2 = "0")
-.fi
-.SH "SEE ALSO"
-create function(l),
-remove aggregate(l).