On Thu, Oct 07, 2021 at 04:24:16PM -0400, Tom Lane wrote: > rir <rir...@comcast.net> writes: > > On Thu, Oct 07, 2021 at 07:58:47AM +0200, Laurenz Albe wrote: > >> Can you think of a way to modify the syntax diagram so that it > >> expresses that and still remains comprehensible? > > > For myself, > > 'FETCH [ <direction> [ FROM | IN ] ] <cursor_name>' > > clearly indicates that 'direction' is optional.
> > FETCH FROM cursor_name > > which in fact is legal. I think however that we could make it read > > FETCH [ <direction> ] [ FROM | IN ] <cursor_name>' > > and have a correct description without requiring <direction> > to be allowed to be empty. > BTW, as it stands, the diagram is ambiguous > because there are two ways to parse > > FETCH cursor_name > > ... is <direction> present but empty, or omitted altogether? I am confident you know what you mean, but I don't. At the _parsing_ stage how is any distinction between emptiness and omission? I can correct the patch to reflect the rightness of FETCH [ <direction> ] [ FROM | IN ] <cursor_name> in the sgml file and at least one misquote I have found. Not being here that often, I will wait to see this conversation resolve. Rob