Package org.apache.tajo.datum

Examples of org.apache.tajo.datum.Datum


   *
   * @see java.sql.ResultSet#getString(int)
   */
  @Override
  public String getString(int fieldId) throws SQLException {
    Datum datum = cur.get(fieldId - 1);
    handleNull(datum);
    return datum.asChars();
  }
View Full Code Here


   *
   * @see java.sql.ResultSet#getString(java.lang.String)
   */
  @Override
  public String getString(String arg0) throws SQLException {
    Datum datum = cur.get(findColumn(arg0));
    handleNull(datum);
    return datum.asChars();
  }
View Full Code Here

    }

    @Override
    public void addTuple(Tuple tuple) throws IOException {
      Column col;
      Datum datum;

      int colNum = schema.getColumnNum();
      if (tuple instanceof LazyTuple) {
        LazyTuple  lTuple = (LazyTuple)tuple;
        for (int i = 0; i < colNum; i++) {
          TajoDataTypes.DataType dataType = schema.getColumn(i).getDataType();

          switch (dataType.getType()) {
            case TEXT: {
              datum = tuple.get(i);
              if (datum instanceof NullDatum) {
                outputStream.write(nullChars);
              } else {
                outputStream.write(datum.asTextBytes());
              }
              break;
            }
            case CHAR: {
              datum = tuple.get(i);
              if (datum instanceof NullDatum) {
                outputStream.write(nullChars);
              } else {
                byte[] pad = new byte[dataType.getLength() - datum.size()];
                outputStream.write(datum.asTextBytes());
                outputStream.write(pad);
              }
              break;
            }
            case BOOLEAN: {
              datum = tuple.get(i);
              if (datum instanceof NullDatum) {
                //null datum is zero length byte array
              } else {
                outputStream.write(datum.asBool() ? trueBytes : falseBytes);   //Compatibility with Apache Hive
              }
              break;
            }
            case NULL:
              break;
            case PROTOBUF:
              datum = tuple.get(i);
              ProtobufDatum protobufDatum = (ProtobufDatum) datum;
              protobufJsonFormat.print(protobufDatum.get(), outputStream);
              break;
            default:
              outputStream.write(lTuple.getTextBytes(i)); //better usage for insertion to table of lazy tuple
              break;
          }

          if(colNum - 1 > i){
            outputStream.write((byte) delimiter);
          }

          if (enabledStats) {
            datum = tuple.get(i);
            stats.analyzeField(i, datum);
          }
        }
      } else {
        for (int i = 0; i < schema.getColumnNum(); i++) {
          datum = tuple.get(i);
          if (enabledStats) {
            stats.analyzeField(i, datum);
          }
          if (datum instanceof NullDatum) {
            outputStream.write(nullChars);
          } else {
            col = schema.getColumn(i);
            switch (col.getDataType().getType()) {
              case BOOLEAN:
                outputStream.write(tuple.getBoolean(i).asBool() ? trueBytes : falseBytes);   //Compatibility with Apache Hive
                break;
              case BIT:
                outputStream.write(tuple.getByte(i).asTextBytes());
                break;
              case BLOB:
                outputStream.write(Base64.encodeBase64(tuple.getBytes(i).asByteArray(), false));
                break;
              case CHAR:
                CharDatum charDatum = tuple.getChar(i);
                byte[] pad = new byte[col.getDataType().getLength() - datum.size()];
                outputStream.write(charDatum.asTextBytes());
                outputStream.write(pad);
                break;
              case TEXT:
                outputStream.write(tuple.getText(i).asTextBytes());
View Full Code Here

    PhysicalPlanner phyPlanner = new PhysicalPlannerImpl(conf, sm);
    PhysicalExec exec = phyPlanner.createPlan(ctx, rootNode);

    Tuple tuple;
    Datum preVal = null;
    Datum curVal;
    exec.init();
    while ((tuple = exec.next()) != null) {
      curVal = tuple.get(0);
      if (preVal != null) {
        assertTrue(preVal.lessThanEqual(curVal).asBool());
View Full Code Here

          ((MemSortExec)sortExec).getPlan(), scan);
      proj.setChild(extSort);
    }

    Tuple tuple;
    Datum preVal = null;
    Datum curVal;
    int cnt = 0;
    exec.init();
    long start = System.currentTimeMillis();

    while ((tuple = exec.next()) != null) {
View Full Code Here

  }

  @Override
  public void merge(FunctionContext context, Tuple params) {
    SumContext distinctContext = (SumContext) context;
    Datum value = params.get(0);
    if ((distinctContext.latest == null || (!distinctContext.latest.equals(value)) && !(value instanceof NullDatum))) {
      distinctContext.latest = value;
      distinctContext.sum += value.asInt8();
    }
  }
View Full Code Here

  }

  @Override
  public void merge(FunctionContext context, Tuple part) {
    CountDistinctValueContext distinctContext = (CountDistinctValueContext) context;
    Datum value = part.get(0);
    if ((distinctContext.latest == null || (!distinctContext.latest.equals(value)) && !(value instanceof NullDatum))) {
      distinctContext.latest = value;
      distinctContext.count++;
    }
  }
View Full Code Here

    }
  }

  @Override
  public Datum eval(Tuple params) {
    Datum datum = params.get(0);
    if(datum instanceof NullDatum) return NullDatum.get();

    if (!hasTrimCharacters) {
      return DatumFactory.createText(StringUtils.stripEnd(datum.asChars(), null));
    } else {
      return DatumFactory.createText(StringUtils.stripEnd(datum.asChars(), params.get(1).asChars()));
    }
  }
View Full Code Here

    });
  }

  @Override
  public Datum eval(Tuple params) {
    Datum datum = params.get(0);
    if(datum instanceof NullDatum) return NullDatum.get();

    return DatumFactory.createInt4(datum.asByteArray().length*8);
  }
View Full Code Here

    }
  }

  @Override
  public Datum eval(Tuple params) {
    Datum datum = params.get(0);
    Datum lengthDatum = params.get(1);

    if(datum instanceof NullDatum) return NullDatum.get();
    if(lengthDatum instanceof NullDatum) return NullDatum.get();

    Datum fillText=NullDatum.get();
    if(hasFillCharacters) {
      fillText=params.get(2);
    }
    else {
      fillText=DatumFactory.createText(" ");
    }

    int templen = lengthDatum.asInt4() - datum.asChars().length();

    if(templen<=0)
      return DatumFactory.createText(datum.asChars().substring(0,lengthDatum.asInt4()));

    return DatumFactory.createText(StringUtils.rightPad(datum.asChars(), lengthDatum.asInt4(), fillText.asChars()));
  }
View Full Code Here

TOP

Related Classes of org.apache.tajo.datum.Datum

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.