Re: Pb importing data in v. 7.0.3
От | Tom Lane |
---|---|
Тема | Re: Pb importing data in v. 7.0.3 |
Дата | |
Msg-id | 19927.978582326@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: Pb importing data in v. 7.0.3 (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Pb importing data in v. 7.0.3
|
Список | pgsql-general |
> "Herve Piedvache" <herve@elma.fr> writes: >> When doing a "psql -e mydatabase < db", an error occured when recreating >> indexes. >> The error is : >> ------------------------- >> FATAL 1: btree: failed to add item to the page in _bt_sort (2) After digging around in the failed process, I now understand what's happening. This error occurs when index building needs to insert a new index item on a disk page, and finds that there isn't enough space to insert the item, so it splits the page ... but then there *still* isn't enough space on the right-hand split page for the new index item. This can happen in pathological cases, because the choice of split point is constrained by 7.0's handling of chains of equal keys; it doesn't want to split in the middle of a chain. In the example at hand, it seems that the pre-split page contained a single key of a lower value (call it 'A') and all the remaining keys were of the same higher value (call it 'AAAA'). We split the page in such a way that the left sub-page has the 'A' and the right page has all the 'AAAA's ... which leaves us enough room on the right page to insert an 'A', but unfortunately what we want to insert is 'AAAA' and it doesn't fit. The equal-key logic has been entirely rewritten for 7.1, and I believe that it's not subject to this bug any longer. I'm very hesitant to try to jury-rig a solution for 7.0, though, because the old equal-key handling is so complex and fragile that some other, more common case might break. How do you feel about running 7.1 beta? regards, tom lane
В списке pgsql-general по дате отправления: