hive.auto.convert.join has been around for a long time, and is pretty stable.
When mapjoin hint was created, the above parameter did not exist.
The only reason for the user to specify a mapjoin currently is if they want
it to be converted to a bucketed-mapjoin or a sort-merge bucketed mapjoin.
Eventually, that should also go away, but that may take some time to stabilize.
There are many rules in SemanticAnalyzer to handle the following trees:
ReduceSink -> MapJoin
Union -> MapJoin
MapJoin -> MapJoin
This should not be supported anymore. In any of the above scenarios, the
user can get the mapjoin behavior by setting hive.auto.convert.join to true
and not specifying the hint. This will simplify the code a lot.
What does everyone think ?