void printDWD(dwd_t dwd, bt *btr) { ai_obj akey; void *be = dwd.k; convertStream2Key(be, &akey, btr); dump_ai_obj(stdout, &akey); }
void runNrlIndexFromStream(bt *btr, uchar *stream, d_l_t *nrlind, int itbl) { aobj akey; convertStream2Key(stream, &akey, btr); void *rrow = parseStream(stream, btr); /* create command and run it */ sds cmd = genNRL_Cmd(btr, nrlind, &akey, NULL, NULL, rrow, itbl); //printf("run_nri: cmd: %s\n", cmd); runCmdInFakeClient(cmd); sdsfree(cmd); /* DESTROYED 016 */ releaseAobj(&akey); }
void printKey(bt *btr, bt_n *x, int i) { if (i < 0 || i >= x->n) { printf(" NO KEY\n"); } else { ai_obj akey; void *be = KEYS(btr, x, i); //printf("btr: %p x: %p i: %d be: %p\n", btr, x, i, be); convertStream2Key(be, &akey, btr); dump_ai_obj(stdout, &akey); } }
static bool streamToBTEntry(uchar *stream, btSIter *siter, bt_n *x, int i) { if (!stream) return 0; if (i < 0) i = 0; convertStream2Key(stream, siter->be.key, siter->x.btr); siter->be.val = parseStream(stream, siter->x.btr); bool gost = IS_GHOST(siter->x.btr, siter->be.val); if (gost) { siter->missed = 1; // GHOST key siter->nim = 0; } siter->be.dr = x ? getDR(siter->x.btr, x, i) : 0; siter->be.stream = stream; siter->be.x = x; siter->be.i = i; //NOTE: used by bt_validate_dirty //DUMP_STREAM_TO_BT_ENTRY return 1; }
void printKeyFromPtr(bt *btr, void *be) { ai_obj akey; convertStream2Key(be, &akey, btr); dump_ai_obj(stdout, &akey); }
bool assignMaxKey(bt *btr, ai_obj *akey) { void *e = bt_max(btr); if (!e) return 0; convertStream2Key(e, akey, btr); return 1; }
// FULL_BTREE_ITERATOR FULL_BTREE_ITERATOR FULL_BTREE_ITERATOR bool assignMinKey(bt *btr, ai_obj *akey) { //TODO combine w/ setIter() void *e = bt_min(btr); if (!e) return 0; // iter can be initialised convertStream2Key(e, akey, btr); return 1; // w/ this lookup }