Package org.apache.pig.newplan.logical.expression

Examples of org.apache.pig.newplan.logical.expression.ProjectExpression


                // Check if flatten fields are required by the successor.
                LOSort sort = (LOSort)succ;
                List<LogicalExpressionPlan> exps = sort.getSortColPlans();
                for( int i = 0; i < exps.size(); i++ ) {
                    LogicalExpressionPlan exp = exps.get( i );
                    ProjectExpression proj = (ProjectExpression)exp.getOperators().next();
                    if( !uids.contains( proj.getFieldSchema().uid ) )
                        return false;
                }

                return true;
            } else {
                List<Operator> preds = currentPlan.getPredecessors( succ );
               
                // We do not optimize if peer is ForEach with flatten. This is
                // a simplification, may change in the future.
                for( Operator op : preds ) {
                    if( op == foreach )
                        continue;
                    else if( op instanceof LOForEach &&
                            OptimizerUtils.hasFlatten( OptimizerUtils.findGenerate( (LOForEach)op ) ) )
                        return false;
                }
               
                if( ( (LogicalRelationalOperator)succ ).getSchema() == null )
                    return false;
               
                if( succ instanceof LOCross ) {
                    return true;
                } else {
                    LOJoin join = (LOJoin)succ;
                    for( int i = 0; i < preds.size(); i++ ) {
                        Operator op = preds.get( i );
                        if( op == foreach ) {
                            Collection<LogicalExpressionPlan> exprs = join.getJoinPlan( i );
                            for( LogicalExpressionPlan expr : exprs ) {
                                List<ProjectExpression> projs = getProjectExpressions( expr );
                                for( ProjectExpression proj : projs ) {
                                    if( !uids.contains( proj.getFieldSchema().uid ) ) {
                                        return false;
                                    }
                                }
                            }
                            break;
View Full Code Here


                    gen.setUserDefinedSchema(mUserDefinedSchema);
                innerPlan.add( gen );
                newForeach.setInnerPlan( innerPlan );
                for( int i = 0; i < fieldCount; i++ ) {
                    LogicalExpressionPlan expr = new LogicalExpressionPlan();
                    expr.add( new ProjectExpression( expr, i, -1, gen ) );
                    exprs.add( expr );
                   
                    LOInnerLoad innerLoad = new LOInnerLoad(innerPlan, newForeach, i);
                    innerPlan.add(innerLoad);
                    innerPlan.connect(innerLoad, gen);
View Full Code Here

                input = outerPlan.getPredecessors(split).indexOf(lg);
            }
            else {
                input = outerPlan.getPredecessors(oldAttachedRelationalOp).indexOf(lg);
            }
            pe = new ProjectExpression(exprPlan, input, project.isStar()?-1:col, attachedRelationalOp);
        }
       
        exprPlan.add(pe);
        exprOpsMap.put(project, pe);      
        translateConnection(project, pe);                      
View Full Code Here

            LOInnerLoad innerLoad = new LOInnerLoad(innerPlan, foreach, i);
            innerPlan.add(innerLoad);
            innerPlan.connect(innerLoad, gen);
           
            LogicalExpressionPlan exp = new LogicalExpressionPlan();
            ProjectExpression prj = new ProjectExpression(exp, j++, -1, gen);
            exp.add(prj);
            exps.add(exp);
        }
        return foreach;
    }
View Full Code Here

   {
    if(op instanceof ConstantExpression) {
      ConstantExpression constExpr =(ConstantExpression)op ;
      return new Expression.Const( constExpr.getValue() );
    } else if (op instanceof ProjectExpression) {
      ProjectExpression projExpr = (ProjectExpression)op;
      String fieldName = projExpr.getFieldSchema().alias;
            return new Expression.Column(fieldName);
        } else {
      if( !( op instanceof BinaryExpression ) ) {
        throwException();
      }
View Full Code Here

                                 
            // The logical plan part is done, add this sub plan under LOGenerate,
            // and prepare for the expression plan
            newInnerPlan.connect(innerLoad, gen);
           
            ProjectExpression pe = new ProjectExpression(exprPlan, inputNo++, -1, gen);
            exprPlan.add(pe);
            exprOpsMap.put(project, pe);
            try {
                translateInnerPlanConnection(project, pe);
            } catch (FrontendException e) {
View Full Code Here

                    newForEach, project.isStar()?-1:project.getCol());
            newForEachInnerPlan.add(innerLoad);
            newForEachInnerPlan.connect(innerLoad, generate);
            LogicalExpressionPlan expPlan = new LogicalExpressionPlan();
            expPlans.add(expPlan);
            ProjectExpression pe = new ProjectExpression(expPlan, i, -1, generate);
            expPlan.add(pe);
        }
       
        newInnerPlan.add(newForEach);
        innerOpsMap.put(foreach, newForEach);
View Full Code Here

        // check join input plans
        LogicalExpressionPlan p1 = ((LOJoin)op).getJoinPlan(0).iterator().next();
        assertEquals(p1.size(), 1);
       
        ProjectExpression prj = (ProjectExpression)p1.getSources().get(0);
      
        assertEquals(prj.getInputNum(), 0);
        assertEquals(prj.getColNum(), 0);
       
        LogicalExpressionPlan p2 = ((LOJoin)op).getJoinPlan(1).iterator().next();
        assertEquals(p2.size(), 1);
       
        prj = (ProjectExpression)p2.getSources().get(0);
    
        assertEquals(prj.getInputNum(), 1);
        assertEquals(prj.getColNum(), 1);
       
        // check filter
        op = (LogicalRelationalOperator)newPlan.getSuccessors(op).get(0);
        assertEquals(op.getClass(), org.apache.pig.newplan.logical.relational.LOFilter.class);       
        LogicalExpressionPlan exp = ((org.apache.pig.newplan.logical.relational.LOFilter)op).getFilterPlan();
View Full Code Here

        innerPlan.add(l2);
       
        List<LogicalExpressionPlan> eps = new ArrayList<LogicalExpressionPlan>();
        LOGenerate gen = new LOGenerate(innerPlan, eps, new boolean[] {false, true});
        LogicalExpressionPlan p1 = new LogicalExpressionPlan();
        p1.add(new ProjectExpression(p1, 0, -1, gen));
        LogicalExpressionPlan p2 = new LogicalExpressionPlan();
        p2.add(new ProjectExpression(p2, 1, -1, gen));
        eps.add(p1);
        eps.add(p2);
       
       
        innerPlan.add(gen);
View Full Code Here

        innerPlan.add(l2);
       
        List<LogicalExpressionPlan>  eps = new ArrayList<LogicalExpressionPlan>();
        LOGenerate gen = new LOGenerate(innerPlan, eps, new boolean[] {false, true});
        LogicalExpressionPlan p1 = new LogicalExpressionPlan();
        new ProjectExpression(p1, 0, -1, gen);
        LogicalExpressionPlan p2 = new LogicalExpressionPlan();       
        new ProjectExpression(p2, 1, -1, gen);
        eps.add(p1);
        eps.add(p2);
       
        innerPlan.add(gen);
        innerPlan.connect(l1, gen);
View Full Code Here

TOP

Related Classes of org.apache.pig.newplan.logical.expression.ProjectExpression

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.