| 48 | static_cast<int64_t>(std::numeric_limits<unsigned int>::max()); |
| 49 | |
| 50 | Status BZ2Error(const char* prefix_msg, int bz_result) { |
| 51 | ARROW_CHECK(bz_result != BZ_OK && bz_result != BZ_RUN_OK && bz_result != BZ_FLUSH_OK && |
| 52 | bz_result != BZ_FINISH_OK && bz_result != BZ_STREAM_END); |
| 53 | StatusCode code; |
| 54 | std::stringstream ss; |
| 55 | ss << prefix_msg; |
| 56 | switch (bz_result) { |
| 57 | case BZ_CONFIG_ERROR: |
| 58 | code = StatusCode::UnknownError; |
| 59 | ss << "bz2 library improperly configured (internal error)"; |
| 60 | break; |
| 61 | case BZ_SEQUENCE_ERROR: |
| 62 | code = StatusCode::UnknownError; |
| 63 | ss << "wrong sequence of calls to bz2 library (internal error)"; |
| 64 | break; |
| 65 | case BZ_PARAM_ERROR: |
| 66 | code = StatusCode::UnknownError; |
| 67 | ss << "wrong parameter to bz2 library (internal error)"; |
| 68 | break; |
| 69 | case BZ_MEM_ERROR: |
| 70 | code = StatusCode::OutOfMemory; |
| 71 | ss << "could not allocate memory for bz2 library"; |
| 72 | break; |
| 73 | case BZ_DATA_ERROR: |
| 74 | code = StatusCode::IOError; |
| 75 | ss << "invalid bz2 data"; |
| 76 | break; |
| 77 | case BZ_DATA_ERROR_MAGIC: |
| 78 | code = StatusCode::IOError; |
| 79 | ss << "data is not bz2-compressed (no magic header)"; |
| 80 | break; |
| 81 | default: |
| 82 | code = StatusCode::UnknownError; |
| 83 | ss << "unknown bz2 error " << bz_result; |
| 84 | break; |
| 85 | } |
| 86 | return Status(code, ss.str()); |
| 87 | } |
| 88 | |
| 89 | // ---------------------------------------------------------------------- |
| 90 | // bz2 decompressor implementation |