MCPcopy Create free account
hub / github.com/apache/datafusion / validate

Method validate

datafusion/spark/src/function/string/format_string.rs:593–657  ·  view source on GitHub ↗
(&self, arg_type: &DataType)

Source from the content-addressed store, hash-verified

591
592impl ConversionType {
593 pub fn validate(&self, arg_type: &DataType) -> Result<()> {
594 match self {
595 ConversionType::BooleanLower | ConversionType::BooleanUpper
596 if *arg_type != DataType::Boolean =>
597 {
598 return exec_err!(
599 "Invalid argument type for boolean conversion: {:?}",
600 arg_type
601 );
602 }
603 ConversionType::CharLower | ConversionType::CharUpper
604 if !matches!(
605 arg_type,
606 DataType::Int8
607 | DataType::UInt8
608 | DataType::Int16
609 | DataType::UInt16
610 | DataType::Int32
611 | DataType::UInt32
612 | DataType::Int64
613 | DataType::UInt64
614 ) =>
615 {
616 return exec_err!(
617 "Invalid argument type for char conversion: {:?}",
618 arg_type
619 );
620 }
621 ConversionType::DecInt
622 | ConversionType::OctInt
623 | ConversionType::HexIntLower
624 | ConversionType::HexIntUpper
625 if !arg_type.is_integer() =>
626 {
627 return exec_err!(
628 "Invalid argument type for integer conversion: {:?}",
629 arg_type
630 );
631 }
632 ConversionType::SciFloatLower
633 | ConversionType::SciFloatUpper
634 | ConversionType::DecFloatLower
635 | ConversionType::CompactFloatLower
636 | ConversionType::CompactFloatUpper
637 | ConversionType::HexFloatLower
638 | ConversionType::HexFloatUpper
639 if !arg_type.is_numeric() =>
640 {
641 return exec_err!(
642 "Invalid argument type for float conversion: {:?}",
643 arg_type
644 );
645 }
646 ConversionType::TimeLower(_) | ConversionType::TimeUpper(_)
647 if !arg_type.is_temporal() =>
648 {
649 return exec_err!(
650 "Invalid argument type for time conversion: {:?}",

Callers 1

Calls 2

is_integerMethod · 0.80
is_numericMethod · 0.80

Tested by

no test coverage detected