//key is the bst key. newRecord has the new updated values. int updateRecord(char* key,struct dataRecord *newRecord) { struct primaryIndex *bstData; if((bstData=bstSearchNode(cdsInfo.primaryNdx,key))==NULL) return UPDATE_FAIL; struct dataRecord *oldRecord=(struct dataRecord*)malloc(sizeof(struct dataRecord)); createEmptyRecord(oldRecord); selectByKey(key,oldRecord); if(cds_deleteByKey(key)==DELETE_KEY_FAIL) return UPDATE_FAIL; if(cds_addUniqueRecord(newRecord)==ADDKEY_FAIL) return UPDATE_FAIL; return UPDATE_SUCCESS; }
cardinality_t dbAnyCursor::selectByKey(char const* key, void const* value) { dbFieldDescriptor* field = table->find(key); assert(field != NULL); return selectByKey(field, value); }