MCPcopy Create free account
hub / github.com/MaterializeInc/materialize / binary_typecheck

Function binary_typecheck

src/expr/src/interpret.rs:1332–1353  ·  view source on GitHub ↗
(func: &BinaryFunc, arg0: &ReprColumnType, arg1: &ReprColumnType)

Source from the content-addressed store, hash-verified

1330 }
1331
1332 fn binary_typecheck(func: &BinaryFunc, arg0: &ReprColumnType, arg1: &ReprColumnType) -> bool {
1333 use BinaryFunc::*;
1334 match func {
1335 AddTimestampInterval(_) => {
1336 arg0.scalar_type == ReprScalarType::Timestamp
1337 && arg1.scalar_type == ReprScalarType::Interval
1338 }
1339 AddNumeric(_) | SubNumeric(_) | MulNumeric(_) | DivNumeric(_) => {
1340 arg0.scalar_type == NUM_TYPE && arg1.scalar_type == NUM_TYPE
1341 }
1342 Eq(_) | Lt(_) | Gt(_) | Lte(_) | Gte(_) => arg0.scalar_type == arg1.scalar_type,
1343 DateTruncTimestamp(_) => {
1344 arg0.scalar_type == ReprScalarType::String
1345 && arg1.scalar_type == ReprScalarType::Timestamp
1346 }
1347 JsonbGetString(_) | JsonbGetStringStringify(_) => {
1348 arg0.scalar_type == ReprScalarType::Jsonb
1349 && arg1.scalar_type == ReprScalarType::String
1350 }
1351 _ => false,
1352 }
1353 }
1354
1355 const INTERESTING_VARIADIC_FUNCS: &[VariadicFunc] = {
1356 use crate::scalar::func::variadic as v;

Callers 1

gen_expr_for_relationFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected