------=_Part_3056_30409245.1209578061172
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Hi All,
I noticed that the TidScan fails to identify when the requested block
is
not in the relation. Consider this (pg_class has 6 blocks):
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
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:
postgres=# explain analyze select ctid, * from pg_class where ctid in (
'(6,0)' );
QUERY
PLAN
----------------------------------------------------------------------------------------------------
Tid Scan on pg_class (cost=0.00..4.01 rows=1 width=211) (actual
time=0.009..0.009 rows=0 loops=1)
TID Cond: (ctid = '(6,0)'::tid)
Total runtime: 0.130 ms
(3 rows)
Can we safely fix these? First one by ignoring the request if
requested_block >= RelationGetNumberOfBlocks(), and second one by
accepting
only non-zero positive values in the tid input function.
Best regards
--
gurjeet[.singh]@[EMAIL PROTECTED]
gmail | hotmail | indiatimes | yahoo }.com
EnterpriseDB http://www.enterprisedb.com
Mail sent from my BlackLaptop device
------=_Part_3056_30409245.1209578061172
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Hi All,<br><br> I noticed that the TidScan fails to
identify when the requested block is not in the relation. Consider this
(pg_class has 6 blocks):<br><br>postgres=# explain analyze select ctid, *
from pg_class where ctid in ( '(6,1)' );<br>
ERROR: could not read block 6 of relation 1663/11511/1259: read only
0 of 8192 bytes<br><br> 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:<br>
<br>postgres=# explain analyze select ctid, * from pg_class where
ctid in ( '(6,0)'
);<br>
QUERY
PLAN
<br>----------------------------------------------------------------------------------------------------<br>
Tid Scan on pg_class (cost=0.00..4.01 rows=1 width=211)
(actual time=0.009..0.009 rows=0 loops=1)<br> TID Cond: (ctid
= '(6,0)'::tid)<br> Total runtime: 0.130 ms<br>(3
rows)<br><br> Can we safely fix these? First one by
ignoring the request if requested_block >=
RelationGetNumberOfBlocks(), and second one by accepting only non-zero
positive values in the tid input function.<br>
<br>Best regards<br><br>--
<br>gurjeet[.singh]@[EMAIL PROTECTED]
>singh.gurjeet@[EMAIL PROTECTED]
gmail | hotmail |
indiatimes | yahoo }.com<br><br>EnterpriseDB <a
href="http://www.enterprisedb.com">http://www.enterprisedb.com</a><br><br>
Mail sent from my BlackLaptop device
------=_Part_3056_30409245.1209578061172--


|