/** * It checks if an alias name included in the target of this node is for aggregation function. * If so, it returns TRUE. Otherwise, it returns FALSE. */ public boolean isAggregationColumn(String simpleName) { for (Target t : targets) { if (simpleName.equals(t.getNamedColumn().getSimpleName()) || simpleName.equals(t.getAlias())) { return true; } } return false; } }
@Override public String apply(@Nullable Target t) { StringBuilder sb = new StringBuilder(sqlExprGen.generate(t.getEvalTree())); if (t.hasAlias()) { sb.append(" AS ").append(t.getAlias()); } return sb.toString(); } });
/** * It checks if an alias name included in the target of this node is for aggregation function. * If so, it returns TRUE. Otherwise, it returns FALSE. */ public boolean isAggregationColumn(String simpleName) { for (int i = groupingKeys.length; i < targets.length; i++) { if (simpleName.equals(targets[i].getNamedColumn().getSimpleName()) || simpleName.equals(targets[i].getAlias())) { return true; } } return false; } }
@Override public String apply(@Nullable Target t) { StringBuilder sb = new StringBuilder(sqlExprGen.generate(t.getEvalTree())); if (t.hasAlias()) { sb.append(" AS ").append(t.getAlias()); } return sb.toString(); } });
@Override public Column apply(@javax.annotation.Nullable Target target) { return new Column(target.hasAlias() ? target.getAlias() : target.getEvalTree().getName(), getDomainByExpr(inputSchema, target.getEvalTree())); } }).build();
public static Schema getSchemaByTargets(Schema inputSchema, Target[] targets) { Schema schema = new Schema(); for (Target target : targets) { schema.addColumn( target.hasAlias() ? target.getAlias() : target.getEvalTree().getName(), getDomainByExpr(inputSchema, target.getEvalTree())); } return schema; }
public static PlanProto.Target convertTarget(Target target) { PlanProto.Target.Builder targetBuilder = PlanProto.Target.newBuilder(); targetBuilder.setExpr(EvalNodeSerializer.serialize((EvalNode) target.getEvalTree())); if (target.hasAlias()) { targetBuilder.setAlias(target.getAlias()); } return targetBuilder.build(); }
public static PlanProto.Target convertTarget(Target target) { PlanProto.Target.Builder targetBuilder = PlanProto.Target.newBuilder(); targetBuilder.setExpr(EvalNodeSerializer.serialize(target.getEvalTree())); if (target.hasAlias()) { targetBuilder.setAlias(target.getAlias()); } return targetBuilder.build(); }
public static Schema targetToSchema(Target[] targets) { Schema schema = new Schema(); for (Target t : targets) { DataType type = t.getEvalTree().getValueType(); String name; if (t.hasAlias()) { name = t.getAlias(); } else { name = t.getEvalTree().getName(); } if (!schema.containsByQualifiedName(name)) { schema.addColumn(name, type); } } return schema; }
@Test public final void testInsertInto6() throws TajoException { QueryContext qc = createQueryContext(); Expr expr = sqlAnalyzer.parse(insertStatements[6]); LogicalPlan plan = planner.createPlan(qc, expr); assertEquals(1, plan.getQueryBlocks().size()); InsertNode insertNode = getInsertNode(plan); ProjectionNode subquery = insertNode.getChild(); List<Target> targets = subquery.getTargets(); // targets MUST be manager, NULL as empid, deptname assertEquals(targets.get(0).getNamedColumn().getQualifiedName(), "default.dept.manager"); assertEquals(targets.get(1).getAlias(), "empid"); assertEquals(targets.get(1).getEvalTree().getType(), EvalType.CONST); assertEquals(targets.get(2).getNamedColumn().getQualifiedName(), "default.dept.deptname"); }
public static Schema targetToSchema(List<Target> targets) { SchemaBuilder schema = SchemaBuilder.uniqueNameBuilder(); for (Target t : targets) { Type type = t.getEvalTree().getValueType(); // hack to avoid projecting record type. if (type.isStruct()) { throw new TajoRuntimeException(new NotImplementedException("record projection")); } String name; if (t.hasAlias()) { name = t.getAlias(); } else { name = t.getEvalTree().getName(); } schema.add(name, TypeConverter.convert(type)); } return schema.build(); }