示例#1
0
void printDWD(dwd_t dwd, bt *btr)
{
	ai_obj akey;
	void *be = dwd.k;
	convertStream2Key(be, &akey, btr);
	dump_ai_obj(stdout, &akey);
}
示例#2
0
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);
}
示例#3
0
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;
}
示例#5
0
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
}