jak w PostgreSQL 8.3 odczytać rozmiar tablicy? W 8.4 mamy już funkcję array_length(), ale w 8.3 jej nie ma. Albo inaczej: mając ciąg:
Kod
a/b/c
chciałbym pobrać "poziom zagłębienia" czyli ilość elementów po rozdzieleniu po "/" (w tym przypadku 3). Przeglądałem funkcje na stringach, ale również nie znalazłem niczego pomocnego.
Pozdrawiam,
pion
// Edit:
Na razie napisałem sobie taką funkcję, może komuś się przyda:
CREATE OR REPLACE FUNCTION f_array_length(_array anyarray) RETURNS integer AS $BODY$DECLARE length INTEGER; BEGIN length := 0; FOR i IN COALESCE(ARRAY_LOWER(_array, 1), 0)..COALESCE(ARRAY_UPPER(_array, 1), -1) LOOP length := length + 1; END LOOP; RETURN length; END;$BODY$ LANGUAGE 'plpgsql' VOLATILE COST 100;
Olałem drugi parametr bo nie jest mi potrzebny.