crossprod almost done
This commit is contained in:
parent
6247ac10ca
commit
4809a518ad
6 changed files with 28 additions and 84 deletions
27
DBEngine.cpp
27
DBEngine.cpp
|
@ -185,8 +185,10 @@ Relation DBEngine::setDiff(Relation r1, Relation r2){
|
|||
|
||||
Relation DBEngine::crossProduct(Relation r1, Relation r2){
|
||||
vector<Attribute> new_atts = r1.getAttributes();
|
||||
int r1_attsize = r1.getAttributes()[0].getSize();
|
||||
int r2_attsize = r2.getAttributes()[0].getSize();
|
||||
|
||||
for (int i = 0; i < r2.getAttributes().size(); ++i) {
|
||||
for (int i = 0; i < r2_attsize; ++i) {
|
||||
new_atts.push_back(r2.getAttributes()[i]);
|
||||
}
|
||||
|
||||
|
@ -194,6 +196,29 @@ Relation DBEngine::crossProduct(Relation r1, Relation r2){
|
|||
new_atts[i].clearAllValues();
|
||||
}
|
||||
|
||||
vector<string> r1_tuple;
|
||||
vector<string> r2_tuple;
|
||||
|
||||
for (int i = 0; i < r1_attsize; ++i) {
|
||||
r1_tuple = r1.getTuple(i);
|
||||
|
||||
for (int a = 0; a < r1_tuple.size(); ++a) {
|
||||
cout << r1_tuple[a] << " ";
|
||||
}
|
||||
|
||||
for (int j = 0; j < r2_attsize; ++j) {
|
||||
r2_tuple = r2.getTuple(j);
|
||||
|
||||
for (int b = 0; b < r2_tuple.size(); ++b){
|
||||
cout << r2_tuple[b] << " ";
|
||||
}
|
||||
|
||||
cout << "\n";
|
||||
}
|
||||
|
||||
cout << "\n\n";
|
||||
}
|
||||
|
||||
//currently all returned relations are called TEMP
|
||||
Relation new_r("TEMP", new_atts);
|
||||
|
||||
|
|
Binary file not shown.
82
OUTPUT.txt
82
OUTPUT.txt
|
@ -1,82 +0,0 @@
|
|||
---------------
|
||||
Queries
|
||||
---------------
|
||||
|
||||
Selection:
|
||||
|
||||
correct: select ( age == 12 ) people ;
|
||||
incorrect: select ( age ))))) people ;
|
||||
|
||||
Projection:
|
||||
|
||||
correct: project ( age ) people ;
|
||||
incorrect: project age people ;
|
||||
|
||||
Renaming:
|
||||
|
||||
correct: rename ( age, years old ) ;
|
||||
incorrect: rename age years ;
|
||||
|
||||
Set Union:
|
||||
|
||||
correct: union ( people + animals ) ;
|
||||
incorrect: union people animals ;
|
||||
|
||||
Set Difference:
|
||||
|
||||
correct: difference ( people - animals ) ;
|
||||
incorrect: difference people animals ;
|
||||
|
||||
Cross Product:
|
||||
|
||||
correct: product ( people * animals ) ;
|
||||
incorrect: product people animals ;
|
||||
|
||||
-------------------
|
||||
Commands
|
||||
-------------------
|
||||
|
||||
Open:
|
||||
|
||||
correct: OPEN people ;
|
||||
incorrect: OPEN ;
|
||||
|
||||
Close:
|
||||
|
||||
correct: CLOSE people ;
|
||||
incorrect: CLOSE ;
|
||||
|
||||
Save:
|
||||
|
||||
correct: SAVE people ;
|
||||
incorrect: SAVE ;
|
||||
|
||||
Exit:
|
||||
|
||||
correct: EXIT ;
|
||||
incorrect: EXIT people ;
|
||||
|
||||
Show:
|
||||
|
||||
correct: SHOW people ;
|
||||
incorrect: SHOW ;
|
||||
|
||||
Create:
|
||||
|
||||
correct: CREATE TABLE people ( age INTEGER, name VARCHAR ( 20 ) ) PRIMARY KEY ( name ) ;
|
||||
incorrect: CREATE TABLE people age name ;
|
||||
|
||||
Update:
|
||||
|
||||
correct: UPDATE people SET ( age = 10 ) WHERE ( name == "Bob" ) ;
|
||||
incorrect: UPDATE ( age = 10 ) WHERE people ;
|
||||
|
||||
Insert:
|
||||
|
||||
correct: INSERT INTO people VALUES FROM ( 12, "Benny" ) ;
|
||||
incorrect: INSERT INTO people 12 "Benny" ;
|
||||
|
||||
Delete:
|
||||
|
||||
correct: DELETE FROM people WHERE ( name == "John" ) ;
|
||||
incorrect: DELETE IN people WHEN (name=John) ;
|
BIN
a.out
BIN
a.out
Binary file not shown.
BIN
test
BIN
test
Binary file not shown.
3
test.cpp
3
test.cpp
|
@ -43,5 +43,6 @@ int main() {
|
|||
|
||||
engine.createTable("MoarFood", v2);
|
||||
|
||||
engine.crossProduct(engine.getTableFromName("Food"), engine.getTableFromName("MoarFood")).display();
|
||||
engine.crossProduct(engine.getTableFromName("Food"), engine.getTableFromName("MoarFood"));
|
||||
//engine.crossProduct(engine.getTableFromName("Food"), engine.getTableFromName("MoarFood")).display();
|
||||
}
|
||||
|
|
Reference in a new issue