Hash table used in group by provides one main method: map.
This method will find an existing matching key in the hash table and output the corresponding group id, it the key already has been inserted in the hash table. Otherwise it will insert a new key and assign a new group id value to it.
This interface is tailored for the group by. In order to reuse the same hash table implementation in join, there must be a way to skip insertion of new keys into the hash table when looking up existing keys. When join processes probe side it needs to filter input rows based on finding a match in the hash table, but keeping hash table immutable and not automatically adding missing keys to it.