Dal manuale di precisione :
Quindi array_append
restituisce un array e devi assegnare quel valore di ritorno a qualcosa. Inoltre, penso che tu voglia array_to_string
alla fine della tua funzione, non array_to_text
. E primes
è un array quindi vuoi array_append(primes, mycount)
piuttosto che provare ad aggiungere una voce in primes
.
CREATE OR REPLACE FUNCTION primes (IN integer) RETURNS TEXT AS $$
DECLARE
counter INTEGER = $1;
primes int [];
mycount int;
BEGIN
WHILE counter != 0 LOOP
mycount := count(primes);
primes := array_append(primes, mycount);
counter := counter - 1;
END LOOP;
RETURN array_to_string(primes, ',');
END;
$$ LANGUAGE 'plpgsql';
Non so cosa intendi mycount := count(primes);
da fare, forse volevi dire mycount := array_length(primes, 1);
in modo da ottenere una sequenza di interi consecutivi in primes
.