From: | Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Fix for FETCH FIRST syntax problems |
Date: | 2018-05-19 22:33:22 |
Message-ID: | 877enz476l.fsf@news-spur.riddles.org.uk |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Per bug #15200, our support for sql2008 FETCH FIRST syntax is incomplete
to the extent that it should be regarded as a bug; the spec quite
clearly allows parameters/host variables in addition to constants, but
we don't.
Attached is a draft patch for fixing that, which additionally fixes the
ugly wart that OFFSET <x> ROW/ROWS and FETCH FIRST [<x>] ROW/ROWS ONLY
had very different productions for <x>; both now accept c_expr there.
Shift/reduce conflict is avoided by taking advantage of the fact that
ONLY is a fully reserved word.
I've checked that this change would not make it any harder to add
(post-2008 features) WITH TIES or PERCENT in the event that someone
wants to do that.
I think a case can be made that this should be backpatched; thoughts?
(While I can't find any visible change for existing working queries, one
change that does occur is that FETCH FIRST -1 ROWS ONLY now returns a
different error message; but that was already inconsistent with the
error from OFFSET -1 ROWS.)
--
Andrew (irc:RhodiumToad)
Attachment | Content-Type | Size |
---|---|---|
ff.patch | text/x-patch | 3.7 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2018-05-19 22:57:55 | Re: Fix for FETCH FIRST syntax problems |
Previous Message | Tom Lane | 2018-05-19 22:31:54 | printf("%lf",...) isn't actually portable |