diff options
| author | Itagaki Takahiro | 2010-02-01 03:14:45 +0000 |
|---|---|---|
| committer | Itagaki Takahiro | 2010-02-01 03:14:45 +0000 |
| commit | 9ea9918e37689fbc9ed43532b8828652b5ea90cd (patch) | |
| tree | f512d7e150549dd403f0266374d7dbcfa460d8ed /src/test | |
| parent | ee3a81f0a03d0da128689df92a84a24a337645ec (diff) | |
Add string_agg aggregate functions. The one argument version concatenates
the input values into a string. The two argument version also does the same
thing, but inserts delimiters between elements.
Original patch by Pavel Stehule, reviewed by David E. Wheeler and me.
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/regress/expected/aggregates.out | 31 | ||||
| -rw-r--r-- | src/test/regress/sql/aggregates.sql | 7 |
2 files changed, 38 insertions, 0 deletions
diff --git a/src/test/regress/expected/aggregates.out b/src/test/regress/expected/aggregates.out index 9669a52fbe..2460d9dfd6 100644 --- a/src/test/regress/expected/aggregates.out +++ b/src/test/regress/expected/aggregates.out @@ -799,3 +799,34 @@ select aggfns(distinct a,a,c order by a,b) ERROR: in an aggregate with DISTINCT, ORDER BY expressions must appear in argument list LINE 1: select aggfns(distinct a,a,c order by a,b) ^ +-- string_agg tests +select string_agg(a) from (values('aaaa'),('bbbb'),('cccc')) g(a); + string_agg +-------------- + aaaabbbbcccc +(1 row) + +select string_agg(a,',') from (values('aaaa'),('bbbb'),('cccc')) g(a); + string_agg +---------------- + aaaa,bbbb,cccc +(1 row) + +select string_agg(a,',') from (values('aaaa'),(null),('bbbb'),('cccc')) g(a); + string_agg +---------------- + aaaa,bbbb,cccc +(1 row) + +select string_agg(a,',') from (values(null),(null),('bbbb'),('cccc')) g(a); + string_agg +------------ + bbbb,cccc +(1 row) + +select string_agg(a,',') from (values(null),(null)) g(a); + string_agg +------------ + +(1 row) + diff --git a/src/test/regress/sql/aggregates.sql b/src/test/regress/sql/aggregates.sql index 18f2e57b72..daa89167a2 100644 --- a/src/test/regress/sql/aggregates.sql +++ b/src/test/regress/sql/aggregates.sql @@ -355,3 +355,10 @@ select aggfns(distinct a,b,c order by a,b,i,c) from (values (1,1,'foo')) v(a,b,c), generate_series(1,2) i; select aggfns(distinct a,a,c order by a,b) from (values (1,1,'foo')) v(a,b,c), generate_series(1,2) i; + +-- string_agg tests +select string_agg(a) from (values('aaaa'),('bbbb'),('cccc')) g(a); +select string_agg(a,',') from (values('aaaa'),('bbbb'),('cccc')) g(a); +select string_agg(a,',') from (values('aaaa'),(null),('bbbb'),('cccc')) g(a); +select string_agg(a,',') from (values(null),(null),('bbbb'),('cccc')) g(a); +select string_agg(a,',') from (values(null),(null)) g(a); |
