Thread: BUG #15262: "unexpected end of tuplestore" error when using newGROUPS window function clause
BUG #15262: "unexpected end of tuplestore" error when using newGROUPS window function clause
From
PG Bug reporting form
Date:
The following bug has been logged on the website: Bug reference: 15262 Logged by: Lukas Eder Email address: lukas.eder@gmail.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)
Re: BUG #15262: "unexpected end of tuplestore" error when using new GROUPS window function clause
From
Tom Lane
Date:
=?utf-8?q?PG_Bug_reporting_form?= <noreply@postgresql.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 https://www.postgresql.org/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
Re: BUG #15262: "unexpected end of tuplestore" error when using newGROUPS window function clause
From
Lukas Eder
Date:
Am Di., 10. Juli 2018 um 00:29 Uhr schrieb Tom Lane <tgl@sss.pgh.pa.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.