@@ -510,10 +510,10 @@ fn typechecked_scalar_value_conversion(
510
510
ScalarValue :: Date32 ( Some ( * v) )
511
511
}
512
512
( Value :: TimeMicrosecondValue ( v) , PrimitiveScalarType :: TimeMicrosecond ) => {
513
- ScalarValue :: TimeMicrosecond ( Some ( * v) )
513
+ ScalarValue :: TimestampMicrosecond ( Some ( * v) )
514
514
}
515
515
( Value :: TimeNanosecondValue ( v) , PrimitiveScalarType :: TimeMicrosecond ) => {
516
- ScalarValue :: TimeNanosecond ( Some ( * v) )
516
+ ScalarValue :: TimestampNanosecond ( Some ( * v) )
517
517
}
518
518
( Value :: Utf8Value ( v) , PrimitiveScalarType :: Utf8 ) => {
519
519
ScalarValue :: Utf8 ( Some ( v. to_owned ( ) ) )
@@ -546,10 +546,10 @@ fn typechecked_scalar_value_conversion(
546
546
PrimitiveScalarType :: LargeUtf8 => ScalarValue :: LargeUtf8 ( None ) ,
547
547
PrimitiveScalarType :: Date32 => ScalarValue :: Date32 ( None ) ,
548
548
PrimitiveScalarType :: TimeMicrosecond => {
549
- ScalarValue :: TimeMicrosecond ( None )
549
+ ScalarValue :: TimestampMicrosecond ( None )
550
550
}
551
551
PrimitiveScalarType :: TimeNanosecond => {
552
- ScalarValue :: TimeNanosecond ( None )
552
+ ScalarValue :: TimestampNanosecond ( None )
553
553
}
554
554
PrimitiveScalarType :: Null => {
555
555
return Err ( proto_error (
@@ -609,10 +609,10 @@ impl TryInto<datafusion::scalar::ScalarValue> for &protobuf::scalar_value::Value
609
609
ScalarValue :: Date32 ( Some ( * v) )
610
610
}
611
611
protobuf:: scalar_value:: Value :: TimeMicrosecondValue ( v) => {
612
- ScalarValue :: TimeMicrosecond ( Some ( * v) )
612
+ ScalarValue :: TimestampMicrosecond ( Some ( * v) )
613
613
}
614
614
protobuf:: scalar_value:: Value :: TimeNanosecondValue ( v) => {
615
- ScalarValue :: TimeNanosecond ( Some ( * v) )
615
+ ScalarValue :: TimestampNanosecond ( Some ( * v) )
616
616
}
617
617
protobuf:: scalar_value:: Value :: ListValue ( v) => v. try_into ( ) ?,
618
618
protobuf:: scalar_value:: Value :: NullListValue ( v) => {
@@ -775,10 +775,10 @@ impl TryInto<datafusion::scalar::ScalarValue> for protobuf::PrimitiveScalarType
775
775
protobuf:: PrimitiveScalarType :: LargeUtf8 => ScalarValue :: LargeUtf8 ( None ) ,
776
776
protobuf:: PrimitiveScalarType :: Date32 => ScalarValue :: Date32 ( None ) ,
777
777
protobuf:: PrimitiveScalarType :: TimeMicrosecond => {
778
- ScalarValue :: TimeMicrosecond ( None )
778
+ ScalarValue :: TimestampMicrosecond ( None )
779
779
}
780
780
protobuf:: PrimitiveScalarType :: TimeNanosecond => {
781
- ScalarValue :: TimeNanosecond ( None )
781
+ ScalarValue :: TimestampNanosecond ( None )
782
782
}
783
783
} )
784
784
}
@@ -828,10 +828,10 @@ impl TryInto<datafusion::scalar::ScalarValue> for &protobuf::ScalarValue {
828
828
ScalarValue :: Date32 ( Some ( * v) )
829
829
}
830
830
protobuf:: scalar_value:: Value :: TimeMicrosecondValue ( v) => {
831
- ScalarValue :: TimeMicrosecond ( Some ( * v) )
831
+ ScalarValue :: TimestampMicrosecond ( Some ( * v) )
832
832
}
833
833
protobuf:: scalar_value:: Value :: TimeNanosecondValue ( v) => {
834
- ScalarValue :: TimeNanosecond ( Some ( * v) )
834
+ ScalarValue :: TimestampNanosecond ( Some ( * v) )
835
835
}
836
836
protobuf:: scalar_value:: Value :: ListValue ( scalar_list) => {
837
837
let protobuf:: ScalarListValue {
@@ -961,6 +961,15 @@ impl TryInto<Expr> for &protobuf::LogicalExprNode {
961
961
let data_type = arrow_type. try_into ( ) ?;
962
962
Ok ( Expr :: Cast { expr, data_type } )
963
963
}
964
+ ExprType :: TryCast ( cast) => {
965
+ let expr = Box :: new ( parse_required_expr ( & cast. expr ) ?) ;
966
+ let arrow_type: & protobuf:: ArrowType = cast
967
+ . arrow_type
968
+ . as_ref ( )
969
+ . ok_or_else ( || proto_error ( "Protobuf deserialization error: CastNode message missing required field 'arrow_type'" ) ) ?;
970
+ let data_type = arrow_type. try_into ( ) ?;
971
+ Ok ( Expr :: TryCast { expr, data_type } )
972
+ }
964
973
ExprType :: Sort ( sort) => Ok ( Expr :: Sort {
965
974
expr : Box :: new ( parse_required_expr ( & sort. expr ) ?) ,
966
975
asc : sort. asc ,
0 commit comments