Re: BUG #1629: subquery IN returns incorrect results

Поиск
Список
Период
Сортировка
От Russell Smith
Тема Re: BUG #1629: subquery IN returns incorrect results
Дата
Msg-id 200504280101.01735.mr-russ@pws.com.au
обсуждение исходный текст
Ответ на BUG #1629: subquery IN returns incorrect results  ("mike g" <mike@thegodshalls.com>)
Ответы Re: BUG #1629: subquery IN returns incorrect results  ("Mike G." <mike@thegodshalls.com>)
Список pgsql-bugs
On Wed, 27 Apr 2005 06:23 am, mike g wrote:
>=20
> The following bug has been logged online:
>=20
> Bug reference: =A0 =A0 =A01629
> Logged by: =A0 =A0 =A0 =A0 =A0mike g
> Email address: =A0 =A0 =A0mike@thegodshalls.com
> PostgreSQL version: 8.0
> Operating system: =A0 Windows 2000
> Description: =A0 =A0 =A0 =A0subquery IN returns incorrect results
> Details:=20
>=20
> If I run this query:
> SELECT distinct CAST(newprogram as varchar(60)) FROM
> =A0(SELECT t.propnbr,=20
> =A0 =A0 =A0CASE WHEN t.propname =3D =A0'A' THEN 'Am'
> =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'B' THEN 'AMm'
> =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'C' THEN 'I might vanish'
> =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'D' THEN 'Bem'
> =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'E' THEN 'Cm'
> =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'F' THEN 'Clm'
> =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'G' THEN 'Com'
> =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'H' THEN 'Dm'
> =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'I' THEN 'Er'
> =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'J' THEN 'Err'
> =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'K' THEN 'Em'
> =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'L' THEN 'Fm'
> =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'M' THEN 'Fm'
> =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'N' THEN 'Gm'
> =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'O' THEN 'Hm'
> =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'P' THEN 'Dm'
> =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'Q' THEN 'Lm'
> =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'R' THEN 'Nm'
> =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'S' THEN 'Om'
> =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'T' THEN 'Err'
> =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'U' THEN 'Rm'
> =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'V' THEN 'Tm'
> =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'W' THEN 'Tm'
> =A0 =A0 =A0 =A0 =A0 ELSE t.propname
> =A0 =A0 =A0 END as newprogram
> =A0 =A0FROM example_data t
> =A0 =A0INNER JOIN example_data2 b ON t.propco =3D b.propco
> =A0WHERE
> =A0upper(b.serviced) =3D 'STATE1' and
> =A0t.propname =A0in ('A',
> 'B'

Unless this is a copy/paste error, you have missed a , in your query. =A0Wh=
ich effectively turns it into
('A', 'B''C', 'D' ...

Which mean that switching those two will give incorrect results. One will b=
e missing C, and it will be included with B,
and the other D for the same reason.

> 'C', =A0--switch me
> 'D', =A0-- and switch me
> 'E',
> 'F',
[snip]

Regards

Russell Smith.

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: BUG #1629: subquery IN returns incorrect results
Следующее
От: Shelby Cain
Дата:
Сообщение: Re: BUG #1630: Wrong conversion in to_date() function. See example.