|
1 | 1 | // Licensed to the Apache Software Foundation (ASF) under one
|
| 2 | + |
2 | 3 | // or more contributor license agreements. See the NOTICE file
|
3 | 4 | // distributed with this work for additional information
|
4 | 5 | // regarding copyright ownership. The ASF licenses this file
|
@@ -209,7 +210,15 @@ Status ScalarColumnReader::_skip_values(size_t num_values) {
|
209 | 210 | level_t def_level = -1;
|
210 | 211 | size_t loop_skip = def_decoder.get_next_run(&def_level, num_values - skipped);
|
211 | 212 | if (loop_skip == 0) {
|
212 |
| - continue; |
| 213 | + std::stringstream ss; |
| 214 | + auto& bit_reader = def_decoder.rle_decoder().bit_reader(); |
| 215 | + ss << "def_decoder buffer (hex): "; |
| 216 | + for (size_t i = 0; i < bit_reader.max_bytes(); ++i) { |
| 217 | + ss << std::hex << std::setw(2) << std::setfill('0') |
| 218 | + << static_cast<int>(bit_reader.buffer()[i]) << " "; |
| 219 | + } |
| 220 | + LOG(WARNING) << ss.str(); |
| 221 | + return Status::InternalError("Failed to decode definition level."); |
213 | 222 | }
|
214 | 223 | if (def_level == 0) {
|
215 | 224 | null_size += loop_skip;
|
@@ -254,7 +263,15 @@ Status ScalarColumnReader::_read_values(size_t num_values, ColumnPtr& doris_colu
|
254 | 263 | level_t def_level;
|
255 | 264 | size_t loop_read = def_decoder.get_next_run(&def_level, num_values - has_read);
|
256 | 265 | if (loop_read == 0) {
|
257 |
| - continue; |
| 266 | + std::stringstream ss; |
| 267 | + auto& bit_reader = def_decoder.rle_decoder().bit_reader(); |
| 268 | + ss << "def_decoder buffer (hex): "; |
| 269 | + for (size_t i = 0; i < bit_reader.max_bytes(); ++i) { |
| 270 | + ss << std::hex << std::setw(2) << std::setfill('0') |
| 271 | + << static_cast<int>(bit_reader.buffer()[i]) << " "; |
| 272 | + } |
| 273 | + LOG(WARNING) << ss.str(); |
| 274 | + return Status::InternalError("Failed to decode definition level."); |
258 | 275 | }
|
259 | 276 | bool is_null = def_level == 0;
|
260 | 277 | if (!(prev_is_null ^ is_null)) {
|
|
0 commit comments