MCPcopy Create free account
hub / github.com/apache/impala / InsertPerCompareOp

Method InsertPerCompareOp

be/src/exec/filter-context.cc:109–134  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

107}
108
109void FilterContext::InsertPerCompareOp(TupleRow* row) const noexcept {
110 if (filter->getCompareOp() == extdatasource::TComparisonOp::type::EQ) {
111 Insert(row);
112 } else {
113 DCHECK(filter->is_min_max_filter());
114 if (local_min_max_filter == nullptr || local_min_max_filter->AlwaysTrue()) return;
115 void* val = expr_eval->GetValue(row);
116 switch (filter->getCompareOp()) {
117 case extdatasource::TComparisonOp::type::LE:
118 local_min_max_filter->InsertForLE(val);
119 break;
120 case extdatasource::TComparisonOp::type::LT:
121 local_min_max_filter->InsertForLT(val);
122 break;
123 case extdatasource::TComparisonOp::type::GE:
124 local_min_max_filter->InsertForGE(val);
125 break;
126 case extdatasource::TComparisonOp::type::GT:
127 local_min_max_filter->InsertForGT(val);
128 break;
129 default:
130 DCHECK(false)
131 << "Unsupported comparison op in FilterContext::InsertPerCompareOp()";
132 }
133 }
134}
135
136void FilterContext::MaterializeValues() const {
137 if (filter->is_min_max_filter() && local_min_max_filter != nullptr) {

Callers 1

InsertRuntimeFiltersMethod · 0.80

Calls 9

InsertClass · 0.85
getCompareOpMethod · 0.80
is_min_max_filterMethod · 0.45
AlwaysTrueMethod · 0.45
GetValueMethod · 0.45
InsertForLEMethod · 0.45
InsertForLTMethod · 0.45
InsertForGEMethod · 0.45
InsertForGTMethod · 0.45

Tested by

no test coverage detected