docs: public static ExportRow decodeRow(ExportRow previous, int partition, long startTS, ByteBuffer bb) throws IOException {
          final int partitionColIndex = bb.getInt();
          final int columnCount = bb.getInt();
          assert(columnCount <= DDLCompiler.MAX_COLUMNS);
          boolean[] is_null = extractNullFlags(bb, columnCount);
  
          assert(previous != null);
          if (previous == null) {
              throw new IOException("Export block with no schema found without prior block with schema.");
          }
          final long generation = previous.generation;
          final String tableName = previous.tableName;
          final List<String> colNames = previous.names;
          final List<VoltType> colTypes = previous.types;
          final List<Integer> colLengths = previous.lengths;
  
          Object[] retval = new Object[colNames.size()];
          Object pval = null;
          for (int i = 0; i < colNames.size(); ++i) {
              if (is_null[i]) {
                  retval[i] = null;
              } else {
                  retval[i] = decodeNextColumn(bb, colTypes.get(i));
              }
              if (i == partitionColIndex) {
                  pval = retval[i];
              }
          }
  
          return new ExportRow(tableName, colNames, colTypes, colLengths, retval, (pval == null ? partition : pval), partitionColIndex, partition, generation);
      }