diff --git a/cpp/src/cwrapper/TsFile-cwrapper.cc b/cpp/src/cwrapper/TsFile-cwrapper.cc index d70c51999..e21202232 100644 --- a/cpp/src/cwrapper/TsFile-cwrapper.cc +++ b/cpp/src/cwrapper/TsFile-cwrapper.cc @@ -777,22 +777,22 @@ void print_data_result(DataResult* result) { switch (get_datatype(schema->column_def)) { case TSDataType::BOOLEAN: std::cout - << ((*((int64_t*)result->value[j] + i)) > 0 ? "true" + << ((*((bool*)result->value[j] + i)) > 0 ? "true" : "false"); break; case TSDataType::INT32: - std::cout << *((int64_t*)result->value[j] + i); + std::cout << *((int32_t*)result->value[j] + i); break; case TSDataType::INT64: std::cout << *((int64_t*)result->value[j] + i); break; case TSDataType::FLOAT: - memcpy(&fval, (int64_t*)result->value[j] + i, + memcpy(&fval, (float*)result->value[j] + i, sizeof(float)); std::cout << fval; break; case TSDataType::DOUBLE: - memcpy(&dval, (int64_t*)result->value[j] + i, + memcpy(&dval, (double*)result->value[j] + i, sizeof(double)); std::cout << dval; break; diff --git a/cpp/src/encoding/ts2diff_decoder.h b/cpp/src/encoding/ts2diff_decoder.h index 2aa23c623..0e6be6a69 100644 --- a/cpp/src/encoding/ts2diff_decoder.h +++ b/cpp/src/encoding/ts2diff_decoder.h @@ -51,7 +51,7 @@ class TS2DIFFDecoder : public Decoder { FORCE_INLINE bool has_remaining() { // std::cout << "has_remaining, current_index_=" << current_index_ << ", // write_index_=" << write_index_ << std::endl; - return bits_left_ != 0 || (current_index_ <= write_index_ && + return (bits_left_ != 0 && current_index_ != 0) || (current_index_ <= write_index_ && write_index_ != -1 && current_index_ != 0); }