Re: FETCH FIRST clause WITH TIES option

Alvaro Herrera <alvherre@2ndquadrant.com>

From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Andres Freund <andres@anarazel.de>
Cc: Surafel Temesgen <surafel3000@gmail.com>, Tomas Vondra <tomas.vondra@2ndquadrant.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>, Andrew Gierth <andrew@tao11.riddles.org.uk>
Date: 2020-04-08T00:51:52Z
Lists: pgsql-hackers
Hello

On 2020-Apr-07, Andres Freund wrote:

> On 2020-04-07 16:36:54 -0400, Alvaro Herrera wrote:
> > Pushed, with some additional changes.
> 
> This triggers a new warning for me (gcc-10):
> /home/andres/src/postgresql/src/backend/executor/nodeLimit.c: In function ‘ExecLimit’:
> /home/andres/src/postgresql/src/backend/executor/nodeLimit.c:136:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
>   136 |    if (ScanDirectionIsForward(direction))
>       |       ^
> /home/andres/src/postgresql/src/backend/executor/nodeLimit.c:216:3: note: here
>   216 |   case LIMIT_WINDOWEND_TIES:
>       |   ^~~~
> 
> I've not looked at it in any sort of detail, but it looks like it might
> be a false positive, with the "fall-through" comment not being
> sufficient to quiesce the compiler?

It's on purpose, yeah, but I can understand the compiler not getting it.

> Cosmetically I would agree that falling through to the next case" a few
> blocks deep inside a case: isn't the prettiest...

That's true ... maybe a fix would be to split that stuff to a
subroutine?

Thanks

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Commits

  1. Support FETCH FIRST WITH TIES