Full versus partial plans

Abstract plans can be full plans, describing all query processing steps and options, or they can be partial plans. A partial plan might specify that an index is to be used for the scan of a particular table, without specifying the index name or the join order for the query. For example:

select t1.c11, t2.c21
from t1, t2, t3
where t1.c11 = t2.c21
and t1.c11 = t3.c31

The full abstract plan includes:

The abstract plan for the query above specifies the join order, the access method for each table in the query, and the scan properties for each table:

( nl_g_join 
    ( t_scan t2 ) 
    ( i_scan t1_c11_ix t1 ) 
    ( i_scan t3_c31_ix t3 ) 
) 
( prop t3 
    ( parallel 1 ) 
    ( prefetch 16 ) 
    ( lru ) 
) 
( prop t1 
    ( parallel 1 ) 
    ( prefetch 16 ) 
    ( lru ) 
) 
( prop t2 
    ( parallel 1 ) 
    ( prefetch 16 ) 
    ( lru ) 
)   

Chapter 18, “Abstract Plan Language Reference,” provides a reference to the abstract plan language and syntax.