Search in sources :

Example 1 with WriteChecksum

use of com.facebook.presto.rcfile.RcFileWriteValidation.WriteChecksum in project presto by prestodb.

the class RcFileReader method close.

@Override
public void close() throws IOException {
    if (closed) {
        return;
    }
    closed = true;
    rowGroupPosition = 0;
    rowGroupRowCount = 0;
    currentChunkRowCount = 0;
    input.close();
    if (decompressor != null) {
        decompressor.destroy();
    }
    if (writeChecksumBuilder.isPresent()) {
        WriteChecksum actualChecksum = writeChecksumBuilder.get().build();
        validateWrite(validation -> validation.getChecksum().getTotalRowCount() == actualChecksum.getTotalRowCount(), "Invalid row count");
        List<Long> columnHashes = actualChecksum.getColumnHashes();
        for (int i = 0; i < columnHashes.size(); i++) {
            int columnIndex = i;
            validateWrite(validation -> validation.getChecksum().getColumnHashes().get(columnIndex).equals(columnHashes.get(columnIndex)), "Invalid checksum for column %s", columnIndex);
        }
        validateWrite(validation -> validation.getChecksum().getRowGroupHash() == actualChecksum.getRowGroupHash(), "Invalid row group checksum");
    }
}
Also used : WriteChecksum(com.facebook.presto.rcfile.RcFileWriteValidation.WriteChecksum)

Aggregations

WriteChecksum (com.facebook.presto.rcfile.RcFileWriteValidation.WriteChecksum)1