diff --git a/be/src/olap/comparison_predicate.h b/be/src/olap/comparison_predicate.h index de966833f9db65..8ec1504dce5dba 100644 --- a/be/src/olap/comparison_predicate.h +++ b/be/src/olap/comparison_predicate.h @@ -179,6 +179,8 @@ class ComparisonPredicateBase : public ColumnPredicate { return false; } + DCHECK_LE(sizeof(T), statistic.first->size()); + T tmp_min_value {}; T tmp_max_value {}; memcpy((char*)(&tmp_min_value), statistic.first->cell_ptr(), sizeof(WarpperFieldType)); diff --git a/be/src/olap/rowset/segment_v2/segment.cpp b/be/src/olap/rowset/segment_v2/segment.cpp index 5399e3ee65634b..d5d1792ee74a03 100644 --- a/be/src/olap/rowset/segment_v2/segment.cpp +++ b/be/src/olap/rowset/segment_v2/segment.cpp @@ -162,7 +162,9 @@ Status Segment::new_iterator(SchemaSPtr schema, const StorageReadOptions& read_o auto pruned_predicates = read_options.column_predicates; auto pruned = false; for (auto& it : _column_readers) { - if (it.second->prune_predicates_by_zone_map(pruned_predicates, it.first)) { + const auto uid = it.first; + const auto column_id = read_options.tablet_schema->field_index(uid); + if (it.second->prune_predicates_by_zone_map(pruned_predicates, column_id)) { pruned = true; } }