From 1902e6f3d55a76545f786789a84ef9c21edf0f8e Mon Sep 17 00:00:00 2001 From: Rebecca Schofield Date: Tue, 15 Sep 2015 23:21:38 -0500 Subject: [PATCH] fixing more things --- Attribute.h | 5 +++++ OUTPUT.txt | 23 +++++++++++++++++++++++ Relation.h | 20 ++++++++++++++++++++ a.out | Bin 76409 -> 76922 bytes savefile.txt | 2 ++ test.cpp | 4 +++- 6 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 savefile.txt diff --git a/Attribute.h b/Attribute.h index c38f0df..fb3fd48 100755 --- a/Attribute.h +++ b/Attribute.h @@ -26,6 +26,11 @@ public: size++; } + string getElementAt(int pos) + { + return values[pos]; + } + vector getValues() { return values; } string getName(){ return name; } string getType(){ return type; } diff --git a/OUTPUT.txt b/OUTPUT.txt index 526f77f..c79684b 100755 --- a/OUTPUT.txt +++ b/OUTPUT.txt @@ -4,12 +4,14 @@ To create a table: engine.createTable("table1", vec); + This creates a Relation object with the appropriate Attribute objects. It displays nothing. To display the table: engine.showTables(engine.getTableFromName("table1")); + This results in such output: Display of relation-------------------------------- @@ -20,6 +22,7 @@ This results in such output: Attribute name: age Elements: 22 5 22 50 + With table3 having an equal domain to table1, this: cout << engine.unionComp(engine.getTableFromName("table1"), engine.getTableFromName("table3")); @@ -29,6 +32,7 @@ This will display: 1 + To project a table's column: engine.project((engine.getTableFromName("table1")), "name"); @@ -43,3 +47,22 @@ This will display: Leela Zoidberg + +With an arbitrary vector of strings as cmds (until we are able to parse effectively): + + engine.saveToFile(cmds); + + +This will result in a text file with the contents: + + CREATE TABLE animals (name VARCHAR(20), kind VARCHAR(8), years INTEGER) PRIMARY KEY (name, kind); + +SHOW animals; + +//insert + +//delete + +//select + +//product \ No newline at end of file diff --git a/Relation.h b/Relation.h index 40084c8..f8e7a49 100755 --- a/Relation.h +++ b/Relation.h @@ -47,6 +47,26 @@ public: } } + vector findTuple(string attributeType, string type) + { + vector tupleSlot; // tuples that have the attribute in question + for (int i = 0; i < att.size(); ++i)// find attribute in question + { + if(att[i].getName() == attributeType) + { + for (int j = 0; j < att[i].getSize(); ++j)//search through all the values of the attribute column + { + if (att[i].getElementAt(j) == type) + { + tupleSlot.push_back(j); + } + } + + } + } + return tupleSlot; + } + string getTableName() { return name; } diff --git a/a.out b/a.out index eb1cbf71b518fb4e78ded57887ae17b53da75cfb..6c65e5bc42aff5db3790aee350e4e214c6c2fd3d 100755 GIT binary patch literal 76922 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%0AO55%V=xj` zf+WZPih4XH+eK9k=+h`~v)7La*@7p##J%}!YLJbB?-)j~>VOl2a97k%f^eVmY|-eo z;i}9=eZ3*ecpVN9n|6-0Qd#v~Kgn#>g>#x2Q54L$+entavIyp+)_rl-{7|tZA#DS z)q5H-=`b8hgNyc`=h^D$V;mTnRC8`7!K;)!kZ{ha5Y7pQ+dqpuk+7&KHGzV*x}xj~ z#SfKs(LlN60!U2)KY9l{Hi1OKoicD4fyjW^w{VRl)PFqKu0s81GX*{mMmRdaxO}<@ z>Qjb}uqPk>q0l&l;?K93ukbmnbl{Sa{>Zz#S1NLrp4>2{tH#%UwNEU$6zre9@#@Vj z4tJ3~lWQ3%McJX7n4E?Q=6|2tuiwL*<%q(3lodVB@c&X8kpEO{-8MB3g2;(Z#A$|f zubbz(C;>+I;hth1^Ceq2UWShls!<5Wz2)Sq?*i>jC&dnz#M+fR!;!4%8g)8wjAgmY zGhl@Ge?6&e;`?FQQX#xYSgqUjV!aD-<7S{EfujI)8pY*$({{dl1pbcH%||<->8N3G z_wl~o)&-ukXFIQlQ0WVy$i-=emESikZ>5=$PsGrh9Ch1pbRa$?|MQU{*NPoL$e@tS zhTWX957?WtK{;Zm$&vIq+&<}mjy^2JOr%*_#+=^7hvbY8R8 zRMhjx6M)TXTF_N{B-Le;;4gMY-p~_u+fv|A-~ck@`YLUXGQ{}+U>W55$SrmRZA}3# zD^7%gmIv&9yGmiM$LNwv&CL<%`Y2y%*xnRcBtw2`TK)}lX)OI{r^dE@=L&}Fc&-@l zvY>d)0-Vm|@xhusge_22?uDDenKYoA&LzISHaq-I{C0zHGdz87UQSX9s-F<&QYvr_ z5y}QW)K1k6)d1&o;!b#p+WJ&i5L?K}cPvELoQ7*~b|Zn{@0)LrAi(>!dtSHr+wCom z=ATeW;ZkodCxw5dbQ`|VY&+Pw)4|c?q?^6858IEAbbiaQ9Yr2(37GpqcLPYJst_>j zLQW}zTLGB&M(rgP_Y6{Ox04Ea?>V8OZIdA~4N2WHW*nz=4n80?>@E$jug64;n7X@%-L^6kecNTWkr$?4{N}y3&)ADO@P5u|Rfe+V&n8 zDXoE0w##ndeA=6-(>YfDx)Fbwi14d7UHJ*-J_6A@U=xxKu8HHtk%8lKwp`wCzr_+P J6-_Tc{U1FP)=~ff literal 76409 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 X%Ll_MY+SX=<-_(Zc19_edHwBw#`Rsm diff --git a/savefile.txt b/savefile.txt new file mode 100644 index 0000000..e5ca19f --- /dev/null +++ b/savefile.txt @@ -0,0 +1,2 @@ +CREATE TABLE animals (name VARCHAR(20), kind VARCHAR(8), years INTEGER) PRIMARY KEY (name, kind); +SHOW animals; diff --git a/test.cpp b/test.cpp index 3e02259..1b99116 100755 --- a/test.cpp +++ b/test.cpp @@ -72,5 +72,7 @@ int main() { vector cmds; cmds.push_back("CREATE TABLE animals (name VARCHAR(20), kind VARCHAR(8), years INTEGER) PRIMARY KEY (name, kind);"); - cmds.push_back("SHOW animals"); + cmds.push_back("SHOW animals;"); + + engine.saveToFile(cmds); }