From b6af7f18c8da6b2213de394c9f86fc98079aa7a9 Mon Sep 17 00:00:00 2001 From: Rebecca Schofield Date: Mon, 21 Sep 2015 16:27:23 -0500 Subject: [PATCH] insertions done --- Attribute.cpp | 13 ++++++++++++- Attribute.h | 4 +++- DBEngine.cpp | 26 ++++++++++++++++++++------ DBEngine.h | 4 ++-- Relation.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ Relation.h | 4 ++++ a.out | Bin 0 -> 91732 bytes test.cpp | 31 +++++++++++++++++++------------ 8 files changed, 104 insertions(+), 22 deletions(-) create mode 100755 a.out diff --git a/Attribute.cpp b/Attribute.cpp index 9a66043..2ecee1c 100755 --- a/Attribute.cpp +++ b/Attribute.cpp @@ -2,6 +2,13 @@ #include #include "Attribute.h" +Attribute::Attribute(){ + name = ""; + type = ""; + key = 0; + size = 0; +} + Attribute::Attribute(string n, string t, bool k){ name = n; type = t; @@ -26,6 +33,10 @@ string Attribute::getName(){ return name; } +void Attribute::setName(string s){ + name = s; +} + string Attribute::getType(){ return type; } @@ -34,7 +45,7 @@ bool Attribute::isKey(){ return key; } -void Attribute::setName(string s){ +void Attribute::rename(string s){ name = s; } diff --git a/Attribute.h b/Attribute.h index f74e650..fa98b14 100755 --- a/Attribute.h +++ b/Attribute.h @@ -11,14 +11,16 @@ class Attribute{ int size; public: + Attribute(); Attribute(string n, string t, bool k); void addCell(string v); string operator[](int i); vector getValues(); string getName(); + void setName(string s); string getType(); bool isKey(); int getSize(); - void setName(string s); + void rename(string s); void display(); }; \ No newline at end of file diff --git a/DBEngine.cpp b/DBEngine.cpp index a813c90..1e47c4a 100755 --- a/DBEngine.cpp +++ b/DBEngine.cpp @@ -59,12 +59,26 @@ Relation DBEngine::projection(vector input, Relation r){ //if(r[i].getName == input[]) // } } -/* -void renameAttribute(vector v, string o, string s){ - for(int i = 0; i < v.size(); ++i){ - if(v[i].getName() == o){ - v[i].setName(s); + +//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]); } } } -*/ + diff --git a/DBEngine.h b/DBEngine.h index f2e5e3f..8533656 100755 --- a/DBEngine.h +++ b/DBEngine.h @@ -19,9 +19,9 @@ public: void saveToFile(vector cmds); //operations - //void selection(); + //Relation selection(); Relation projection(vector input, Relation r); - //void renaming(); + void rename(Relation r, vector oldnames, vector newnames); //void setUnion(); //void setDiff(); //void crossProduct(); diff --git a/Relation.cpp b/Relation.cpp index 09eeaf7..300cde1 100755 --- a/Relation.cpp +++ b/Relation.cpp @@ -29,6 +29,16 @@ vector Relation::getAttributeNames(){ return temp; } +Attribute Relation::getAttributeByName(string s) { + for(int i = 0; i < size; ++i){ + if (att[i].getName() == s) { + return att[i]; + } + } + + cout << "Failure to return: the requested attribute does not exist."; +} + int Relation::getSize(){ return size; } @@ -42,3 +52,37 @@ void Relation::display(){ cout << "--------------------------\n"; } + +void Relation::insertTuple(vector tuple){ + if (tuple.size() != this->size) { + cout << "Failure to insert: the sizes do not match."; + } + + else { + for (int i = 0; i < att.size(); ++i) { + att[i].addCell(tuple[i]); + } + } +} + +void Relation::insertFromRelation(Relation r){ + if (r.size != this->size) { + cout << "Failure to insert: the sizes do not match."; + return; + } + + else if (this->getAttributeNames() != r.getAttributeNames()) { + cout << "Failure to insert: the attributes do not match."; + return; + } + + else { + vector newAtts = r.getAttributes(); + + for (int i = 0; i < newAtts.size(); ++i) { + for (int j = 0; j < newAtts[i].getSize(); ++j) { + this->att[i].addCell(newAtts[i][j]); + } + } + } +} diff --git a/Relation.h b/Relation.h index 5a25284..beea397 100755 --- a/Relation.h +++ b/Relation.h @@ -13,6 +13,10 @@ public: string getTableName(); vector getAttributes(); vector getAttributeNames(); + Attribute getAttributeByName(string s); int getSize(); void display(); + void insertTuple(vector tuple); //we are assuming they are in order + void insertFromRelation(Relation r); + //void removeTuple(); }; \ No newline at end of file diff --git a/a.out b/a.out new file mode 100755 index 0000000000000000000000000000000000000000..0bb0543c863526d695c22da3b330690c31f64a50 GIT binary patch literal 91732 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 TK~ rs = engine.getRelations(); - Relation r2 = engine.getTableFromName("Food"); - r2.display(); + vector tuple; + tuple.push_back("Omelette"); + tuple.push_back("Fried Rice"); + tuple.push_back("Grouper"); - vector v1 = r2.getAttributeNames(); + r.insertTuple(tuple); + r.display(); - for (int i = 0; i < v.size(); ++i){ - cout << v1[i]; - } + vector o; + vector n; + + o.push_back("Breakfast"); + o.push_back("Lunch"); + o.push_back("Dinner"); + + n.push_back("Tsafkaerb"); + n.push_back("Hcnul"); + n.push_back("Rennid"); + + //engine.rename(r, o, n); } \ No newline at end of file