Javadoc
Return a list of all applicable join strategies. The order of the strategies in the
returned list is based on the static rule below. However, the caller can decide on
an optimal join strategy by evaluating and comparing the costs.
1. If hint USE_SORT_MERGE_JOIN is specified,
return a singleton list containing only SORT_MERGE.
2. If 1) matches pattern "A LEFT/INNER/SEMI/ANTI JOIN B"; or
2) matches pattern "A LEFT/INNER/SEMI/ANTI JOIN B (LEFT/INNER/SEMI/ANTI JOIN C)+"
and hint NO_STAR_JOIN is not specified,
add BUILD_RIGHT to the returned list.
3. If matches pattern "A RIGHT/INNER JOIN B", where B is either a named table reference
or a flat sub-query,
add BUILD_LEFT to the returned list.
4. add SORT_MERGE to the returned list.