Re: BUG #8629: Strange resultset when using CTE or a subselect - Mailing list pgsql-bugs
| From | jonathan.camile |
|---|---|
| Subject | Re: BUG #8629: Strange resultset when using CTE or a subselect |
| Date | |
| Msg-id | 1385459415878-5780294.post@n5.nabble.com Whole thread Raw |
| In response to | Re: BUG #8629: Strange resultset when using CTE or a subselect (David Johnston <polobo@yahoo.com>) |
| Responses |
Re: BUG #8629: Strange resultset when using CTE or a subselect
|
| List | pgsql-bugs |
Hi David,
Thanks for your reply.
Here a query to create table with which I can reproduce this behavior :
CREATE TABLE public.testme AS SELECT generate_series(134800, 348008) as id,
trunc(random() * 9 + 1) as status;
Then if you play with the following query, you will reproduce it.
WITH filtred_test AS (
SELECT c.id
FROM public.testme c
WHERE c.status = ANY ('{5}')
)
SELECT mytest.id, mytest.status
FROM public.testme mytest
WHERE mytest.id IN (SELECT filtred_test.id FROM filtred_test)
ORDER BY mytest.status DESC
OFFSET 35
LIMIT 10
I always have the same last result regardless of the offset or the limit I
use.
If you have any clue about what's wrong I'll be very glad.
By advance, thanks.
David Johnston wrote
>
> jonathan.camile wrote
>> The following bug has been logged on the website:
>>
>> Bug reference: 8629
>> Logged by: Jonathan Camile
>> Email address:
>> jonathan.camile@
>> 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.
> When debugging ORDER BY/LIMIT it is good practice to output the columns
> being ordered, and others if applicable, and omit the LIMIT (or makes it
> considerably larger than needed) to see what raw table data the LIMIT
> clause is seeing. At minimum you need; "SELECT my_table.id,
> my_table.hdata->'field' FROM ..." for the output and either remove the
> limit or show at least 30 records initially.
>
>
> The small subset of the data you have provided is insufficient to
> determine whether you are making bad assumptions about your data or
> whether there is actually a problem. The fact that it is not
> self-contained makes debugging difficult as well.
>
> Note that LIMIT and OFFSET can appear in either order. While there are
> some parts of a select statement for which the syntax dictates an order
> these do not appear to be in the group. If they could not then LIMIT 5
> OFFSET 100 would make no sense...
David Johnston wrote
>
> jonathan.camile wrote
>> The following bug has been logged on the website:
>>
>> Bug reference: 8629
>> Logged by: Jonathan Camile
>> Email address:
>> jonathan.camile@
>> 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.
> When debugging ORDER BY/LIMIT it is good practice to output the columns
> being ordered, and others if applicable, and omit the LIMIT (or makes it
> considerably larger than needed) to see what raw table data the LIMIT
> clause is seeing. At minimum you need; "SELECT my_table.id,
> my_table.hdata->'field' FROM ..." for the output and either remove the
> limit or show at least 30 records initially.
>
>
> The small subset of the data you have provided is insufficient to
> determine whether you are making bad assumptions about your data or
> whether there is actually a problem. The fact that it is not
> self-contained makes debugging difficult as well.
>
> Note that LIMIT and OFFSET can appear in either order. While there are
> some parts of a select statement for which the syntax dictates an order
> these do not appear to be in the group. If they could not then LIMIT 5
> OFFSET 100 would make no sense...
David Johnston wrote
>
> jonathan.camile wrote
>> The following bug has been logged on the website:
>>
>> Bug reference: 8629
>> Logged by: Jonathan Camile
>> Email address:
>> jonathan.camile@
>> 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.
> When debugging ORDER BY/LIMIT it is good practice to output the columns
> being ordered, and others if applicable, and omit the LIMIT (or makes it
> considerably larger than needed) to see what raw table data the LIMIT
> clause is seeing. At minimum you need; "SELECT my_table.id,
> my_table.hdata->'field' FROM ..." for the output and either remove the
> limit or show at least 30 records initially.
>
>
> The small subset of the data you have provided is insufficient to
> determine whether you are making bad assumptions about your data or
> whether there is actually a problem. The fact that it is not
> self-contained makes debugging difficult as well.
>
> Note that LIMIT and OFFSET can appear in either order. While there are
> some parts of a select statement for which the syntax dictates an order
> these do not appear to be in the group. If they could not then LIMIT 5
> OFFSET 100 would make no sense...
--
View this message in context:
http://postgresql.1045698.n5.nabble.com/BUG-8629-Strange-resultset-when-using-CTE-or-a-subselect-tp5780187p5780294.html
Sent from the PostgreSQL - bugs mailing list archive at Nabble.com.
pgsql-bugs by date: