Aggregatfunktion, akkumulieren mit arrays

CREATE AGGREGATE array_accum
( sfunc = array_append
, stype = anyarray
, initcond = ‘{}’
, basetype = anyelement
– , finalfunc = array_to_string
)
;
wird anstandslos ausgeführt,
CREATE AGGREGATE array_accum
( sfunc = array_append
, stype = anyarray
, initcond = ‘{}’
, basetype = anyelement
, finalfunc = array_to_string
)
;
führt zu “FEHLER: Funktion array_to_string(anyarray) existiert nicht”. :confused:
Warum?

finalfunc soll später ersetzt werden durch eine selbstgeschriebene Funktion, die
das arrray abschließend aufbereitet und einen Textstring ausgibt.

Ach ja, select version() ; führt zu “PostgreSQL 8.1.22 on i686-pc-linux-gnu,
compiled by GCC gcc (GCC) 4.1.2 20070115 (SUSE Linux)”

Vielleicht aktualisierst du dein PostgreSQL mal auf etwas aktuelles, was nicht demnächst seinen Support verliert? :wink:

Der Server, dessen Admin ich nicht bin, befindet sich in einer verflochtenen Produktionsmgebung.
Es ist nicht damit zu rechnen, dass es bald eine Änderung an der Datenbankversion geben wird.
Auch der Admin des Servers kann nicht ohne Rücksprache oder Weisung die Konfiguration ändern.

Wir sind ja auch nicht bei Wünsch-Dir-Was, okay?

array_to_string(anyarray) gibt es nicht, auch nicht in 9.0. Was es gibt, auch in 8.1, ist eine solche Funktion mit 2 Parametern, der 2. ist ein Text, der als Delimiter eingesetzt wird.


Andreas

Ihr wisst schon, das ihr da mittlerweile ein Problem habt?

PostgreSQL Release Support Policy - PostgreSQL Wiki

Du solltest über das “keine baldigen Änderungen” noch einmal ernsthaft nachdenken.