private Collector<Entry<Symbol, Expression>, Builder, Assignments> toAssignments() { return Collector.of( Assignments::builder, (builder, entry) -> builder.put(entry.getKey(), entry.getValue()), (left, right) -> { left.putAll(right.build()); return left; }, Assignments.Builder::build); }
private Collector<Entry<Symbol, Expression>, Builder, Assignments> toAssignments() { return Collector.of( Assignments::builder, (builder, entry) -> builder.put(entry.getKey(), entry.getValue()), (left, right) -> { left.putAll(right.build()); return left; }, Assignments.Builder::build); }
@Test public void testValidTypeOnlyCoercion() { Expression expression = new Cast(columnB.toSymbolReference(), StandardTypes.BIGINT); Assignments assignments = Assignments.builder() .put(symbolAllocator.newSymbol(expression, BIGINT), expression) .put(symbolAllocator.newSymbol(columnE.toSymbolReference(), VARCHAR), columnE.toSymbolReference()) // implicit coercion from varchar(3) to varchar .build(); PlanNode node = new ProjectNode(newId(), baseTableScan, assignments); assertTypesValid(node); }
private PlanBuilder explicitCoercionSymbols(PlanBuilder subPlan, Iterable<Symbol> alreadyCoerced, Iterable<? extends Expression> uncoerced) { TranslationMap translations = subPlan.copyTranslations(); Assignments assignments = Assignments.builder() .putAll(coerce(uncoerced, subPlan, translations)) .putIdentities(alreadyCoerced) .build(); return new PlanBuilder(translations, new ProjectNode( idAllocator.getNextId(), subPlan.getRoot(), assignments), analysis.getParameters()); }
public static Assignments of() { return builder().build(); }
public static Assignments identity(Iterable<Symbol> symbols) { return builder().putIdentities(symbols).build(); }
public static Assignments of(Symbol symbol1, Expression expression1, Symbol symbol2, Expression expression2) { return builder().put(symbol1, expression1).put(symbol2, expression2).build(); }
public static Assignments of(Symbol symbol, Expression expression) { return builder().put(symbol, expression).build(); }
public static Assignments of(Symbol symbol1, Expression expression1, Symbol symbol2, Expression expression2) { return builder().put(symbol1, expression1).put(symbol2, expression2).build(); }
private ProjectNode projectExpressions(PlanNode input, Assignments subqueryAssignments) { Assignments assignments = Assignments.builder() .putIdentities(input.getOutputSymbols()) .putAll(subqueryAssignments) .build(); return new ProjectNode( idAllocator.getNextId(), input, assignments); } }
public static Assignments copyOf(Map<Symbol, Expression> assignments) { return builder() .putAll(assignments) .build(); }
public static Assignments identity(Iterable<Symbol> symbols) { return builder().putIdentities(symbols).build(); }
public static Assignments of() { return builder().build(); }
private static PlanNode addProjection(Context context, PlanNode node, Symbol symbol, Expression expression) { Assignments.Builder projections = Assignments.builder(); for (Symbol outputSymbol : node.getOutputSymbols()) { projections.putIdentity(outputSymbol); } projections.put(symbol, expression); return new ProjectNode(context.getIdAllocator().getNextId(), node, projections.build()); }
@Test public void testValidTypeOnlyCoercion() { Expression expression = new Cast(columnB.toSymbolReference(), StandardTypes.BIGINT); Assignments assignments = Assignments.builder() .put(symbolAllocator.newSymbol(expression, BIGINT), expression) .put(symbolAllocator.newSymbol(columnE.toSymbolReference(), VARCHAR), columnE.toSymbolReference()) // implicit coercion from varchar(3) to varchar .build(); PlanNode node = new ProjectNode(newId(), baseTableScan, assignments); assertTypesValid(node); }
public static Assignments of(Symbol symbol, Expression expression) { return builder().put(symbol, expression).build(); }
private PlanBuilder explicitCoercionSymbols(PlanBuilder subPlan, Iterable<Symbol> alreadyCoerced, Iterable<? extends Expression> uncoerced) { TranslationMap translations = subPlan.copyTranslations(); Assignments assignments = Assignments.builder() .putAll(coerce(uncoerced, subPlan, translations)) .putIdentities(alreadyCoerced) .build(); return new PlanBuilder(translations, new ProjectNode( idAllocator.getNextId(), subPlan.getRoot(), assignments), analysis.getParameters()); }
private ProjectNode projectExpressions(PlanNode input, Assignments subqueryAssignments) { Assignments assignments = Assignments.builder() .putIdentities(input.getOutputSymbols()) .putAll(subqueryAssignments) .build(); return new ProjectNode( idAllocator.getNextId(), input, assignments); } }
public static Assignments copyOf(Map<Symbol, Expression> assignments) { return builder() .putAll(assignments) .build(); }
private static PlanNode addProjection(Context context, PlanNode node, Symbol symbol, Expression expression) { Assignments.Builder projections = Assignments.builder(); for (Symbol outputSymbol : node.getOutputSymbols()) { projections.putIdentity(outputSymbol); } projections.put(symbol, expression); return new ProjectNode(context.getIdAllocator().getNextId(), node, projections.build()); }