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

Method PrepareBinaryPredicate

be/src/exec/orc/hdfs-orc-scanner.cc:1254–1282  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1252}
1253
1254bool HdfsOrcScanner::PrepareBinaryPredicate(const string& fn_name, uint64_t orc_column_id,
1255 const ColumnType& type, ScalarExprEvaluator* eval,
1256 orc::SearchArgumentBuilder* sarg) {
1257 orc::PredicateDataType predicate_type;
1258 orc::Literal literal = GetSearchArgumentLiteral(eval, /*child_idx*/1, type,
1259 &predicate_type);
1260 if (literal.isNull()) {
1261 VLOG_FILE << "Failed to push down predicate " << eval->root().DebugString();
1262 return false;
1263 }
1264 if (fn_name == "lt") {
1265 sarg->lessThan(orc_column_id, predicate_type, literal);
1266 } else if (fn_name == "gt") {
1267 sarg->startNot()
1268 .lessThanEquals(orc_column_id, predicate_type, literal)
1269 .end();
1270 } else if (fn_name == "le") {
1271 sarg->lessThanEquals(orc_column_id, predicate_type, literal);
1272 } else if (fn_name == "ge") {
1273 sarg->startNot()
1274 .lessThan(orc_column_id, predicate_type, literal)
1275 .end();
1276 } else if (fn_name == "eq") {
1277 sarg->equals(orc_column_id, predicate_type, literal);
1278 } else {
1279 return false;
1280 }
1281 return true;
1282}
1283
1284bool HdfsOrcScanner::PrepareInListPredicate(uint64_t orc_column_id,
1285 const ColumnType& type, ScalarExprEvaluator* eval,

Callers

nothing calls this directly

Calls 6

isNullMethod · 0.80
rootMethod · 0.80
lessThanMethod · 0.80
DebugStringMethod · 0.45
endMethod · 0.45
equalsMethod · 0.45

Tested by

no test coverage detected