30 template <
class KeyType,
class ValueType>
46 std::vector<int> matches = myMachine.
match(attsToOperateOn);
65 std::vector<KeyType>& keyColumn = input->getColumn<KeyType>(
whichAttToHash);
69 size_t length = keyColumn.size();
70 for (
size_t i = 0; i < length; i++) {
73 if (myMap.count(keyColumn[i]) == 0) {
76 ValueType* temp =
nullptr;
81 temp = &(myMap[keyColumn[i]]);
89 keyColumn.erase(keyColumn.begin(), keyColumn.begin() + i);
90 valueColumn.erase(valueColumn.begin(), valueColumn.begin() + i);
96 *temp = valueColumn[i];
102 myMap.setUnused(keyColumn[i]);
105 keyColumn.erase(keyColumn.begin(), keyColumn.begin() + i);
106 valueColumn.erase(valueColumn.begin(), valueColumn.begin() + i);
114 ValueType& temp = myMap[keyColumn[i]];
115 ValueType copy = temp;
119 temp = copy + valueColumn[i];
129 keyColumn.erase(keyColumn.begin(), keyColumn.begin() + i);
130 valueColumn.erase(valueColumn.begin(), valueColumn.begin() + i);
Handle< Object > createNewOutputContainer() override
void writeOut(TupleSetPtr input, Handle< Object > &writeToMe) override
std::vector< int > match(TupleSpec &attsToMatch)
std::shared_ptr< TupleSet > TupleSetPtr
HashSink(TupleSpec &inputSchema, TupleSpec &attsToOperateOn)