From: | Vik Fearing <vik(dot)fearing(at)dalibo(dot)com> |
---|---|
To: | jp(dot)deplaix(at)gmail(dot)com, pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: BUG #8696: Type-checking seems to fail on UNIONs with arrays |
Date: | 2013-12-23 01:21:48 |
Message-ID: | 52B7902C.5050405@dalibo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
On 12/23/2013 01:47 AM, jp(dot)deplaix(at)gmail(dot)com wrote:
> (SELECT NULL AS test)
> UNION
> (SELECT NULL AS test)
> UNION
> (SELECT array_agg(t.name) AS test FROM foo AS t)
> ;
>
>
> fails with:
> ERROR: UNION types text and text[] cannot be matched
>
>
> Is it (as I suppose) a bug or a well known limitation ?
It's a well known limitation (I knew what was coming before I read it),
but I can't seem to find the right keywords to dig up a reference about
it at the moment.
It has nothing to do with arrays, but the fact that you have *two*
unknown types before a known one.
To wit:
vik=# select null union select null union select 1;
ERROR: UNION types text and integer cannot be matched
LINE 1: select null union select null union select 1;
The workaround is to provide the type in either the first or second
union-ed query:
vik=# select null::integer union select null union select 1;
int4
----
1
(2 rows)
vik=# select null union select null::integer union select 1;
?column?
--------
1
(2 rows)
PS: Interesting that the column name changed with those two queries...
--
Vik
From | Date | Subject | |
---|---|---|---|
Next Message | Tomonari Katsumata | 2013-12-23 06:15:17 | Re: BUG #8686: Standby could not restart. |
Previous Message | jp.deplaix | 2013-12-23 00:47:16 | BUG #8696: Type-checking seems to fail on UNIONs with arrays |