Beispiel #1
0
 private void writeNullForMissingFields(final int to) {
   final int from = currentIndex[currentLevel];
   for (; currentIndex[currentLevel] <= to; ++currentIndex[currentLevel]) {
     try {
       ColumnIO undefinedField =
           ((GroupColumnIO) currentColumnIO).getChild(currentIndex[currentLevel]);
       int d = currentColumnIO.getDefinitionLevel();
       if (DEBUG)
         log(
             Arrays.toString(undefinedField.getFieldPath())
                 + ".writeNull("
                 + r[currentLevel]
                 + ","
                 + d
                 + ")");
       undefinedField.writeNull(r[currentLevel], d);
     } catch (RuntimeException e) {
       throw new RuntimeException(
           "error while writing nulls from "
               + from
               + " to "
               + to
               + ". current index: "
               + currentIndex[currentLevel],
           e);
     }
   }
 }
Beispiel #2
0
 public void printState() {
   log(
       currentLevel
           + ", "
           + currentIndex[currentLevel]
           + ": "
           + Arrays.toString(currentColumnIO.getFieldPath())
           + " r:"
           + r[currentLevel]);
   if (r[currentLevel] > currentColumnIO.getRepetitionLevel()) {
     // sanity check
     throw new RuntimeException(
         r[currentLevel] + "(r) > " + currentColumnIO.getRepetitionLevel() + " ( schema r)");
   }
 }
Beispiel #3
0
    @Override
    public void addDouble(double value) {
      if (DEBUG) log("addDouble(" + value + ")");
      ((PrimitiveColumnIO) currentColumnIO)
          .getColumnWriter()
          .write(value, r[currentLevel], currentColumnIO.getDefinitionLevel());

      setRepetitionLevel();
      if (DEBUG) printState();
    }
Beispiel #4
0
    @Override
    public void endField(String field, int index) {
      if (DEBUG) log("endField(" + field + ", " + index + ")");
      currentColumnIO = currentColumnIO.getParent();

      currentIndex[currentLevel] = index + 1;

      r[currentLevel] = currentLevel == 0 ? 0 : r[currentLevel - 1];

      if (DEBUG) printState();
    }
Beispiel #5
0
 private void setRepetitionLevel() {
   r[currentLevel] = currentColumnIO.getRepetitionLevel();
   if (DEBUG) log("r: " + r[currentLevel]);
 }