Behavior of "OFFSET -1"
| От | Tom Lane |
|---|---|
| Тема | Behavior of "OFFSET -1" |
| Дата | |
| Msg-id | 28520.1406047777@sss.pgh.pa.us обсуждение исходный текст |
| Ответы |
Re: Behavior of "OFFSET -1"
Re: Behavior of "OFFSET -1" |
| Список | pgsql-hackers |
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)
returntrue; /* 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?
regards, tom lane
В списке pgsql-hackers по дате отправления: