diff --git a/.travis.yml b/.travis.yml index 0ac7c47d..71a7767e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,7 +35,7 @@ before_install: before_script: - source $TRAVIS_BUILD_DIR/ci/before_script_travis.sh - - cmake $TRAVIS_BUILD_DIR + - cmake -DCMAKE_CXX_FLAGS="-Werror" $TRAVIS_BUILD_DIR - export PARQUET_TEST_DATA=$TRAVIS_BUILD_DIR/data script: diff --git a/src/parquet/encodings/plain-encoding.h b/src/parquet/encodings/plain-encoding.h index 06d237ac..03f5940c 100644 --- a/src/parquet/encodings/plain-encoding.h +++ b/src/parquet/encodings/plain-encoding.h @@ -156,7 +156,12 @@ class PlainEncoder : public Encoder { explicit PlainEncoder(const ColumnDescriptor* descr) : Encoder(descr, parquet::Encoding::PLAIN) {} - virtual size_t Encode(const std::vector& src, int num_values, + virtual size_t Encode(const bool* src, int num_values, uint8_t* dst) { + throw ParquetException("this API for encoding bools not implemented"); + return 0; + } + + size_t Encode(const std::vector& src, int num_values, uint8_t* dst) { size_t bytes_required = BitUtil::RoundUp(num_values, 8) / 8; BitWriter bit_writer(dst, bytes_required); diff --git a/src/parquet/reader.cc b/src/parquet/reader.cc index a90bafb7..d3bc0a66 100644 --- a/src/parquet/reader.cc +++ b/src/parquet/reader.cc @@ -199,7 +199,7 @@ void ParquetFileReader::ParseMetaData() { uint32_t metadata_len = *reinterpret_cast(footer_buffer); size_t metadata_start = filesize - FOOTER_SIZE - metadata_len; - if (metadata_start < 0) { + if (FOOTER_SIZE + metadata_len > filesize) { throw ParquetException("Invalid parquet file. File is less than file metadata size."); }