BUG #8629: Strange resultset when using CTE or a subselect
| От | jonathan.camile@gmail.com |
|---|---|
| Тема | BUG #8629: Strange resultset when using CTE or a subselect |
| Дата | |
| Msg-id | E1VktOG-0004bJ-16@wrigleys.postgresql.org обсуждение исходный текст |
| Ответы |
Re: BUG #8629: Strange resultset when using CTE or a subselect
Re: BUG #8629: Strange resultset when using CTE or a subselect |
| Список | pgsql-bugs |
The following bug has been logged on the website:
Bug reference: 8629
Logged by: Jonathan Camile
Email address: jonathan.camile@gmail.com
PostgreSQL version: 9.2.4
Operating system: Ubuntu 10.04.4 LTS
Description:
Hey folks!
I have a bit of an issue with a query and I don't understand why.
It might be not very elegant but here it is, when I use the following query
the last result will always be the same whatsoever the values of LIMIT and
OFFSET.
```
WITH filtred_table AS (
SELECT c.id
FROM my_table t
WHERE t.enabled = true
AND (t.hdata->'field')::integer = ANY ('{16788}')
)
SELECT my_table.id
FROM my_table
WHERE mycontract.id IN (SELECT filtred_table.id FROM filtred_table)
ORDER BY my_table.hdata->'field' DESC
LIMIT 5
OFFSET 0
```
Returns
```
392200574
367046368
375126026
407430954
385242163
```
```
WITH filtred_table AS (
SELECT c.id
FROM my_table t
WHERE t.enabled = true
AND (t.hdata->'field')::integer = ANY ('{16788}')
)
SELECT my_table.id
FROM my_table
WHERE mycontract.id IN (SELECT filtred_table.id FROM filtred_table)
ORDER BY my_table.hdata->'field' DESC
LIMIT 5
OFFSET 5
```
Returns
```
186939712
350754246
408507328
381550486
385242163
```
If I don't `ORDER BY` the field used to filter the issue doesn't happen.
Thanks.
В списке pgsql-bugs по дате отправления: