public AliasGenerator(boolean aliasGroups, boolean stripColumnAliases) { super(new NamingVisitor(aliasGroups)); this.visitor = (NamingVisitor)this.getVisitor(); this.stripColumnAliases = stripColumnAliases; }
/** * Attach SORT node at top of tree. The SORT may be pushed down to a source (or sources) * if possible by the optimizer. * @param plan Existing plan * @param orderBy Sort description from the query * @return Updated plan */ private static PlanNode attachSorting(PlanNode plan, OrderBy orderBy) { PlanNode sortNode = createSortNode(orderBy); attachLast(sortNode, plan); return sortNode; }
private static PlanNode attachProject(PlanNode plan, List<? extends Expression> select) { PlanNode projectNode = createProjectNode(select); attachLast(projectNode, plan); return projectNode; }
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$ }
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()); }
@Override public void visit(WithQueryCommand obj) { visitor.createChildNamingContext(false); visitNode(obj.getCommand()); visitor.removeChildNamingContext(); }
public void testPopOneRule() { RuleStack stack = new RuleStack(); int expectedSize = stack.size(); OptimizerRule rule = new RulePushSelectCriteria(); stack.push(rule); helpTestPop(stack, rule, expectedSize); }
public void testContains() { // Set up RuleStack stack = new RuleStack(); stack.push(RuleConstants.ACCESS_PATTERN_VALIDATION); stack.push(RuleConstants.COLLAPSE_SOURCE); assertEquals(true, stack.contains(RuleConstants.ACCESS_PATTERN_VALIDATION)); assertEquals(false, stack.contains(RuleConstants.PLACE_ACCESS)); }
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$ }
private Command helpTest(String sql, String expected, boolean aliasGroups, boolean stripColumnAliases, QueryMetadataInterface metadata) throws TeiidComponentException, TeiidProcessingException { AliasGenerator visitor = new AliasGenerator(aliasGroups, stripColumnAliases); return helpTest(sql, expected, metadata, visitor); }
public void testPopNothing() { RuleStack stack = new RuleStack(); helpTestPop(stack, null, 0); }
public void visit(SubqueryCompareCriteria obj) { visitNode(obj.getLeftExpression()); visitor.createChildNamingContext(false); visitNode(obj.getCommand()); visitor.removeChildNamingContext(); }
public AliasGenerator(boolean aliasGroups, boolean stripColumnAliases) { super(new NamingVisitor(aliasGroups)); this.visitor = (NamingVisitor)this.getVisitor(); this.stripColumnAliases = stripColumnAliases; }
private static PlanNode attachProject(PlanNode plan, List<? extends Expression> select) { PlanNode projectNode = createProjectNode(select); attachLast(projectNode, plan); return projectNode; }
public void visit(SubquerySetCriteria obj) { visitNode(obj.getExpression()); visitor.createChildNamingContext(false); visitNode(obj.getCommand()); visitor.removeChildNamingContext(); }
public AliasGenerator(boolean aliasGroups, boolean stripColumnAliases) { super(new NamingVisitor(aliasGroups)); this.visitor = (NamingVisitor)this.getVisitor(); this.stripColumnAliases = stripColumnAliases; }
private static PlanNode attachProject(PlanNode plan, List<? extends Expression> select) { PlanNode projectNode = createProjectNode(select); attachLast(projectNode, plan); return projectNode; }
public void visit(SubquerySetCriteria obj) { visitNode(obj.getExpression()); visitor.createChildNamingContext(false); visitNode(obj.getCommand()); visitor.removeChildNamingContext(); }
public void visit(ExistsCriteria obj) { if (obj.shouldEvaluate()) { return; } visitor.createChildNamingContext(false); visitNode(obj.getCommand()); visitor.removeChildNamingContext(); }
public void visit(ExistsCriteria obj) { if (obj.shouldEvaluate()) { return; } visitor.createChildNamingContext(false); visitNode(obj.getCommand()); visitor.removeChildNamingContext(); }