Operator name alignment for abstract plan and optimizer criteria

The names of algorithms differ between their usage in abstract plans and in the set command. For example, a hash join is called h_join in abstract plans, but is called hash_join in the set command. Adaptive Server accepts both keywords in the extended abstract plan syntax. For example:

select ...

plan

“(h_join (t_scan r) (t_scan s))”

is equivalent to:

 select ...

	plan

	 “(hash_join (t_scan r) (t_scan s))”

and:

select ...
plan
“(use h_join on)”

and:

select ...
plan
“(use hash_join on)”

When a table abstract plan is present, it takes precedence:

select ..
from r, s, t
...
plan
“(use hash_join off)
(h_join (t_scan r) (t_scan s))”

The query uses the hash_join for r and s scans; but for the join with t it does not use hash_join as specified by the use abstract plan form, since it was not specified in the table abstract plan.