(func: &BinaryFunc, arg0: &ReprColumnType, arg1: &ReprColumnType)
| 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; |
no outgoing calls
no test coverage detected