Examples of POCast


Examples of org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POCast

    }
  }
 
  @Test
  public void testBagToOther() throws IOException {
    POCast op = new POCast(new OperatorKey("", r.nextLong()), -1);
    op.setFuncSpec(new FuncSpec(PigStorage.class.getName()));
    POProject prj = new POProject(new OperatorKey("", r.nextLong()), -1, 0);
    PhysicalPlan plan = new PhysicalPlan();
    plan.add(prj);
    plan.add(op);
    plan.connect(prj, op);
   
    prj.setResultType(DataType.BAG);
   
    TupleFactory tf = TupleFactory.getInstance();
   
    //Plan to test when result type is ByteArray and casting is requested
    //for example casting of values coming out of map lookup.
    POCast opWithInputTypeAsBA = new POCast(new OperatorKey("", r.nextLong()), -1);
    PhysicalPlan planToTestBACasts = constructPlan(opWithInputTypeAsBA);
    {
      Tuple t = tf.newTuple();
      t.append(GenRandomData.genRandSmallTupDataBag(r, 1, 100));
      plan.attachInput(t);
      Map map = null;
      Result res = op.getNext(map);
      assertEquals(POStatus.STATUS_ERR, res.returnStatus);
    }
   
    {
      Tuple t = tf.newTuple();
      t.append(GenRandomData.genRandSmallTupDataBag(r, 1, 100));
      plan.attachInput(t);
      Result res = op.getNext(t);
      assertEquals(POStatus.STATUS_ERR, res.returnStatus);
    }
   
    {
      Tuple t = tf.newTuple();
      t.append(GenRandomData.genRandSmallTupDataBag(r, 1, 100));
      plan.attachInput(t);
      DataBag b = (DataBag) t.get(0);
      Result res = op.getNext(b);
      //System.out.println(res.result + " : " + t);
      assertEquals(b, res.result);
     
      planToTestBACasts.attachInput(t);
      res = opWithInputTypeAsBA.getNext(b);
      assertEquals(b, res.result);
    }
   
    {
      Tuple t = tf.newTuple();
View Full Code Here

Examples of org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POCast

    }
  }
 
  @Test
  public void testMapToOther() throws IOException {
    POCast op = new POCast(new OperatorKey("", r.nextLong()), -1);
    op.setFuncSpec(new FuncSpec(PigStorage.class.getName()));
    POProject prj = new POProject(new OperatorKey("", r.nextLong()), -1, 0);
    PhysicalPlan plan = new PhysicalPlan();
    plan.add(prj);
    plan.add(op);
    plan.connect(prj, op);
    prj.setResultType(DataType.MAP);
   
    // Plan to test when result type is ByteArray and casting is requested
    // for example casting of values coming out of map lookup.
    POCast opWithInputTypeAsBA = new POCast(new OperatorKey("", r.nextLong()), -1);
    PhysicalPlan planToTestBACasts = constructPlan(opWithInputTypeAsBA);
    TupleFactory tf = TupleFactory.getInstance();
    {
      Tuple t = tf.newTuple();
      t.append(GenRandomData.genRandMap(r, 10));
      plan.attachInput(t);
      Map map = (Map) t.get(0);
      Result res = op.getNext(map);
      //System.out.println(res.result + " : " + t);
      assertEquals(map, res.result);
        
      planToTestBACasts.attachInput(t);
      res = opWithInputTypeAsBA.getNext(map);
      assertEquals(map, res.result);
    }
   
    {
      Tuple t = tf.newTuple();
View Full Code Here

Examples of org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POCast

        bag.add(t);
      }
     
    }
   
    POCast op = new POCast(new OperatorKey("", r.nextLong()), -1);
    POProject prj = new POProject(new OperatorKey("", r.nextLong()), -1, 0);
    PhysicalPlan plan = new PhysicalPlan();      
    plan.add(prj);
    plan.add(op);
    plan.connect(prj, op);
   
    prj.setResultType(DataType.INTEGER);     
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      if(t.get(0) == null) {
       
        Integer result  = (Integer)op.getNext((Integer)null).result;
        assertEquals( null, result);

      }
     
    }
   
    prj.setResultType(DataType.FLOAT);
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      if(t.get(0) == null) {
       
        Integer result  = (Integer)op.getNext((Integer)null).result;
        assertEquals( null, result);

      }
     
    }
   
    prj.setResultType(DataType.DOUBLE);
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      if(t.get(0) == null) {
       
        Double result = (Double) op.getNext((Double) null).result;
      assertEquals(null, result);

      }
    }
   
    prj.setResultType(DataType.CHARARRAY);
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      if(t.get(0) == null) {
       
        String result  = (String)op.getNext((String)null).result;
        assertEquals( null, result);

      }
     
    }
   
    prj.setResultType(DataType.BYTEARRAY);
   
    TupleFactory tf = TupleFactory.getInstance();
   
    {
      Tuple t = tf.newTuple();
      t.append(new DataByteArray((new Integer(r.nextInt())).toString().getBytes()));
      plan.attachInput(t);
      if(t.get(0) == null) {
       
        DataByteArray result = (DataByteArray) op.getNext((String) null).result;
        assertEquals(null, result);
       
      }
     
    }
View Full Code Here

Examples of org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POCast

  @Test
  public void testValueTypesChanged() throws IOException {

    // Plan to test when result type is ByteArray and casting is requested
    // for example casting of values coming out of map lookup.
    POCast opWithInputTypeAsBA = new POCast(new OperatorKey("", r.nextLong()), -1);
    PhysicalPlan planToTestBACasts = constructPlan(opWithInputTypeAsBA);
    DataBag bag = BagFactory.getInstance().newDefaultBag();

    // Create a bag having tuples having values of different types.
    for(int i = 0; i < MAX; i++) {
      Tuple t = TupleFactory.getInstance().newTuple();
      if(i % 4 == 0)
        t.append(r.nextInt());
      if(i % 4 == 1)
        t.append(r.nextLong());
      if(i % 4 == 2)
        t.append(r.nextDouble());
      if(i % 4 == 3)
        t.append(r.nextFloat());
      bag.add(t);
    }

    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      planToTestBACasts.attachInput(t);
      Object toCast = t.get(0);
      Integer i = DataType.toInteger(toCast);
      Result res = opWithInputTypeAsBA.getNext(i);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(i, res.result);
      }
      Long l = DataType.toLong(toCast);
      res = opWithInputTypeAsBA.getNext(l);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(l, res.result);
      }

      Float f = DataType.toFloat(toCast);
      res = opWithInputTypeAsBA.getNext(f);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(f, res.result);
      }

      Double d = DataType.toDouble(toCast);
      res = opWithInputTypeAsBA.getNext(d);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(d, res.result);
      }

      String s = DataType.toString(toCast);
      res = opWithInputTypeAsBA.getNext(s);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(s, res.result);
      }
    }
  }
View Full Code Here

Examples of org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POCast

      Tuple t = TupleFactory.getInstance().newTuple();
      t.append(r.nextInt());
      bag.add(t);
    }
   
    POCast op = new POCast(new OperatorKey("", r.nextLong()), -1);
    LoadFunc load = new TestLoader();
    op.setFuncSpec(new FuncSpec(load.getClass().getName()));
    POProject prj = new POProject(new OperatorKey("", r.nextLong()), -1, 0);
    PhysicalPlan plan = new PhysicalPlan();
    plan.add(prj);
    plan.add(op);
    plan.connect(prj, op);
   
    prj.setResultType(DataType.INTEGER);
    // Plan to test when result type is ByteArray and casting is requested
    // for example casting of values coming out of map lookup.
    POCast opWithInputTypeAsBA = new POCast(new OperatorKey("", r.nextLong()), -1);
    PhysicalPlan planToTestBACasts = constructPlan(opWithInputTypeAsBA);
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      Integer i = (Integer) t.get(0);
      Result res = op.getNext(i);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(i, res.result);
      }
      planToTestBACasts.attachInput(t);
      res = opWithInputTypeAsBA.getNext(i);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(i, res.result);
      }
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      Float f = ((Integer)t.get(0)).floatValue();
      Result res = op.getNext(f);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(f, res.result);
      }
      planToTestBACasts.attachInput(t);
      res = opWithInputTypeAsBA.getNext(f);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(f, res.result);
      }
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      Long l = ((Integer)t.get(0)).longValue();
      Result res = op.getNext(l);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(l, res.result);
      }
      planToTestBACasts.attachInput(t);
      res = opWithInputTypeAsBA.getNext(l);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(l, res.result);
      }
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      Double d = ((Integer)t.get(0)).doubleValue();
      Result res = op.getNext(d);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(d, res.result);
      }
      planToTestBACasts.attachInput(t);
      res = opWithInputTypeAsBA.getNext(d);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(d, res.result);
      }
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      String str = ((Integer)t.get(0)).toString();
      Result res = op.getNext(str);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(str, res.result);
      }
      planToTestBACasts.attachInput(t);
      res = opWithInputTypeAsBA.getNext(str);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(str, res.result);
      }
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      DataByteArray dba = new DataByteArray(((Integer)t.get(0)).toString().getBytes());
      Result res = op.getNext(dba);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(dba, res.result);
      }
      planToTestBACasts.attachInput(t);
      res = opWithInputTypeAsBA.getNext(dba);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(dba, res.result);
      }
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      Map map = null;
      Result res = op.getNext(map);
      assertEquals(POStatus.STATUS_ERR, res.returnStatus);
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      Result res = op.getNext(t);
      assertEquals(POStatus.STATUS_ERR, res.returnStatus);
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      DataBag b = null;
      Result res = op.getNext(b);
      assertEquals(POStatus.STATUS_ERR, res.returnStatus);
    }
        {
            planToTestBACasts.attachInput(dummyTuple);
            try{
                opWithInputTypeAsBA.getNext(dummyMap);
            }catch (Exception e) {
                assertEquals(ExecException.class, e.getClass());
            }
        }
        {
            planToTestBACasts.attachInput(dummyTuple);
            try{
                opWithInputTypeAsBA.getNext(dummyTuple);
            }catch (Exception e) {
                assertEquals(ExecException.class, e.getClass());
            }
        }
        {
            planToTestBACasts.attachInput(dummyTuple);
            try{
                opWithInputTypeAsBA.getNext(dummyBag);
            }catch (Exception e) {
                assertEquals(ExecException.class, e.getClass());
            }
        }
  }
View Full Code Here

Examples of org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POCast

//        System.err.println("Exiting Constant");
    }
   
    @Override
    public void visitCast( CastExpression op ) throws IOException {
        POCast pCast = new POCast(new OperatorKey(DEFAULT_SCOPE, nodeGen
                .getNextNodeId(DEFAULT_SCOPE)));
//        physOp.setAlias(op.getAlias());
        currentPlan.add(pCast);

        logToPhyMap.put(op, pCast);
        ExpressionOperator from = (ExpressionOperator) logToPhyMap.get(op
                .getExpression());
        pCast.setResultType(op.getType());
        FuncSpec lfSpec = op.getFuncSpec();
        if(null != lfSpec) {
            pCast.setFuncSpec(lfSpec);
        }
        try {
            currentPlan.connect(from, pCast);
        } catch (PlanException e) {
            int errCode = 2015;
View Full Code Here

Examples of org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POCast

    return new OperatorKey("scope", newId);
  }

  public void testCast() throws ExecException {

    POCast cast = new POCast(newOperatorKey(), -1);
    POProject proj = new POProject(newOperatorKey(), -1, 0);
    proj.setResultType(DataType.CHARARRAY);
    List<PhysicalOperator> inputs = new ArrayList<PhysicalOperator>();
    inputs.add(proj);
    cast.setInputs(inputs);

    // cast to double
    String[] items = { "12.0", "-13.2", "0.1f", "1.3e2", "zjf",
        MaxDouble.toString(), MinDouble.toString() };
    Double[] doubleExpected = { 12.0, -13.2, 0.1, 1.3e2, null, MaxDouble,
        MinDouble };
    for (int i = 0; i < items.length; ++i) {
      Tuple tuple = TupleFactory.getInstance().newTuple(1);
      tuple.set(0, items[i]);
      proj.attachInput(tuple);
      Double actual = (Double) cast.getNext(dummyDouble).result;
      if (doubleExpected[i] != null) {
        assertEquals(doubleExpected[i], actual, 1e-6);
      } else {
        assertNull(actual);
      }
    }

    // cast to float
    items = new String[] { "12.0", "-13.2", "0.1f", "1.3e2",
        MaxFloat.toString(), MinFloat.toString(), "zjf" };
    Float[] floatExpected = { 12.0f, -13.2f, 0.1f, 1.3e2f, MaxFloat,
        MinFloat, null };
    for (int i = 0; i < items.length; ++i) {
      Tuple tuple = TupleFactory.getInstance().newTuple(1);
      tuple.set(0, items[i]);
      proj.attachInput(tuple);
      Float actual = (Float) cast.getNext(dummyFloat).result;
      if (floatExpected[i] != null) {
        assertEquals(floatExpected[i], actual, 1e-6);
      } else {
        assertNull(actual);
      }
    }

    // cast to long
    items = new String[] { "1", "-1", "12.2", "12.8", MaxLong.toString(),
        MinLong.toString(), "df1.2" };
    Long[] longExpected = { 1L, -1L, 12L, 12L, MaxLong, MinLong, null };
    for (int i = 0; i < items.length; ++i) {
      Tuple tuple = TupleFactory.getInstance().newTuple(1);
      tuple.set(0, items[i]);
      proj.attachInput(tuple);
      Long actual = (Long) cast.getNext(dummyLong).result;
      if (longExpected[i] != null) {
        assertEquals(longExpected[i], actual);
      } else {
        assertNull(actual);
      }
    }

    // cast to int
    items = new String[] { "1", "-1", "12.2", "12.8",
        MaxInteger.toString(), MinInteger.toString(), "ff4332" };
    Integer[] intExpected = { 1, -1, 12, 12, MaxInteger, MinInteger, null };
    for (int i = 0; i < items.length; ++i) {
      Tuple tuple = TupleFactory.getInstance().newTuple(1);
      tuple.set(0, items[i]);
      proj.attachInput(tuple);
      Integer actual = (Integer) cast.getNext(dummyInteger).result;
      if (intExpected[i] != null) {
        assertEquals(intExpected[i], actual);
      } else {
        assertNull(actual);
      }
View Full Code Here

Examples of org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POCast

    return new OperatorKey("scope", newId);
  }

  public void testCast() throws ExecException {

    POCast cast = new POCast(newOperatorKey(), -1);
    POProject proj = new POProject(newOperatorKey(), -1, 0);
    proj.setResultType(DataType.CHARARRAY);
    List<PhysicalOperator> inputs = new ArrayList<PhysicalOperator>();
    inputs.add(proj);
    cast.setInputs(inputs);

    // cast to double
    String[] items = { "12.0", "-13.2", "0.1f", "1.3e2", "zjf",
        MaxDouble.toString(), MinDouble.toString() };
    Double[] doubleExpected = { 12.0, -13.2, 0.1, 1.3e2, null, MaxDouble,
        MinDouble };
    for (int i = 0; i < items.length; ++i) {
      Tuple tuple = TupleFactory.getInstance().newTuple(1);
      tuple.set(0, items[i]);
      proj.attachInput(tuple);
      Double actual = (Double) cast.getNext(dummyDouble).result;
      if (doubleExpected[i] != null) {
        assertEquals(doubleExpected[i], actual, 1e-6);
      } else {
        assertNull(actual);
      }
    }

    // cast to float
    items = new String[] { "12.0", "-13.2", "0.1f", "1.3e2",
        MaxFloat.toString(), MinFloat.toString(), "zjf" };
    Float[] floatExpected = { 12.0f, -13.2f, 0.1f, 1.3e2f, MaxFloat,
        MinFloat, null };
    for (int i = 0; i < items.length; ++i) {
      Tuple tuple = TupleFactory.getInstance().newTuple(1);
      tuple.set(0, items[i]);
      proj.attachInput(tuple);
      Float actual = (Float) cast.getNext(dummyFloat).result;
      if (floatExpected[i] != null) {
        assertEquals(floatExpected[i], actual, 1e-6);
      } else {
        assertNull(actual);
      }
    }

    // cast to long
    items = new String[] { "1", "-1", "12.2", "12.8", MaxLong.toString(),
        MinLong.toString(), "df1.2" };
    Long[] longExpected = { 1L, -1L, 12L, 12L, MaxLong, MinLong, null };
    for (int i = 0; i < items.length; ++i) {
      Tuple tuple = TupleFactory.getInstance().newTuple(1);
      tuple.set(0, items[i]);
      proj.attachInput(tuple);
      Long actual = (Long) cast.getNext(dummyLong).result;
      if (longExpected[i] != null) {
        assertEquals(longExpected[i], actual);
      } else {
        assertNull(actual);
      }
    }

    // cast to int
    items = new String[] { "1", "-1", "12.2", "12.8",
        MaxInteger.toString(), MinInteger.toString(), "ff4332" };
    Integer[] intExpected = { 1, -1, 12, 12, MaxInteger, MinInteger, null };
    for (int i = 0; i < items.length; ++i) {
      Tuple tuple = TupleFactory.getInstance().newTuple(1);
      tuple.set(0, items[i]);
      proj.attachInput(tuple);
      Integer actual = (Integer) cast.getNext(dummyInteger).result;
      if (intExpected[i] != null) {
        assertEquals(intExpected[i], actual);
      } else {
        assertNull(actual);
      }
View Full Code Here

Examples of org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POCast

      Tuple t = TupleFactory.getInstance().newTuple();
      t.append(r.nextInt());
      bag.add(t);
    }
   
    POCast op = new POCast(new OperatorKey("", r.nextLong()), -1);
    LoadFunc load = new TestLoader();
    op.setLoadFSpec(new FuncSpec(load.getClass().getName()));
    POProject prj = new POProject(new OperatorKey("", r.nextLong()), -1, 0);
    PhysicalPlan plan = new PhysicalPlan();
    plan.add(prj);
    plan.add(op);
    plan.connect(prj, op);
   
    prj.setResultType(DataType.INTEGER);
    // Plan to test when result type is ByteArray and casting is requested
    // for example casting of values coming out of map lookup.
    POCast opWithInputTypeAsBA = new POCast(new OperatorKey("", r.nextLong()), -1);
    PhysicalPlan planToTestBACasts = constructPlan(opWithInputTypeAsBA);
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      Integer i = (Integer) t.get(0);
      Result res = op.getNext(i);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(i, res.result);
      }
      planToTestBACasts.attachInput(t);
      res = opWithInputTypeAsBA.getNext(i);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(i, res.result);
      }
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      Float f = ((Integer)t.get(0)).floatValue();
      Result res = op.getNext(f);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(f, res.result);
      }
      planToTestBACasts.attachInput(t);
      res = opWithInputTypeAsBA.getNext(f);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(f, res.result);
      }
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      Long l = ((Integer)t.get(0)).longValue();
      Result res = op.getNext(l);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(l, res.result);
      }
      planToTestBACasts.attachInput(t);
      res = opWithInputTypeAsBA.getNext(l);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(l, res.result);
      }
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      Double d = ((Integer)t.get(0)).doubleValue();
      Result res = op.getNext(d);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(d, res.result);
      }
      planToTestBACasts.attachInput(t);
      res = opWithInputTypeAsBA.getNext(d);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(d, res.result);
      }
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      String str = ((Integer)t.get(0)).toString();
      Result res = op.getNext(str);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(str, res.result);
      }
      planToTestBACasts.attachInput(t);
      res = opWithInputTypeAsBA.getNext(str);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(str, res.result);
      }
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      DataByteArray dba = new DataByteArray(((Integer)t.get(0)).toString().getBytes());
      Result res = op.getNext(dba);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(dba, res.result);
      }
      planToTestBACasts.attachInput(t);
      res = opWithInputTypeAsBA.getNext(dba);
      if(res.returnStatus == POStatus.STATUS_OK) {
        assertEquals(dba, res.result);
      }
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      Map map = null;
      Result res = op.getNext(map);
      assertEquals(POStatus.STATUS_ERR, res.returnStatus);
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      Result res = op.getNext(t);
      assertEquals(POStatus.STATUS_ERR, res.returnStatus);
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      DataBag b = null;
      Result res = op.getNext(b);
      assertEquals(POStatus.STATUS_ERR, res.returnStatus);
    }
        {
            planToTestBACasts.attachInput(dummyTuple);
            try{
                opWithInputTypeAsBA.getNext(dummyMap);
            }catch (Exception e) {
                assertEquals(ExecException.class, e.getClass());
            }
        }
        {
            planToTestBACasts.attachInput(dummyTuple);
            try{
                opWithInputTypeAsBA.getNext(dummyTuple);
            }catch (Exception e) {
                assertEquals(ExecException.class, e.getClass());
            }
        }
        {
            planToTestBACasts.attachInput(dummyTuple);
            try{
                opWithInputTypeAsBA.getNext(dummyBag);
            }catch (Exception e) {
                assertEquals(ExecException.class, e.getClass());
            }
        }
  }
View Full Code Here

Examples of org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POCast

      Tuple t = TupleFactory.getInstance().newTuple();
      t.append(r.nextLong());
      bag.add(t);
    }
   
    POCast op = new POCast(new OperatorKey("", r.nextLong()), -1);
    LoadFunc load = new TestLoader();
    op.setLoadFSpec(new FuncSpec(load.getClass().getName()));
    POProject prj = new POProject(new OperatorKey("", r.nextLong()), -1, 0);
    PhysicalPlan plan = new PhysicalPlan();
    plan.add(prj);
    plan.add(op);
    plan.connect(prj, op);
   
    prj.setResultType(DataType.LONG);
   
    // Plan to test when result type is ByteArray and casting is requested
    // for example casting of values coming out of map lookup.
    POCast opWithInputTypeAsBA = new POCast(new OperatorKey("", r.nextLong()), -1);
    PhysicalPlan planToTestBACasts = constructPlan(opWithInputTypeAsBA);
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      Integer i = ((Long) t.get(0)).intValue();
      Result res = op.getNext(i);
      if(res.returnStatus == POStatus.STATUS_OK) {
        //System.out.println(res.result + " : " + i);
        assertEquals(i, res.result);
      }
     
      planToTestBACasts.attachInput(t);
      res = opWithInputTypeAsBA.getNext(i);
      if(res.returnStatus == POStatus.STATUS_OK)
        assertEquals(i, res.result);
     
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      Float f = ((Long)t.get(0)).floatValue();
      Result res = op.getNext(f);
      if(res.returnStatus == POStatus.STATUS_OK) {
//         System.out.println(res.result + " : " + f);
        assertEquals(f, res.result);
      }
     
      planToTestBACasts.attachInput(t);
      res = opWithInputTypeAsBA.getNext(f);
      if(res.returnStatus == POStatus.STATUS_OK)
        assertEquals(f, res.result);
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      Long l = ((Long)t.get(0)).longValue();
      Result res = op.getNext(l);
      if(res.returnStatus == POStatus.STATUS_OK) {
        //System.out.println(res.result + " : " + l);
        assertEquals(l, res.result);
      }
     
      planToTestBACasts.attachInput(t);
      res = opWithInputTypeAsBA.getNext(l);
      if(res.returnStatus == POStatus.STATUS_OK)
        assertEquals(l, res.result);
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      Double d = ((Long)t.get(0)).doubleValue();
      Result res = op.getNext(d);
      if(res.returnStatus == POStatus.STATUS_OK) {
        //System.out.println(res.result + " : " + d);
        assertEquals(d, res.result);
      }
     
      planToTestBACasts.attachInput(t);
      res = opWithInputTypeAsBA.getNext(d);
      if(res.returnStatus == POStatus.STATUS_OK)
        assertEquals(d, res.result);
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      String str = ((Long)t.get(0)).toString();
      Result res = op.getNext(str);
      if(res.returnStatus == POStatus.STATUS_OK) {
        //System.out.println(res.result + " : " + str);
        assertEquals(str, res.result);
      }
     
      planToTestBACasts.attachInput(t);
      res = opWithInputTypeAsBA.getNext(str);
      if(res.returnStatus == POStatus.STATUS_OK)
        assertEquals(str, res.result);
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      DataByteArray dba = new DataByteArray(((Long)t.get(0)).toString().getBytes());
      Result res = op.getNext(dba);
      if(res.returnStatus == POStatus.STATUS_OK) {
        //System.out.println(res.result + " : " + dba);
        assertEquals(dba, res.result);
      }
     
      planToTestBACasts.attachInput(t);
      res = opWithInputTypeAsBA.getNext(dba);
      if(res.returnStatus == POStatus.STATUS_OK)
        assertEquals(dba, res.result);
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      Map map = null;
      Result res = op.getNext(map);
      assertEquals(POStatus.STATUS_ERR, res.returnStatus);
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      Result res = op.getNext(t);
      assertEquals(POStatus.STATUS_ERR, res.returnStatus);
    }
   
    for(Iterator<Tuple> it = bag.iterator(); it.hasNext(); ) {
      Tuple t = it.next();
      plan.attachInput(t);
      DataBag b = null;
      Result res = op.getNext(b);
      assertEquals(POStatus.STATUS_ERR, res.returnStatus);
    }
        {
            planToTestBACasts.attachInput(dummyTuple);
            try{
                opWithInputTypeAsBA.getNext(dummyMap);
            }catch (Exception e) {
                assertEquals(ExecException.class, e.getClass());
            }
        }
        {
            planToTestBACasts.attachInput(dummyTuple);
            try{
                opWithInputTypeAsBA.getNext(dummyTuple);
            }catch (Exception e) {
                assertEquals(ExecException.class, e.getClass());
            }
        }
        {
            planToTestBACasts.attachInput(dummyTuple);
            try{
                opWithInputTypeAsBA.getNext(dummyBag);
            }catch (Exception e) {
                assertEquals(ExecException.class, e.getClass());
            }
        }
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.