public void transform()

in iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFConst.java [176:277]


  public void transform(Column[] columns, ColumnBuilder builder) throws Exception {
    int count = columns[0].getPositionCount();

    switch (dataType) {
      case INT32:
      case DATE:
        for (int i = 0; i < count; i++) {
          boolean hasWritten = false;
          for (int j = 0; j < columns.length - 1; j++) {
            if (!columns[j].isNull(i)) {
              builder.writeInt(intValue);
              hasWritten = true;
              break;
            }
          }
          if (!hasWritten) {
            builder.appendNull();
          }
        }
        return;
      case INT64:
      case TIMESTAMP:
        for (int i = 0; i < count; i++) {
          boolean hasWritten = false;
          for (int j = 0; j < columns.length - 1; j++) {
            if (!columns[j].isNull(i)) {
              builder.writeLong(longValue);
              hasWritten = true;
              break;
            }
          }
          if (!hasWritten) {
            builder.appendNull();
          }
        }
        return;
      case FLOAT:
        for (int i = 0; i < count; i++) {
          boolean hasWritten = false;
          for (int j = 0; j < columns.length - 1; j++) {
            if (!columns[j].isNull(i)) {
              builder.writeFloat(floatValue);
              hasWritten = true;
              break;
            }
          }
          if (!hasWritten) {
            builder.appendNull();
          }
        }
        return;
      case DOUBLE:
        for (int i = 0; i < count; i++) {
          boolean hasWritten = false;
          for (int j = 0; j < columns.length - 1; j++) {
            if (!columns[j].isNull(i)) {
              builder.writeDouble(doubleValue);
              hasWritten = true;
              break;
            }
          }
          if (!hasWritten) {
            builder.appendNull();
          }
        }
        return;
      case BOOLEAN:
        for (int i = 0; i < count; i++) {
          boolean hasWritten = false;
          for (int j = 0; j < columns.length - 1; j++) {
            if (!columns[j].isNull(i)) {
              builder.writeBoolean(booleanValue);
              hasWritten = true;
              break;
            }
          }
          if (!hasWritten) {
            builder.appendNull();
          }
        }
        return;
      case TEXT:
      case STRING:
      case BLOB:
        for (int i = 0; i < count; i++) {
          boolean hasWritten = false;
          for (int j = 0; j < columns.length - 1; j++) {
            if (!columns[j].isNull(i)) {
              builder.writeBinary(binaryValue);
              hasWritten = true;
              break;
            }
          }
          if (!hasWritten) {
            builder.appendNull();
          }
        }
        return;
      default:
        throw new UnsupportedOperationException();
    }
  }