There are some limits to join orders and join types, depending on the type of query. One example is outer joins, such as:
select * from t1, t2 where c11 *= c21
Adaptive Server requires the outer member of the outer join to be the outer table during join processing. Therefore, this abstract plan is illegal:
(g_join
(scan t2)
(scan t1)
)
Attempting to use this plan results in an error message, and the query is not compiled.