John Hansen posted a C implementaion of the UNNEST function that does this. It is in the archives here: http://archives.postgresql.org/pgsql-hackers/2004-11/msg00158.php and http://archives.postgresql.org/pgsql-hackers/2004-11/msg00327.php . I've been using it for the last few months and it's been working great for me. On Mon, 17 Jan 2005 14:03:56 +0000, laurie.burrow@xxxxxxxxxxxxxxxxxxxx <laurie.burrow@xxxxxxxxxxxxxxxxxxxx> wrote: > I have a function to convert a single dimension array to a row set > > CREATE OR REPLACE FUNCTION arraytotable(anyarray) > RETURNS SETOF anyelement AS > ' > DECLARE > > theData ALIAS FOR $1; > count integer; > start integer; > > BEGIN > start :=array_lower(theData,1); > count :=array_upper(theData,1); > IF start is not null THEN > FOR i IN start..count LOOP > RETURN NEXT theData[i]; > END LOOP; > END IF; > > RETURN; > END > ' > LANGUAGE 'plpgsql' IMMUTABLE STRICT; > > Is there a more efficient way I can do this and are there any user defined > C functions available for this sort of array manipulation? > > Thanks for any help > Laurie > > :.________________ > CONFIDENTIALITY : This e-mail and any attachments are confidential and > may be privileged. If you are not a named recipient, please notify the > sender immediately and do not disclose the contents to another person, use > it for any purpose or store or copy the information in any medium. > > ---------------------------(end of broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/docs/faqs/FAQ.html > -- Mike Rylander mrylander@xxxxxxxxx GPLS -- PINES Development Database Developer http://open-ils.org ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://archives.postgresql.org