When abstract plans are captured, full abstract plans are generated and stored. You can write partial plans to affect only a subset of the optimizer choices. If the query above had not used the index on t3, but all other parts of the query plan were optimal, you could create a partial plan for the query using the create plan command. This partial plan specifies only the index choice for t3:
create plan "select t1.c11, t2.c21 from t1, t2, t3 where t1.c11 = t2.c21 and t1.c11 = t3.c31" "( i_scan t3_c31_ix t3 )"
You can also create abstract plans with the plan clause for select, delete, update, and other commands that can be optimized.