void QueryWorkload::addQuery(Query const & q) { totalQueries_++; auto search = summaries_.find(q); if(search != summaries_.end()) { auto countIt = counts_.find(search->second); countIt->second++; counts_.emplace(search->second, countIt->second); } else { std::vector<Attribute const *> attributes; for (auto name : q.getAttributeNames()) { auto it = nameToAttribute_.find(name); assert(it != nameToAttribute_.end()); attributes.push_back(it->second); } QuerySummary summary(attributes); queries_.push_back(summary); summaries_.emplace(q, summary); counts_.emplace(summary, 1.0); } }