Zoltan Borok-Nagy has uploaded this change for review. ( http://gerrit.cloudera.org:8080/12555
Change subject: IMPALA-7979: Fix bug of SkipValues() and GetNextValues() interaction ...................................................................... IMPALA-7979: Fix bug of SkipValues() and GetNextValues() interaction Alternating calls to DictDecoder's SkipValues() and GetNextValues() could result in a decoding error. RleBatchDecoder<T>::DecodeLiteralValues() returned false when invoked with num_literals_to_consume=0 and had buffered literals. Then the caller (DictDecoder::GetNextValues()) thought it failed, and in the end it resulted in a decoding error. It could only occur if GetNextValues() was invoked after SkipValues(). Otherwise the RleBatchDecoder in DictDecoder could not have buffered literals, since they were buffered in the dictionary decoder. Since SkipValues() is not used yet, it couldn't happen in production code. I added a backend test to fuzz test the interaction between SkipValues() and GetNextValues(). Change-Id: Id0426cdef54ee9bc2306a542098a92c640dc41c4 --- M be/src/util/dict-test.cc A be/src/util/encoding-test-util.h M be/src/util/rle-encoding.h M be/src/util/rle-test.cc 4 files changed, 127 insertions(+), 39 deletions(-) git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/55/12555/1 -- To view, visit http://gerrit.cloudera.org:8080/12555 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id0426cdef54ee9bc2306a542098a92c640dc41c4 Gerrit-Change-Number: 12555 Gerrit-PatchSet: 1 Gerrit-Owner: Zoltan Borok-Nagy <borokna...@cloudera.com>