Package org.apache.tajo.storage

Examples of org.apache.tajo.storage.Tuple


public class TestGeneralFunction {

  @Test
  public void testDate() {
    Date date = new Date();
    Tuple tuple = new VTuple(new Datum[] {new TextDatum("25/12/2012 00:00:00")});
    Int8Datum unixtime = (Int8Datum) date.eval(tuple);
    Calendar c = Calendar.getInstance();
    c.setTimeInMillis(unixtime.asInt8());
    assertEquals(2012, c.get(Calendar.YEAR));
    assertEquals(11, c.get(Calendar.MONTH));
View Full Code Here


  public void tearDown() throws Exception {
  }

  @Test
  public final void testGetPartition() {  
    Tuple tuple1 = new VTuple(3);   
    tuple1.put(new Datum[] {
        DatumFactory.createInt4(1),
        DatumFactory.createInt4(2),
        DatumFactory.createInt4(3)
    });
    Tuple tuple2 = new VTuple(3);   
    tuple2.put(new Datum[] {
        DatumFactory.createInt4(1),
        DatumFactory.createInt4(2),
        DatumFactory.createInt4(4)
    });
    Tuple tuple3 = new VTuple(3);   
    tuple3.put(new Datum[] {
        DatumFactory.createInt4(1),
        DatumFactory.createInt4(2),
        DatumFactory.createInt4(5)
    });
    Tuple tuple4 = new VTuple(3);   
    tuple4.put(new Datum[] {
        DatumFactory.createInt4(2),
        DatumFactory.createInt4(2),
        DatumFactory.createInt4(3)
    });
    Tuple tuple5 = new VTuple(3);   
    tuple5.put(new Datum[] {
        DatumFactory.createInt4(2),
        DatumFactory.createInt4(2),
        DatumFactory.createInt4(4)
    });
   
View Full Code Here

    } catch (PlanningException e) {
      assertTrue("Wrong query statement: " + query, false);
    }

    EvalContext [] evalContexts = new EvalContext[targets.length];
    Tuple outTuple = new VTuple(targets.length);
    for (int i = 0; i < targets.length; i++) {
      EvalNode eval = targets[i].getEvalTree();
      evalContexts[i] = eval.newContext();
      eval.eval(evalContexts[i], inputSchema, vtuple);
      outTuple.put(i, eval.terminate(evalContexts[i]));
    }

    if (schema != null) {
      cat.deleteTable(tableName);
    }

    for (int i = 0; i < expected.length; i++) {
      assertEquals(query, expected[i], outTuple.get(i).asChars());
    }
  }
View Full Code Here

    FieldEval f4 = new FieldEval("people.fid2", CatalogUtil.newSimpleDataType(Type.INT4));

    EvalNode joinQual = new BinaryEval(EvalType.EQUAL, f1, f2);
    TupleComparator [] comparators = PlannerUtil.getComparatorsFromJoinQual(joinQual, outerSchema, innerSchema);

    Tuple t1 = new VTuple(2);
    t1.put(0, DatumFactory.createInt4(1));
    t1.put(1, DatumFactory.createInt4(2));

    Tuple t2 = new VTuple(2);
    t2.put(0, DatumFactory.createInt4(2));
    t2.put(1, DatumFactory.createInt4(3));

    TupleComparator outerComparator = comparators[0];
    assertTrue(outerComparator.compare(t1, t2) < 0);
    assertTrue(outerComparator.compare(t2, t1) > 0);
View Full Code Here

    return qual;
  }

  @Test
  public final void testFunctionEval() throws Exception {   
    Tuple tuple = new VTuple(3);
    tuple.put(
        new Datum[] {
          DatumFactory.createText("hyunsik"),
          DatumFactory.createInt4(500),
          DatumFactory.createInt4(30)});
View Full Code Here

  @Test
  public void testIncrement1() {
    Schema schema = new Schema()
    .addColumn("l_returnflag", Type.TEXT)
    .addColumn("l_linestatus", Type.TEXT);
    Tuple s = new VTuple(2);
    s.put(0, DatumFactory.createText("A"));
    s.put(1, DatumFactory.createText("A"));
    Tuple e = new VTuple(2);
    e.put(0, DatumFactory.createText("D"));
    e.put(1, DatumFactory.createText("C"));

    TupleRange expected = new TupleRange(schema, s, e);

    UniformRangePartition partitioner =
        new UniformRangePartition(schema, expected);
    assertEquals(12, TupleUtil.computeCardinality(schema, expected));

    String [] result = new String[12];
    result[0] = "AA";
    result[1] = "AB";
    result[2] = "AC";
    result[3] = "BA";
    result[4] = "BB";
    result[5] = "BC";
    result[6] = "CA";
    result[7] = "CB";
    result[8] = "CC";
    result[9] = "DA";
    result[10] = "DB";
    result[11] = "DC";

    Tuple end = partitioner.increment(s, 1, 1);
    assertEquals("A", end.get(0).asChars());
    assertEquals("B", end.get(1).asChars());
    for (int i = 2; i < 11; i++ ) {
      end = partitioner.increment(end, 1, 1);
      assertEquals(result[i].charAt(0), end.get(0).asChars().charAt(0));
      assertEquals(result[i].charAt(1), end.get(1).asChars().charAt(0));
    }
  }
View Full Code Here

  @Test
  public void testIncrement2() {
    Schema schema = new Schema()
    .addColumn("l_returnflag", Type.TEXT)
    .addColumn("l_linestatus", Type.TEXT);
    Tuple s = new VTuple(2);
    s.put(0, DatumFactory.createText("A"));
    s.put(1, DatumFactory.createText("A"));
    Tuple e = new VTuple(2);
    e.put(0, DatumFactory.createText("D"));
    e.put(1, DatumFactory.createText("C"));

    TupleRange expected = new TupleRange(schema, s, e);

    UniformRangePartition partitioner =
        new UniformRangePartition(schema, expected);
    assertEquals(12, TupleUtil.computeCardinality(schema, expected));

    String [] result = new String[12];
    result[0] = "AA";
    result[1] = "AB";
    result[2] = "AC";
    result[3] = "BA";
    result[4] = "BB";
    result[5] = "BC";
    result[6] = "CA";
    result[7] = "CB";
    result[8] = "CC";
    result[9] = "DA";
    result[10] = "DB";
    result[11] = "DC";

    Tuple end = partitioner.increment(s, 6, 1);
    assertEquals("C", end.get(0).asChars());
    assertEquals("A", end.get(1).asChars());
    end = partitioner.increment(end, 5, 1);
    assertEquals("D", end.get(0).asChars());
    assertEquals("C", end.get(1).asChars());
  }
View Full Code Here

    Schema schema = new Schema()
    .addColumn("l_returnflag", Type.TEXT)
    .addColumn("l_linestatus", Type.TEXT)
    .addColumn("final", Type.TEXT);

    Tuple s = new VTuple(3);
    s.put(0, DatumFactory.createText("A"));
    s.put(1, DatumFactory.createText("A"));
    s.put(2, DatumFactory.createText("A"));
    Tuple e = new VTuple(3);
    e.put(0, DatumFactory.createText("D")); //  4
    e.put(1, DatumFactory.createText("B")); //  2
    e.put(2, DatumFactory.createText("C")); // x3 = 24

    TupleRange expected = new TupleRange(schema, s, e);

    UniformRangePartition partitioner =
        new UniformRangePartition(schema, expected);
    assertEquals(24, TupleUtil.computeCardinality(schema, expected));

    Tuple overflowBefore = partitioner.increment(s, 5, 2);
    assertEquals("A", overflowBefore.get(0).asChars());
    assertEquals("B", overflowBefore.get(1).asChars());
    assertEquals("C", overflowBefore.get(2).asChars());
    Tuple overflowed = partitioner.increment(overflowBefore, 1, 2);
    assertEquals("B", overflowed.get(0).asChars());
    assertEquals("A", overflowed.get(1).asChars());
    assertEquals("A", overflowed.get(2).asChars());
  }
View Full Code Here

  @Test
  public void testIncrement4() {
    Schema schema = new Schema()
    .addColumn("l_orderkey", Type.INT8)
    .addColumn("l_linenumber", Type.INT8);
    Tuple s = new VTuple(2);
    s.put(0, DatumFactory.createInt8(10));
    s.put(1, DatumFactory.createInt8(20));
    Tuple e = new VTuple(2);
    e.put(0, DatumFactory.createInt8(19));
    e.put(1, DatumFactory.createInt8(39));

    TupleRange expected = new TupleRange(schema, s, e);

    UniformRangePartition partitioner =
        new UniformRangePartition(schema, expected);
    assertEquals(200, partitioner.getTotalCardinality().longValue());

    Tuple range2 = partitioner.increment(s, 100, 1);
    assertEquals(15, range2.get(0).asInt4());
    assertEquals(20, range2.get(1).asInt4());
    Tuple range3 = partitioner.increment(range2, 99, 1);
    assertEquals(19, range3.get(0).asInt4());
    assertEquals(39, range3.get(1).asInt4());
  }
View Full Code Here

  @Test public void testIncrement5() {
    Schema schema = new Schema()
    .addColumn("l_orderkey", Type.INT8)
    .addColumn("l_linenumber", Type.INT8)
    .addColumn("final", Type.INT8);
    Tuple s = new VTuple(3);
    s.put(0, DatumFactory.createInt8(1));
    s.put(1, DatumFactory.createInt8(1));
    s.put(2, DatumFactory.createInt8(1));
    Tuple e = new VTuple(3);
    e.put(0, DatumFactory.createInt8(4)); // 4
    e.put(1, DatumFactory.createInt8(2)); // 2
    e.put(2, DatumFactory.createInt8(3)); //x3 = 24

    TupleRange expected = new TupleRange(schema, s, e);

    UniformRangePartition partitioner
        = new UniformRangePartition(schema, expected);
    assertEquals(24, partitioner.getTotalCardinality().longValue());

    Tuple beforeOverflow = partitioner.increment(s, 5, 2);
    assertEquals(1, beforeOverflow.get(0).asInt8());
    assertEquals(2, beforeOverflow.get(1).asInt8());
    assertEquals(3, beforeOverflow.get(2).asInt8());
    Tuple overflow = partitioner.increment(beforeOverflow, 1, 2);
    assertEquals(2, overflow.get(0).asInt8());
    assertEquals(1, overflow.get(1).asInt8());
    assertEquals(1, overflow.get(2).asInt8());
  }
View Full Code Here

TOP

Related Classes of org.apache.tajo.storage.Tuple

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.