Lists: | pgsql-bugs |
---|
From: | PG Bug reporting form <noreply(at)postgresql(dot)org> |
---|---|
To: | pgsql-bugs(at)lists(dot)postgresql(dot)org |
Cc: | lukas(dot)eder(at)gmail(dot)com |
Subject: | BUG #15262: "unexpected end of tuplestore" error when using new GROUPS window function clause |
Date: | 2018-07-06 09:04:46 |
Message-ID: | 153086788677.17476.8002640580496698831@wrigleys.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-bugs |
The following bug has been logged on the website:
Bug reference: 15262
Logged by: Lukas Eder
Email address: lukas(dot)eder(at)gmail(dot)com
PostgreSQL version: 11beta2
Operating system: Debian 6.3.0-18+deb9u1
Description:
This error can be reproduced easily as follows
postgres=# SELECT count(*) OVER (GROUPS 1 PRECEDING) FROM (VALUES (1),
(2), (2)) t(v);
ERROR: unexpected end of tuplestore
Notice the missing ORDER BY clause in the window specification. This works
as expected:
postgres=# SELECT count(*) OVER (ORDER BY v GROUPS 1 PRECEDING) FROM
(VALUES (1), (2), (2)) t(v);
count
-------
1
3
3
(3 rows)
I used the latest 11 beta 2 version on Docker:
postgres=# select version();
version
-----------------------------------------------------------------------------------------------------------------------------------------
PostgreSQL 11beta2 (Debian 11~beta2-1.pgdg90+1) on x86_64-pc-linux-gnu,
compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit
(1 row)
From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | lukas(dot)eder(at)gmail(dot)com |
Cc: | pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | Re: BUG #15262: "unexpected end of tuplestore" error when using new GROUPS window function clause |
Date: | 2018-07-09 22:29:34 |
Message-ID: | 13420.1531175374@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-bugs |
=?utf-8?q?PG_Bug_reporting_form?= <noreply(at)postgresql(dot)org> writes:
> This error can be reproduced easily as follows
> postgres=# SELECT count(*) OVER (GROUPS 1 PRECEDING) FROM (VALUES (1),
> (2), (2)) t(v);
> ERROR: unexpected end of tuplestore
In an assert-enabled build I get an assert failure from this. I think
this is the same problem Masahiko Sawada noted in
/message-id/CAD21AoDrWqycq-w_+Bx1cjc+YUhZ11XTj9rfxNiNDojjBx8Fjw@mail.gmail.com
and as in that thread, I think what we really should be doing here is
giving a parse error. What would you expect GROUPS mode to do without
an ORDER BY to define the grouping?
regards, tom lane
From: | Lukas Eder <lukas(dot)eder(at)gmail(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | Re: BUG #15262: "unexpected end of tuplestore" error when using new GROUPS window function clause |
Date: | 2018-07-10 07:29:51 |
Message-ID: | CAB4ELO6eoBx=PcwuFkHFq-_diRK-opcmZc5V9avhFZmxyWzB8A@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-bugs |
Am Di., 10. Juli 2018 um 00:29 Uhr schrieb Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>:
> I think what we really should be doing here is giving a parse error.
Yes, I agree. That's also what the SQL standard says.
ISO/IEC 9075-2:2016(E)
7.15 <window clause>
13 c) If GROUPS is specified, then:
i) Either WDEF shall contain a <window order clause>, or WDEF shall specify
an <existing window name> that identifies a window structure descriptor
that includes a window ordering clause.
> What would you expect GROUPS mode to do without an ORDER BY to define the
> grouping?
I had no expectations, was just playing around with the new syntax.