44
44
static void deleteIndex (Dbb *dbb, int32 indexId, TransId transId);
45
45
static bool deleteIndexEntry (Dbb *dbb, int32 indexId, IndexKey *key, int32 recordNumber, TransId transId);
46
46
static bool splitIndexPage (Dbb *dbb, int32 indexId, Bdb *bdb, TransId transId,
47
AddNodeResult addResult, IndexKey *indexKey, int recordNumber);
47
AddNodeResult addResult, IndexKey *indexKey, int recordNumber, bool isRootPage);
48
48
static void scanIndex (Dbb *dbb, int32 indexId, int32 rootPage, IndexKey *low, IndexKey *high, int searchFlags, TransId transId, Bitmap *bitmap);
49
49
static void positionIndex(Dbb* dbb, int indexId, int32 rootPage, WalkIndex* walkIndex);
50
50
static void repositionIndex(Dbb* dbb, int indexId, WalkIndex* walkIndex);
51
51
static Bdb* findRoot (Dbb *dbb, int32 indexId, int32 rootPage, LockType lockType, TransId transId);
52
52
static Bdb* findLeaf (Dbb *dbb, int32 indexId, int32 rootPage, IndexKey *key, LockType lockType, TransId transId);
53
static Bdb* findInsertionLeaf (Dbb *dbb, int32 indexId, IndexKey *key, int32 recordNumber, TransId transId);
53
static Bdb* findInsertionLeaf (Dbb *dbb, int32 indexId, IndexKey *key, int32 recordNumber, TransId transId, bool *isRootPage = NULL);
54
54
static bool addIndexEntry (Dbb *dbb, int32 indexId, IndexKey *key, int32 recordNumber, TransId transId);
55
55
static int32 createIndex (Dbb *dbb, TransId transId);
56
56
static void create (Dbb *dbb, TransId transId);
59
59
static void analyzeIndex(Dbb* dbb, int indexId, IndexAnalysis *indexAnalysis);
60
60
static int32 getIndexRoot(Dbb* dbb, int indexId);
62
static void redoIndexPage(Dbb* dbb, int32 pageNumber, int32 parentPageNumber, int level, int32 prior, int32 next, int length, const UCHAR *data, bool haveSuperNodes);
62
static void redoIndexPage(Dbb* dbb, int32 pageNumber, int level, int32 next, int length, const UCHAR *data, bool haveSuperNodes);
63
63
static void redoIndexDelete(Dbb* dbb, int indexId);
64
64
static void redoCreateIndex(Dbb* dbb, int indexId, int pageNumber);