Re: TidScan needs handling of a corner cases

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: TidScan needs handling of a corner cases
Дата
Msg-id 22315.1209589438@sss.pgh.pa.us
обсуждение исходный текст
Ответ на TidScan needs handling of a corner cases  ("Gurjeet Singh" <singh.gurjeet@gmail.com>)
Список pgsql-hackers
"Gurjeet Singh" <singh.gurjeet@gmail.com> writes:
> postgres=# explain analyze select ctid, * from pg_class where ctid in (
> '(6,1)' );
> ERROR:  could not read block 6 of relation 1663/11511/1259: read only 0 of
> 8192 bytes

I was about to say that throwing an error for this is just fine, but on
closer investigation we didn't throw an error before 8.3; the behavioral
change is because mdread() now throws an error for out-of-bounds read.
So for consistency with historical behavior this probably needs to be
fixed.

>     Also, it is known that 0 is not a valid row-offset in the block, but the
> tid input function accepts this value (it rejects -ve values). For the same
> setup:

Not sure what you think needs to be fixed in this case?  Again,
backwards compatibility seems a reason not to change it; and I sure
don't see why you'd want to throw an error for this case but not the
other one.
        regards, tom lane


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Martijn van Oosterhout
Дата:
Сообщение: Re: Protection from SQL injection
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Protection from SQL injection