#include #include #include #include "DBEngine.h" DBEngine::DBEngine(){ size = 0; } void DBEngine::createTable(string n){ Relation r(n); tables.push_back(r); size++; } void DBEngine::createTable(string n, vector a){ Relation r(n, a); tables.push_back(r); size++; } void DBEngine::createTable(Relation r){ tables.push_back(r); size++; } vector DBEngine::getRelations(){ return tables; } Relation DBEngine::getTableFromName(string n){ //will return first occurence for(int i = 0; i < tables.size(); i++){ if (tables[i].getTableName() == n){ return tables[i]; } } } void DBEngine::saveToFile(vector cmds){ //writes nothing meaningful ofstream file; file.open("savefile.db"); for(int i = 0; i < cmds.size(); ++i){ file << cmds[i] << endl; } file.close(); } //assumes that all attribute titles are unique Relation DBEngine::projection(vector input, Relation r){ // for(int i = 0; i < input.size(); i++) { // it = find(r.getAttributes().begin(), r.getAttributes().end(), input[i]) //if(r[i].getName == input[]) // } } //ASAP: TEST ALL OF THIS void rename(Relation r, vector oldnames, vector newnames){ if (oldnames.size() != newnames.size()) { cout << "Failure to rename: number of attributes do not match."; return; } else if (oldnames != r.getAttributeNames()) { cout << "Failure to rename: the attributes to be renamed do not exist in the relation."; return; } else { Attribute temp; for(int i = 0; i < oldnames.size(); ++i){ temp = r.getAttributeByName(oldnames[i]); temp.setName(newnames[i]); } } }