This returns 5 rows:
CREATE OR REPLACE FUNCTION unnest(anyarray)
RETURNS SETOF anyelement as $$
SELECT $1[i] FROM generate_series(1,4) g(i)
$$ LANGUAGE sql;
select unnest(string_to_array('23,2,3,4,5',','));
simply changing name returns 4 rows:
CREATE OR REPLACE FUNCTION unnest21(anyarray)
RETURNS SETOF anyelement as $$
SELECT $1[i] FROM generate_series(1,4) g(i)
$$ LANGUAGE sql;
select unnest21(string_to_array('23,2,3,4,5',','));
Andrus.
----- Original Message -----
From: "Tom Lane" <tgl@xxxxxxxxxxxxx>
To: "Andrus" <kobruleht2@xxxxxx>
Cc: "Pavel Stehule" <pavel.stehule@xxxxxxxxx>;
<pgsql-general@xxxxxxxxxxxxxx>
Sent: Monday, March 29, 2010 6:00 PM
Subject: Re: Splitting text column to multiple rows
"Andrus" <kobruleht2@xxxxxx> writes:
Pavel,
pavel@postgres:5481=# select unnest(string_to_array('23,2,3,4,5',','));
unnest
--------
23
2
3
4
(4 rows)
Result is wrong: it must contain 5 rows.
Surely that's a copy-and-paste mistake? I get 5 rows from this example.
regards, tom lane
--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general