Re: Behavior of "OFFSET -1"
От | Robert Haas |
---|---|
Тема | Re: Behavior of "OFFSET -1" |
Дата | |
Msg-id | CA+TgmoYYSo_=y8qCQfyp3rKmH1zK04VwGM+N=+U8rXDV5bVO=A@mail.gmail.com обсуждение исходный текст |
Ответ на | Behavior of "OFFSET -1" (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
On Tue, Jul 22, 2014 at 12:49 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Before 9.3, you got an error from this: > > regression=# select * from tenk1 offset -1; > ERROR: OFFSET must not be negative > > But 9.3 and up ignore the negative OFFSET. This seems to be a thinko in > my commit 1a1832eb. limit_needed() thinks it can discard the Limit plan > node altogether, which of course prevents nodeLimit.c from complaining: > > /* Executor would treat less-than-zero same as zero */ > if (offset > 0) > return true; /* OFFSET with a positive value */ > > I don't recall the reasoning behind that comment for sure, but I imagine > I examined the behavior of ExecLimit() and failed to notice that there > was an error check in recompute_limits(). > > This seems to me to be a clear bug: we should reinstate the former > behavior by tightening this check so it only discards OFFSET with a > constant value of exactly 0. Anyone think differently? Not I. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: