mirror of
https://github.com/postgres/postgres.git
synced 2025-06-25 01:02:05 +03:00
Note that the example aggregate array_accum is comparable to the now
built-in array_agg. Per suggestion from Robert Haas.
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/xaggr.sgml,v 1.35 2007/02/01 00:28:18 momjian Exp $ -->
|
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/xaggr.sgml,v 1.36 2008/11/20 21:10:44 tgl Exp $ -->
|
||||
|
||||
<sect1 id="xaggr">
|
||||
<title>User-Defined Aggregates</title>
|
||||
@ -132,7 +132,10 @@ CREATE AGGREGATE array_accum (anyelement)
|
||||
</programlisting>
|
||||
|
||||
Here, the actual state type for any aggregate call is the array type
|
||||
having the actual input type as elements.
|
||||
having the actual input type as elements. The behavior of the aggregate
|
||||
is to concatenate all the inputs into an array of that type.
|
||||
(Note: the built-in aggregate <function>array_agg</> provides similar
|
||||
functionality, with better performance than this definition would have.)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -149,14 +152,14 @@ SELECT attrelid::regclass, array_accum(attname)
|
||||
pg_tablespace | {spcname,spcowner,spclocation,spcacl}
|
||||
(1 row)
|
||||
|
||||
SELECT attrelid::regclass, array_accum(atttypid)
|
||||
SELECT attrelid::regclass, array_accum(atttypid::regtype)
|
||||
FROM pg_attribute
|
||||
WHERE attnum > 0 AND attrelid = 'pg_tablespace'::regclass
|
||||
GROUP BY attrelid;
|
||||
|
||||
attrelid | array_accum
|
||||
---------------+-----------------
|
||||
pg_tablespace | {19,26,25,1034}
|
||||
---------------+---------------------------
|
||||
pg_tablespace | {name,oid,text,aclitem[]}
|
||||
(1 row)
|
||||
</programlisting>
|
||||
</para>
|
||||
|
Reference in New Issue
Block a user