Обсуждение: Print b-tree tuples

Поиск
Список
Период
Сортировка

Print b-tree tuples

От
Samuel Vogel
Дата:
Hello,

I'm trying to print out the tuples in the b-tree nodes for analysis, but when iterate over more than the first entry of the tuples (scanKey++), I strangely get the error below on query execution:
ERROR:  relation "simpletest" does not exist
LINE 1: SELECT * FROM simpletest WHERE id = 50;

Any help with reviewing my my small attached patch would be greatly appreciated!

Regards,
Samuel Vogel
Вложения

Re: Print b-tree tuples

От
Samuel Vogel
Дата:
<div class="moz-cite-prefix">Hello,<br /><br /></div><blockquote cite="mid:50E5B65A.70009@muel-vogel.de"
type="cite"><divclass="moz-text-flowed" lang="x-western" style="font-family: -moz-fixed;       font-size: 12px;">I'm
tryingto print out the tuples in the b-tree nodes for analysis, but when iterate over more than the first entry of the
tuples(scanKey++), I strangely get the error below on query execution:<br /> ERROR:  relation "simpletest" does not
exist<br/> LINE 1: SELECT * FROM simpletest WHERE id = 50;<br /></div></blockquote> I was able to get around this by
onlyprinting byval attributes:<br /><br /> if (!itupdesc->attrs[i-1]->attbyval)<br />             break;<br /><br
/>I would still like to know why my code screws up though. The relnames are not byval, but I should still be able to
printthe address, right?<br /><br /> Regards,<br /> Samuel<br /> 

Re: Print b-tree tuples

От
Tom Lane
Дата:
Samuel Vogel <s@muel-vogel.de> writes:
> I'm trying to print out the tuples in the b-tree nodes for analysis, but 
> when iterate over more than the first entry of the tuples (scanKey++), I 
> strangely get the error below on query execution:
> ERROR:  relation "simpletest" does not exist
> LINE 1: SELECT * FROM simpletest WHERE id = 50;

Is this patch the only thing you changed?  The only obvious explanation
for the above error (other than "you fat-fingered the query") seems to
be that you caused index searches in pg_class to fail, but I don't see
how this patch could be affecting the result of _bt_binsrch.
        regards, tom lane



Re: Print b-tree tuples

От
Samuel Vogel
Дата:
Am 04.01.13 21:26, schrieb Tom Lane:
> Samuel Vogel <s@muel-vogel.de> writes:
>> I'm trying to print out the tuples in the b-tree nodes for analysis, but
>> when iterate over more than the first entry of the tuples (scanKey++), I
>> strangely get the error below on query execution:
>> ERROR:  relation "simpletest" does not exist
>> LINE 1: SELECT * FROM simpletest WHERE id = 50;
> Is this patch the only thing you changed?  The only obvious explanation
> for the above error (other than "you fat-fingered the query") seems to
> be that you caused index searches in pg_class to fail, but I don't see
> how this patch could be affecting the result of _bt_binsrch.
Yes, I've switched to a clean master and only applied this patch. If I 
put the the break, the query works, so it's fine as well.

BTW: I just had a discussion if it would make sense, to recreate my test 
table with a different order, as a b-tree is always dependent on 
insertion order. But as the b-tree index is newly created in memory 
after each restart, two different insertion orders (same values) would 
give me the same b-tree at least after a restart, right?

Regards,
Samuel