Operator name alignment for abstract plan and optimizer criteria

The names of algorithms differ in how you use them in abstract plans and how you use them 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.