1
0
mirror of https://github.com/postgres/postgres.git synced 2025-08-31 17:02:12 +03:00

First files for reference pages.

This commit is contained in:
Thomas G. Lockhart
1998-05-13 05:34:00 +00:00
parent 2608ec8169
commit 7402eda97c
16 changed files with 4299 additions and 0 deletions

View File

@@ -0,0 +1,300 @@
<REFENTRY ID="SQL-CREATEAGGREGATE-1">
<REFMETA>
<REFENTRYTITLE>
CREATE AGGREGATE
</REFENTRYTITLE>
<REFMISCINFO>SQL - Language Statements</REFMISCINFO>
</REFMETA>
<comment>This entry needs a lot of work, especially some
usefully complex examples. Since I don't yet understand it, I
haven't done this.</comment>
<REFNAMEDIV>
<REFNAME>
CREATE AGGREGATE
</REFNAME>
<REFPURPOSE>
Defines a new aggregate function
</REFPURPOSE>
<REFSYNOPSISDIV>
<REFSYNOPSISDIVINFO>
<DATE>1998-04-15</DATE>
</REFSYNOPSISDIVINFO>
<SYNOPSIS>
CREATE AGGREGATE <REPLACEABLE CLASS="PARAMETER">name</REPLACEABLE> [AS]
([ SFUNC1 = <REPLACEABLE CLASS="PARAMETER">state_transition_function1</REPLACEABLE>
, BASETYPE = <REPLACEABLE CLASS="PARAMETER">data_type</REPLACEABLE>
, STYPE1 = <REPLACEABLE CLASS="PARAMETER">sfunc1_return_type</REPLACEABLE> ]
[, SFUNC2 = <REPLACEABLE CLASS="PARAMETER">state_transition_function2</REPLACEABLE>
, STYPE2 = <REPLACEABLE CLASS="PARAMETER">sfunc2_return_type</REPLACEABLE> ]
[, FINALFUNC = <REPLACEABLE CLASS="PARAMETER">final_function</REPLACEABLE> ]
[, INITCOND1 = <REPLACEABLE CLASS="PARAMETER">initial_condition1</REPLACEABLE> ]
[, INITCOND2 = <REPLACEABLE CLASS="PARAMETER">initial_condition2</REPLACEABLE> ]
)
</SYNOPSIS>
<REFSECT2 ID="R2-SQL-CREATEAGGREGATE-1">
<REFSECT2INFO>
<DATE>1998-04-15</DATE>
</REFSECT2INFO>
<TITLE>
Inputs
</TITLE>
<variablelist>
<varlistentry>
<term></term>
<listitem>
<PARA>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
<REPLACEABLE CLASS="PARAMETER">name</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
The name of an aggregate function to create.
</para>
</LISTITEM>
</varlistentry>
<varlistentry>
<term>
<REPLACEABLE CLASS="PARAMETER">state_transition_function1</REPLACEABLE>
</term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<REPLACEABLE CLASS="PARAMETER">data_type</REPLACEABLE>
</term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<REPLACEABLE CLASS="PARAMETER">sfunc1_return_type</REPLACEABLE>
</term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<REPLACEABLE CLASS="PARAMETER">state-transition_function2</REPLACEABLE>
</term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<REPLACEABLE CLASS="PARAMETER">sfunc2_return_type</REPLACEABLE>
</term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<REPLACEABLE CLASS="PARAMETER">final_function</REPLACEABLE>
</term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<REPLACEABLE CLASS="PARAMETER">initial_condition1</REPLACEABLE>
</term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<REPLACEABLE CLASS="PARAMETER">initial_condition2</REPLACEABLE>
</term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
</variablelist>
</PARA>
</listitem>
</varlistentry>
</variablelist>
</REFSECT2>
<REFSECT2 ID="R2-SQL-CREATEAGGREGATE-2">
<REFSECT2INFO>
<DATE>1998-04-15</DATE>
</REFSECT2INFO>
<TITLE>
Outputs
</TITLE>
<PARA>
</PARA>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
</TERM>
<LISTITEM>
<PARA>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
<ReturnValue>CREATE</ReturnValue>
</TERM>
<LISTITEM>
<PARA>
Message returned if the command completes successfully.
</PARA>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2>
</REFSYNOPSISDIV>
<REFSECT1 ID="R1-SQL-CREATEAGGREGATE-1">
<REFSECT1INFO>
<DATE>1998-04-15</DATE>
</REFSECT1INFO>
<TITLE>
Description
</TITLE>
<PARA>
An aggregate function can use up to three functions, two
state transition functions, X1 and X2:
X1( internal-state1, next-data_item ) ---> next-internal-state1
X2( internal-state2 ) ---> next-internal-state2
and a final calculation function, F:
F(internal-state1, internal-state2) ---> aggregate-value
These functions are required to have the following properties:
<itemizedlist>
<listitem>
<para>
The arguments to state-transition-function-1 must
be (stype1,basetype), and its return value must be
stype1.
</para>
</listitem>
<listitem>
<para>
The argument and return value of state-transition-
function-2 must be stype2.
</para>
</listitem>
<listitem>
<para>
The arguments to the final-calculation-function
must be (stype1,stype2), and its return value must
be a POSTGRES base type (not necessarily the same
as basetype.
</para>
</listitem>
<listitem>
<para>
The final-calculation-function should be specified
if and only if both state-transition functions are
specified.
</para
</listitem>
</itemizedlist>
</PARA>
<para>
Note that it is possible to specify aggregate functions
that have varying combinations of state and final functions.
For example, the "count" aggregate requires sfunc2
(an incrementing function) but not sfunc1 or finalfunc,
whereas the "sum" aggregate requires sfunc1 (an addition
function) but not sfunc2 or finalfunc and the "average"
aggregate requires both of the above state functions as
well as a finalfunc (a division function) to produce its
answer. In any case, at least one state function must be
defined, and any sfunc2 must have a corresponding initcond2.
</para>
<para>
Aggregates also require two initial conditions, one for
each transition function. These are specified and stored
in the database as fields of type text.
</para>
<REFSECT2 ID="R2-SQL-CREATEAGGREGATE-3">
<REFSECT2INFO>
<DATE>1998-04-15</DATE>
</REFSECT2INFO>
<TITLE>
Notes
</TITLE>
<PARA>
CREATE AGGREGATE function is a PostgreSQL language extension.
</PARA>
<para>
Refer to DROP AGGREGATE function to drop aggregate functions.
</para>
</REFSECT2>
<REFSECT1 ID="R1-SQL-CREATEAGGREGATE-2">
<TITLE>
Usage
</TITLE>
<PARA>
</PARA>
<ProgramListing>
</ProgramListing>
</REFSECT1>
<REFSECT1 ID="R1-SQL-CREATEAGGREGATE-3">
<TITLE>
Compatibility
</TITLE>
<PARA>
</PARA>
<REFSECT2 ID="R2-SQL-CREATEAGGREGATE-4">
<REFSECT2INFO>
<DATE>1998-04-15</DATE>
</REFSECT2INFO>
<TITLE>
SQL92
</TITLE>
<PARA>
There is no CREATE AGGREGATE function on SQL92.
</PARA>
</REFENTRY>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"../reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:"/usr/lib/sgml/catalog"
sgml-local-ecat-files:nil
End:
-->