public void helpTestPop(RuleStack stack, OptimizerRule expectedPop, int expectedSize) { OptimizerRule out = stack.pop(); int outSize = stack.size(); assertSame("Did not get same object", expectedPop, out); //$NON-NLS-1$ assertEquals("Stack changed size", expectedSize, outSize); //$NON-NLS-1$ }
/** * Simulate execution of the QueryOptimizer rules stack */ private static PlanNode helpExecuteRules(RuleStack rules, PlanNode plan, QueryMetadataInterface metadata, boolean debug) throws QueryPlannerException, QueryMetadataException, TeiidComponentException { CommandContext context = new CommandContext(); while(! rules.isEmpty()) { if(debug) { System.out.println("\n============================================================================"); //$NON-NLS-1$ } OptimizerRule rule = rules.pop(); if(debug) { System.out.println("EXECUTING " + rule); //$NON-NLS-1$ } plan = rule.execute(plan, metadata, FINDER, rules, new AnalysisRecord(false, debug), context); if(debug) { System.out.println("\nAFTER: \n" + plan); //$NON-NLS-1$ } } return plan; }
public PlanNode executeRules(RuleStack rules, PlanNode plan) throws QueryPlannerException, QueryMetadataException, TeiidComponentException { boolean debug = analysisRecord.recordDebug(); while(! rules.isEmpty()) { if(debug) { analysisRecord.println("\n============================================================================"); //$NON-NLS-1$ } OptimizerRule rule = rules.pop(); if(debug) { analysisRecord.println("EXECUTING " + rule); //$NON-NLS-1$ } plan = rule.execute(plan, metadata, capFinder, rules, analysisRecord, context); if(debug) { analysisRecord.println("\nAFTER: \n" + plan.nodeToString(true)); //$NON-NLS-1$ } } return plan; }
public PlanNode executeRules(RuleStack rules, PlanNode plan) throws QueryPlannerException, QueryMetadataException, TeiidComponentException { boolean debug = analysisRecord.recordDebug(); while(! rules.isEmpty()) { if(debug) { analysisRecord.println("\n============================================================================"); //$NON-NLS-1$ } OptimizerRule rule = rules.pop(); if(debug) { analysisRecord.println("EXECUTING " + rule); //$NON-NLS-1$ } plan = rule.execute(plan, metadata, capFinder, rules, analysisRecord, context); if(debug) { analysisRecord.println("\nAFTER: \n" + plan.nodeToString(true)); //$NON-NLS-1$ } } return plan; }
public PlanNode executeRules(RuleStack rules, PlanNode plan) throws QueryPlannerException, QueryMetadataException, TeiidComponentException { boolean debug = analysisRecord.recordDebug(); while(! rules.isEmpty()) { if(debug) { analysisRecord.println("\n============================================================================"); //$NON-NLS-1$ } OptimizerRule rule = rules.pop(); if(debug) { analysisRecord.println("EXECUTING " + rule); //$NON-NLS-1$ } plan = rule.execute(plan, metadata, capFinder, rules, analysisRecord, context); if(debug) { analysisRecord.println("\nAFTER: \n" + plan.nodeToString(true)); //$NON-NLS-1$ } } return plan; }
public void testRemove() { // Set up RuleStack stack = new RuleStack(); stack.push(RuleConstants.ACCESS_PATTERN_VALIDATION); stack.push(RuleConstants.COLLAPSE_SOURCE); stack.push(RuleConstants.ACCESS_PATTERN_VALIDATION); // Remove all instances of ASSIGN_OUTPUT_ELEMENTS stack.remove(RuleConstants.ACCESS_PATTERN_VALIDATION); // Verify size and pop'ed values assertEquals(1, stack.size()); assertEquals(RuleConstants.COLLAPSE_SOURCE, stack.pop()); assertEquals(null, stack.pop()); }
public void testInitialization() { RuleStack stack = new RuleStack(); assertEquals("Initial stack is not empty", true, stack.isEmpty()); //$NON-NLS-1$ assertEquals("Initial size is not 0", 0, stack.size()); //$NON-NLS-1$ assertNull("Top is not null", stack.pop()); //$NON-NLS-1$ }