Re: BUG #16107: string_agg looses first item - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #16107: string_agg looses first item
Date
Msg-id 27256.1573512459@sss.pgh.pa.us
Whole thread Raw
In response to BUG #16107: string_agg looses first item  (PG Bug reporting form <noreply@postgresql.org>)
List pgsql-bugs
PG Bug reporting form <noreply@postgresql.org> writes:
> I ran into a scenario where I found results getting dropped from string
> aggregation.  Here's a basic example which reproduces the problem on three
> different servers running PostgreSQL 9.6.6, 10.6, and 11.5, respectively.  I
> don't have an instance running version 12.

> with dataset as (
>     select 'One' "Label", 1 "ID"
>     union
>     select 'Two' "Label", 2 "ID"
>     union
>     select 'Three' "Label", 3 "ID"
> )
> select
>     string_agg(', ', "Label" order by "ID") "String Aggregated Labels",
>     array_agg("Label" order by "ID") "Array Aggregated Labels"
> from
>     dataset
> ;

> Which renders the following result:
> String Aggregated Labels: `, Two, Three, `
> Array Aggregated Labels: `{One,Two,Three}`

I think you've got the string_agg parameters backwards, it should be

regression=# with dataset as (
select 'One' "Label", 1 "ID"
union
select 'Two' "Label", 2 "ID"
union
select 'Three' "Label", 3 "ID"
)
select
string_agg("Label", ', ' order by "ID") "String Aggregated Labels",
array_agg("Label" order by "ID") "Array Aggregated Labels"
from
dataset
;
 String Aggregated Labels | Array Aggregated Labels 
--------------------------+-------------------------
 One, Two, Three          | {One,Two,Three}
(1 row)


            regards, tom lane



pgsql-bugs by date:

Previous
From: PG Bug reporting form
Date:
Subject: BUG #16107: string_agg looses first item
Next
From: Kyotaro Horiguchi
Date:
Subject: Re: [BUG FIX] Uninitialized var fargtypes used.