| From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> | 
|---|---|
| To: | kouber(at)saparev(dot)com | 
| Cc: | pgsql-bugs(at)postgresql(dot)org | 
| Subject: | Re: BUG #6483: Rows being evaluated, although being outside the LIMIT / OFFSET boundaries | 
| Date: | 2012-02-22 18:58:43 | 
| Message-ID: | CAFj8pRBFVec_RuoQ-4CrYPjcq6zpdB+HpkFCm+9-HhN3j-wc2A@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-bugs | 
Hello
this is not bug
"OFFSET" doesn't mean go to line n - it means - first n lines don't
send to client.
Regards
Pavel Stehule
2012/2/22  <kouber(at)saparev(dot)com>:
> The following bug has been logged on the website:
>
> Bug reference:      6483
> Logged by:          Kouber Saparev
> Email address:      kouber(at)saparev(dot)com
> PostgreSQL version: 9.1.2
> Operating system:   Debian
> Description:
>
> The rows of a SELECT statement are being evaluated, even when not shown in
> the final result, when using an OFFSET > 0. Although I know that LIMIT is
> imposed just before flushing the result set to the client, this behaviour
> seems quite confusing, especially when using DML statements in the field
> list of the SELECT itself.
>
> CREATE TABLE xxx (id INT);
>
> CREATE FUNCTION f(xxx) RETURNS VOID AS $$
> BEGIN
>  -- imagine some DML statements here --
>
>  RAISE NOTICE '%', $1.id;
> END;
> $$ LANGUAGE PLPGSQL;
>
> INSERT INTO xxx VALUES (1), (2), (3), (4), (5);
>
>
> -- shows a notice for 1 and 2
> SELECT x.id, f(x) FROM xxx as x LIMIT 2;
>
>
> -- shows a notice for 1, 2, 3 and 4
> SELECT x.id, f(x) FROM xxx as x LIMIT 2 OFFSET 2;
>
>
> --
> Sent via pgsql-bugs mailing list (pgsql-bugs(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-bugs
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2012-02-22 20:16:40 | Re: BUG #6482: Service terminates executing "With ... as ... UPDATE" query | 
| Previous Message | kouber | 2012-02-22 18:53:19 | BUG #6483: Rows being evaluated, although being outside the LIMIT / OFFSET boundaries |