Package org.apache.tajo.storage

Examples of org.apache.tajo.storage.Tuple


    Target [] targets;

    try {
      targets = getRawTargets(query, condition);

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

      for (int i = 0; i < expected.length; i++) {
        assertEquals(query, expected[i], outTuple.get(i).asChars());
      }
    } catch (InvalidStatementException e) {
      assertFalse(e.getMessage(), true);
    } catch (PlanningException e) {
      // In failure test case, an exception must occur while executing query.
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

  public Tuple next() throws IOException {
    if (!dataFileReader.hasNext()) {
      return null;
    }

    Tuple tuple = new VTuple(schema.size());
    GenericRecord record = dataFileReader.next();
    for (int i = 0; i < projectionMap.length; ++i) {
      int columnIndex = projectionMap[i];
      Object value = record.get(columnIndex);
      if (value == null) {
        tuple.put(columnIndex, NullDatum.get());
        continue;
      }

      // Get Avro type.
      Schema.Field avroField = avroFields.get(columnIndex);
      Schema nonNullAvroSchema = getNonNull(avroField.schema());
      Schema.Type avroType = nonNullAvroSchema.getType();

      // Get Tajo type.
      Column column = schema.getColumn(columnIndex);
      DataType dataType = column.getDataType();
      TajoDataTypes.Type tajoType = dataType.getType();
      switch (avroType) {
        case NULL:
          tuple.put(columnIndex, NullDatum.get());
          break;
        case BOOLEAN:
          tuple.put(columnIndex, DatumFactory.createBool((Boolean)value));
          break;
        case INT:
          tuple.put(columnIndex, convertInt(value, tajoType));
          break;
        case LONG:
          tuple.put(columnIndex, DatumFactory.createInt8((Long)value));
          break;
        case FLOAT:
          tuple.put(columnIndex, DatumFactory.createFloat4((Float)value));
          break;
        case DOUBLE:
          tuple.put(columnIndex, DatumFactory.createFloat8((Double)value));
          break;
        case BYTES:
          tuple.put(columnIndex, convertBytes(value, tajoType, dataType));
          break;
        case STRING:
          tuple.put(columnIndex, convertString(value, tajoType));
          break;
        case RECORD:
          throw new RuntimeException("Avro RECORD not supported.");
        case ENUM:
          throw new RuntimeException("Avro ENUM not supported.");
        case MAP:
          throw new RuntimeException("Avro MAP not supported.");
        case UNION:
          throw new RuntimeException("Avro UNION not supported.");
        case FIXED:
          tuple.put(columnIndex, new BlobDatum(((GenericFixed)value).bytes()));
          break;
        default:
          throw new RuntimeException("Unknown type.");
      }
    }
View Full Code Here

    }
  }

  @Override
  public Tuple next() throws IOException {
    Tuple tuple = new VTuple(schema.size());

    if (!columns[0].hasNext()) {
      return null;
    }

    int tid; // column id of the original input schema
    for (int i = 0; i < projectionMap.length; i++) {
      tid = projectionMap[i];
      columns[i].startRow();
      DataType dataType = schema.getColumn(tid).getDataType();
      switch (dataType.getType()) {
        case BOOLEAN:
          tuple.put(tid,
              DatumFactory.createBool(((Integer)columns[i].nextValue()).byteValue()));
          break;
        case BIT:
          tuple.put(tid,
              DatumFactory.createBit(((Integer) columns[i].nextValue()).byteValue()));
          break;
        case CHAR:
          String str = (String) columns[i].nextValue();
          tuple.put(tid,
              DatumFactory.createChar(str));
          break;

        case INT2:
          tuple.put(tid,
              DatumFactory.createInt2(((Integer) columns[i].nextValue()).shortValue()));
          break;
        case INT4:
          tuple.put(tid,
              DatumFactory.createInt4((Integer) columns[i].nextValue()));
          break;

        case INT8:
          tuple.put(tid,
              DatumFactory.createInt8((Long) columns[i].nextValue()));
          break;

        case FLOAT4:
          tuple.put(tid,
              DatumFactory.createFloat4((Float) columns[i].nextValue()));
          break;

        case FLOAT8:
          tuple.put(tid,
              DatumFactory.createFloat8((Double) columns[i].nextValue()));
          break;

        case INET4:
          tuple.put(tid,
              DatumFactory.createInet4(((ByteBuffer) columns[i].nextValue()).array()));
          break;

        case TEXT:
          tuple.put(tid,
              DatumFactory.createText((String) columns[i].nextValue()));
          break;

        case PROTOBUF: {
          ProtobufDatumFactory factory = ProtobufDatumFactory.get(dataType.getCode());
          Message.Builder builder = factory.newBuilder();
          builder.mergeFrom(((ByteBuffer)columns[i].nextValue()).array());
          tuple.put(tid, factory.createDatum(builder));
          break;
        }

        case BLOB:
          tuple.put(tid,
              new BlobDatum(((ByteBuffer) columns[i].nextValue())));
          break;

        case NULL_TYPE:
          tuple.put(tid, NullDatum.get());
          break;

        default:
          throw new IOException("Unsupport data type");
      }
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.