int subqueryNum)
throws ExprValidationException
{
Pair<EventTableFactory, SubordTableLookupStrategyFactory> result = determineSubqueryIndexInternalFactory(filterExpr, viewableEventType, outerEventTypes, subselectTypeService, fullTableScan, optionalUniqueProps, statementContext);
QueryPlanIndexHook hook = QueryPlanIndexHookUtil.getHook(statementContext.getAnnotations());
if (queryPlanLogging && (queryPlanLog.isInfoEnabled() || hook != null)) {
queryPlanLog.info("local index");
queryPlanLog.info("strategy " + result.getSecond().toQueryPlan());
queryPlanLog.info("table " + result.getFirst().toQueryPlan());
if (hook != null) {
String strategyName = result.getSecond().getClass().getSimpleName();
hook.subquery(new QueryPlanIndexDescSubquery(
new EventTableClassAndNamePair[] {
new EventTableClassAndNamePair(null, result.getFirst().getEventTableClass().getSimpleName())
}, subqueryNum, strategyName));
}
}