public void addTuple()

in tajo-storage/src/main/java/org/apache/tajo/storage/RowFile.java [369:451]


    public void addTuple(Tuple t) throws IOException {
      checkAndWriteSync();
      Column col;

      buffer.clear();
      nullFlags.clear();

      for (int i = 0; i < schema.size(); i++) {
        if (enabledStats) {
          stats.analyzeField(i, t.get(i));
        }

        if (t.isNull(i)) {
          nullFlags.set(i);
        } else {
          col = schema.getColumn(i);
          switch (col.getDataType().getType()) {
            case BOOLEAN:
              buffer.put(t.get(i).asByte());
              break;
            case BIT:
              buffer.put(t.get(i).asByte());
              break;
            case CHAR:
              byte[] src = t.get(i).asByteArray();
              byte[] dst = Arrays.copyOf(src, col.getDataType().getLength());
              buffer.putInt(src.length);
              buffer.put(dst);
              break;
            case TEXT:
              byte [] strbytes = t.get(i).asByteArray();
              buffer.putShort((short)strbytes.length);
              buffer.put(strbytes, 0, strbytes.length);
              break;
            case INT2:
              buffer.putShort(t.get(i).asInt2());
              break;
            case INT4:
              buffer.putInt(t.get(i).asInt4());
              break;
            case INT8:
              buffer.putLong(t.get(i).asInt8());
              break;
            case FLOAT4:
              buffer.putFloat(t.get(i).asFloat4());
              break;
            case FLOAT8:
              buffer.putDouble(t.get(i).asFloat8());
              break;
            case BLOB:
              byte [] bytes = t.get(i).asByteArray();
              buffer.putShort((short)bytes.length);
              buffer.put(bytes);
              break;
            case INET4:
              buffer.put(t.get(i).asByteArray());
              break;
            case INET6:
              buffer.put(t.get(i).asByteArray());
              break;
            case NULL_TYPE:
              nullFlags.set(i);
              break;
            default:
              break;
          }
        }
      }

      byte[] bytes = nullFlags.toArray();
      out.writeShort(bytes.length);
      out.write(bytes);

      bytes = buffer.array();
      int dataLen = buffer.position();
      out.writeShort(dataLen);
      out.write(bytes, 0, dataLen);

      // Statistical section
      if (enabledStats) {
        stats.incrementRow();
      }
    }