From: Vlad K. <hv...@us...> - 2009-10-15 09:16:53
|
Build Version : T3.0.0.25770 Firebird 3.0 Unstable (writeBuildNum.sh,v 1.25938 2009/10/15 09:16:33 hvlad Exp $ ) Update of /cvsroot/firebird/firebird2/src/jrd In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv13393/jrd Modified Files: btr.cpp Log Message: Fixed bug CORE-2684 : Error page NNN is of wrong type (expected 7, found N) Index: btr.cpp =================================================================== RCS file: /cvsroot/firebird/firebird2/src/jrd/btr.cpp,v retrieving revision 1.259 retrieving revision 1.260 diff -b -U3 -r1.259 -r1.260 --- btr.cpp 24 Sep 2009 21:05:45 -0000 1.259 +++ btr.cpp 15 Oct 2009 09:16:31 -0000 1.260 @@ -5054,7 +5054,18 @@ // going to the right until we find the page that is our real // left sibling WIN left_window(pageSpaceID, left_number); - btree_page* left_page = (btree_page*) CCH_FETCH(tdbb, &left_window, LCK_write, pag_index); + btree_page* left_page = (btree_page*) CCH_FETCH(tdbb, &left_window, LCK_write, pag_undefined); + if ((left_page->btr_header.pag_type != pag_index) || + (left_page->btr_relation != relation_number) || + (left_page->btr_id != (UCHAR)(index_id % 256)) || + (left_page->btr_level != index_level)) + { + CCH_RELEASE(tdbb, &parent_window); + CCH_RELEASE(tdbb, &left_window); + return contents_above_threshold; + } + + while (left_page->btr_sibling != window->win_page.getPageNum()) { #ifdef DEBUG_BTR |