void Relation::project(map<int, string>& variables) { set<Tuple> newTuples; Scheme newScheme; Tuple t; for (auto& v : variables){ newScheme.addAttribute(scheme.getAttributes().at(v.first)); } for (auto& tup : tuples){ for (auto& v : variables) { t.addAttValue(tup.at(v.first)); } if (variables.size() > 0){ newTuples.insert(t); t.clear(); } } tuples = newTuples; scheme = newScheme; setName("project"); }
void Database::setTupleAttributeValues(Tuple& tuple, int i) { for (int j = 0; j < Facts[i].getParameterList().size(); j++){ tuple.addAttValue(Facts.at(i).getParameterList().at(j).getValue()); } }