Example #1
0
MojErr MojDbLevelDatabase::del(const MojObject& id, MojDbStorageTxn* txn, bool& foundOut)
{
    LOG_TRACE("Entering function %s", __FUNCTION__);

    MojDbLevelItem idItem;
    MojErr err = idItem.fromObject(id);
    MojErrCheck(err);
    err = del(idItem, foundOut, txn);
    MojErrCheck(err);

    return MojErrNone;
}
Example #2
0
MojErr MojDbLevelDatabase::put(const MojObject& id, MojBuffer& val, MojDbStorageTxn* txn, bool updateIdQuota)
{
    LOG_TRACE("Entering function %s", __FUNCTION__);

    MojDbLevelItem idItem;
    MojErr err = idItem.fromObject(id);
    MojErrCheck(err);
    MojDbLevelItem valItem;
    err = valItem.fromBuffer(val);
    MojErrCheck(err);
    err = put(idItem, valItem, txn, updateIdQuota);
    MojErrCheck(err);

    return MojErrNone;
}
Example #3
0
MojErr MojDbLevelDatabase::get(const MojObject& id, MojDbStorageTxn* txn, bool forUpdate, MojRefCountedPtr<MojDbStorageItem>& itemOut)
{
    LOG_TRACE("Entering function %s", __FUNCTION__);
    // stop here
    itemOut.reset();
    MojDbLevelItem idItem;
    MojErr err = idItem.fromObject(id);
    MojErrCheck(err);
    MojRefCountedPtr<MojDbLevelItem> valItem(new MojDbLevelItem);
    MojAllocCheck(valItem.get());
    bool found = false;
    err = get(idItem, txn, forUpdate, *valItem, found);
    MojErrCheck(err);
    if (found) {
        valItem->id(id);
        itemOut = valItem;
    }
    return MojErrNone;
}
Example #4
0
MojErr MojDbLevelQuery::getById(const MojObject& id, MojDbStorageItem*& itemOut, bool& foundOut)
{
	itemOut = NULL;
	foundOut = false;
	MojDbLevelItem* item = NULL;
	MojErr err = MojErrNone;

	if (m_db) {
		// retrun val from primary db
		MojDbLevelItem primaryKey;
		err = primaryKey.fromObject(id);
		MojErrCheck(err);
		err = m_db->get(primaryKey, m_txn, false, m_primaryVal, foundOut);
		MojErrCheck(err);
		if (!foundOut) {
			char s[1024];
			int size = primaryKey.size();
			(void) MojByteArrayToHex(primaryKey.data(), size, s); 
			MojLogInfo(MojDbLevelEngine::s_log, _T("bdbq_byId_warnindex: KeySize: %d; %s ;id: %s \n"), 
								 size, s, primaryKey.data()+1);
		
			//MojErrThrow(MojErrDbInconsistentIndex);
			MojErrThrow(MojErrInternalIndexOnFind);
		}
		item = &m_primaryVal;
	} else {
		// return val from cursor
		item = &m_val;
	}
	item->id(id);

	// check for exclusions
	bool exclude = false;
	err = checkExclude(item, exclude);
	MojErrCheck(err);
	if (!exclude) {
		itemOut = item;
	}
	return MojErrNone;
}