private void parseAndRunLogicalPlan(String json) { try { LogicalPlan logicalPlan = context.getPlanReader().readLogicalPlan(json); if (logicalPlan.getProperties().resultMode == ResultMode.LOGICAL) { fail( "Failure running plan. You requested a result mode of LOGICAL and submitted a logical plan. In this case you're output mode must be PHYSICAL or EXEC.", new Exception()); } if (logger.isDebugEnabled()) logger.debug("Logical {}", logicalPlan.unparse(context.getConfig())); PhysicalPlan physicalPlan = convert(logicalPlan); if (logicalPlan.getProperties().resultMode == ResultMode.PHYSICAL) { returnPhysical(physicalPlan); return; } if (logger.isDebugEnabled()) logger.debug( "Physical {}", context.getConfig().getMapper().writeValueAsString(physicalPlan)); runPhysicalPlan(physicalPlan); } catch (IOException e) { fail("Failure while parsing logical plan.", e); } catch (OptimizerException e) { fail("Failure while converting logical plan to physical plan.", e); } }
private void log(final LogicalPlan plan) { if (logger.isDebugEnabled()) { logger.debug("Logical {}", plan.unparse(queryContext.getConfig())); } }