MCPcopy Create free account
hub / github.com/bytedance/bolt / makeLessThanOrEqualFilter

Method makeLessThanOrEqualFilter

bolt/expression/ExprToSubfieldFilter.cpp:364–394  ·  view source on GitHub ↗

static

Source from the content-addressed store, hash-verified

362
363// static
364std::unique_ptr<common::Filter>
365ExprToSubfieldFilterParser::makeLessThanOrEqualFilter(
366 const core::TypedExprPtr& upperExpr,
367 core::ExpressionEvaluator* evaluator) {
368 auto upper = toConstant(upperExpr, evaluator);
369 if (!upper) {
370 return nullptr;
371 }
372 switch (upper->typeKind()) {
373 case TypeKind::TINYINT:
374 return lessThanOrEqual(singleValue<int8_t>(upper));
375 case TypeKind::SMALLINT:
376 return lessThanOrEqual(singleValue<int16_t>(upper));
377 case TypeKind::INTEGER:
378 return lessThanOrEqual(singleValue<int32_t>(upper));
379 case TypeKind::BIGINT:
380 return lessThanOrEqual(singleValue<int64_t>(upper));
381 case TypeKind::HUGEINT:
382 return lessThanOrEqualHugeint(singleValue<int128_t>(upper));
383 case TypeKind::DOUBLE:
384 return lessThanOrEqualDouble(singleValue<double>(upper));
385 case TypeKind::REAL:
386 return lessThanOrEqualFloat(singleValue<float>(upper));
387 case TypeKind::VARCHAR:
388 return lessThanOrEqual(std::string(singleValue<StringView>(upper)));
389 case TypeKind::TIMESTAMP:
390 return lessThanOrEqual(singleValue<Timestamp>(upper));
391 default:
392 return nullptr;
393 }
394}
395
396// static
397std::unique_ptr<common::Filter>

Callers

nothing calls this directly

Calls 6

toConstantFunction · 0.85
lessThanOrEqualFunction · 0.85
lessThanOrEqualHugeintFunction · 0.85
lessThanOrEqualDoubleFunction · 0.85
lessThanOrEqualFloatFunction · 0.85
typeKindMethod · 0.45

Tested by

no test coverage detected