MojErr MojDbKindEngine::find(const MojDbQuery& query, MojDbCursor& cursor, MojDbWatcher* watcher, MojDbReq& req, MojDbOp op) { MojAssert(isOpen()); MojLogTrace(s_log); MojErr err = query.validate(); MojErrCheck(err); // In order to find collate index, cursor needs kindEngine cursor.kindEngine(this); err = cursor.init(query); MojErrCheck(err); MojDbKind* kind = NULL; err = getKind(query.from().data(), kind); MojErrCheck(err); MojAssert(kind); err = kind->find(cursor, watcher, req, op); MojErrCheck(err); cursor.kindEngine(this); return MojErrNone; }