@Override public LogicalNode visitProjection(Context state, LogicalPlan plan, LogicalPlan.QueryBlock block, ProjectionNode node, Stack<LogicalNode> stack) throws TajoException { super.visitProjection(state, plan, block, node, stack); for (Target target : node.getTargets()) { ExprsVerifier.verify(state.state, node, target.getEvalTree()); } verifyProjectableOutputSchema(state, node); return node; }
@Override public LogicalNode visitProjection(Context state, LogicalPlan plan, LogicalPlan.QueryBlock block, ProjectionNode node, Stack<LogicalNode> stack) throws TajoException { super.visitProjection(state, plan, block, node, stack); for (Target target : node.getTargets()) { ExprsVerifier.verify(state.state, node, target.getEvalTree()); } verifyProjectableOutputSchema(state, node); return node; }
@Override public LogicalNode visitProjection(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, ProjectionNode projection, Stack<LogicalNode> stack) throws TajoException { super.visitProjection(context, plan, block, projection, stack); int [] childIds = registerGetChildIds(context, projection); PlanProto.ProjectionNode.Builder projectionBuilder = PlanProto.ProjectionNode.newBuilder(); projectionBuilder.setChildSeq(childIds[0]); projectionBuilder.addAllTargets( ProtoUtil.<PlanProto.Target>toProtoObjects(projection.getTargets().toArray(new ProtoObject[projection.getTargets().size()]))); projectionBuilder.setDistinct(projection.isDistinct()); PlanProto.LogicalNode.Builder nodeBuilder = createNodeBuilder(context, projection); nodeBuilder.setProjection(projectionBuilder); context.treeBuilder.addNodes(nodeBuilder); return projection; }
@Override public LogicalNode visitProjection(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, ProjectionNode projection, Stack<LogicalNode> stack) throws TajoException { super.visitProjection(context, plan, block, projection, stack); int [] childIds = registerGetChildIds(context, projection); PlanProto.ProjectionNode.Builder projectionBuilder = PlanProto.ProjectionNode.newBuilder(); projectionBuilder.setChildSeq(childIds[0]); projectionBuilder.addAllTargets( ProtoUtil.<PlanProto.Target>toProtoObjects(projection.getTargets())); projectionBuilder.setDistinct(projection.isDistinct()); PlanProto.LogicalNode.Builder nodeBuilder = createNodeBuilder(context, projection); nodeBuilder.setProjection(projectionBuilder); context.treeBuilder.addNodes(nodeBuilder); return projection; }
@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"); }
ProjectionNode node, Stack<LogicalNode> stack) throws TajoException { Context newContext = new Context(context); List<Target> targets = node.getTargets(); int targetNum = targets.size(); String [] referenceNames = new String[targetNum];
ProjectionNode node, Stack<LogicalNode> stack) throws TajoException { Context newContext = new Context(context); Target [] targets = node.getTargets(); int targetNum = targets.length; String [] referenceNames = new String[targetNum];
List<Target> targets = projectionNode.getTargets(); Collections.sort(targets, new Comparator<Target>() { @Override
List<Target> targets = projectionNode.getTargets(); Collections.sort(targets, new Comparator<Target>() { @Override