This is an automated email from the ASF dual-hosted git repository.
alamb pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion.git
The following commit(s) were added to refs/heads/main by this push:
new 767bbca634 [MINOR] Remove ScalarFunction from datafusion.proto #10173
(#10202)
767bbca634 is described below
commit 767bbca6347db7d396e1b1a5fa51d17373a9e5c2
Author: Dmitry Bugakov <[email protected]>
AuthorDate: Tue Apr 23 22:57:04 2024 +0200
[MINOR] Remove ScalarFunction from datafusion.proto #10173 (#10202)
---
datafusion/proto/proto/datafusion.proto | 156 ----------
datafusion/proto/src/generated/pbjson.rs | 351 -----------------------
datafusion/proto/src/generated/prost.rs | 190 +-----------
datafusion/proto/src/logical_plan/from_proto.rs | 10 +-
datafusion/proto/src/physical_plan/from_proto.rs | 6 -
5 files changed, 3 insertions(+), 710 deletions(-)
diff --git a/datafusion/proto/proto/datafusion.proto
b/datafusion/proto/proto/datafusion.proto
index 7aa2870558..5bffdc3af7 100644
--- a/datafusion/proto/proto/datafusion.proto
+++ b/datafusion/proto/proto/datafusion.proto
@@ -389,7 +389,6 @@ message LogicalExprNode {
NegativeNode negative = 13;
InListNode in_list = 14;
Wildcard wildcard = 15;
- ScalarFunctionNode scalar_function = 16;
TryCastNode try_cast = 17;
// window expressions
@@ -538,153 +537,6 @@ message InListNode {
bool negated = 3;
}
-enum ScalarFunction {
- // 0 was Abs before
- // The first enum value must be zero for open enums
- unknown = 0;
- // 1 was Acos
- // 2 was Asin
- // 3 was Atan
- // 4 was Ascii
- // 5 was Ceil
- // 6 was Cos
- // 7 was Digest
- // 8 was Exp
- // 9 was Floor
- // 10 was Ln
- // 11 was Log
- // 12 was Log10
- // 13 was Log2
- // 14 was Round
- // 15 was Signum
- // 16 was Sin
- // 17 was Sqrt
- // Tan = 18;
- // 19 was Trunc
- // 20 was Array
- // RegexpMatch = 21;
- // 22 was BitLength
- // 23 was Btrim
- // 24 was CharacterLength
- // 25 was Chr
- // 26 was Concat
- // 27 was ConcatWithSeparator
- // 28 was DatePart
- // 29 was DateTrunc
- // 30 was InitCap
- // 31 was Left
- // 32 was Lpad
- // 33 was Lower
- // 34 was Ltrim
- // 35 was MD5
- // 36 was NullIf
- // 37 was OctetLength
- // 38 was Random
- // 39 was RegexpReplace
- // 40 was Repeat
- // 41 was Replace
- // 42 was Reverse
- // 43 was Right
- // 44 was Rpad
- // 45 was Rtrim
- // 46 was SHA224
- // 47 was SHA256
- // 48 was SHA384
- // 49 was SHA512
- // 50 was SplitPart
- // StartsWith = 51;
- // 52 was Strpos
- // 53 was Substr
- // ToHex = 54;
- // 55 was ToTimestamp
- // 56 was ToTimestampMillis
- // 57 was ToTimestampMicros
- // 58 was ToTimestampSeconds
- // 59 was Now
- // 60 was Translate
- // Trim = 61;
- // Upper = 62;
- // 63 was Coalesce
- // 64 was Power
- // 65 was StructFun
- // 66 was FromUnixtime
- // 67 Atan2
- // 68 was DateBin
- // 69 was ArrowTypeof
- // 70 was CurrentDate
- // 71 was CurrentTime
- // 72 was Uuid
- // 73 was Cbrt
- // 74 Acosh
- // 75 was Asinh
- // 76 was Atanh
- // 77 was Sinh
- // 78 was Cosh
- // Tanh = 79
- // 80 was Pi
- // 81 was Degrees
- // 82 was Radians
- // 83 was Factorial
- // 84 was Lcm
- // 85 was Gcd
- // 86 was ArrayAppend
- // 87 was ArrayConcat
- // 88 was ArrayDims
- // 89 was ArrayRepeat
- // 90 was ArrayLength
- // 91 was ArrayNdims
- // 92 was ArrayPosition
- // 93 was ArrayPositions
- // 94 was ArrayPrepend
- // 95 was ArrayRemove
- // 96 was ArrayReplace
- // 97 was ArrayToString
- // 98 was Cardinality
- // 99 was ArrayElement
- // 100 was ArraySlice
- // 103 was Cot
- // 104 was ArrayHas
- // 105 was ArrayHasAny
- // 106 was ArrayHasAll
- // 107 was ArrayRemoveN
- // 108 was ArrayReplaceN
- // 109 was ArrayRemoveAll
- // 110 was ArrayReplaceAll
- // 111 was Nanvl
- // 112 was Flatten
- // 113 was IsNan
- // 114 was Iszero
- // 115 was ArrayEmpty
- // 116 was ArrayPopBack
- // 117 was StringToArray
- // 118 was ToTimestampNanos
- // 119 was ArrayIntersect
- // 120 was ArrayUnion
- // 121 was OverLay
- // 122 is Range
- // 123 is ArrayExcept
- // 124 was ArrayPopFront
- // 125 was Levenshtein
- // 126 was SubstrIndex
- // 127 was FindInSet
- // 128 was ArraySort
- // 129 was ArrayDistinct
- // 130 was ArrayResize
- // 131 was EndsWith
- // 132 was InStr
- // 133 was MakeDate
- // 134 was ArrayReverse
- // 135 is RegexpLike
- // 136 was ToChar
- // 137 was ToDate
- // 138 was ToUnixtime
-}
-
-message ScalarFunctionNode {
- ScalarFunction fun = 1;
- repeated LogicalExprNode args = 2;
-}
-
enum AggregateFunction {
MIN = 0;
MAX = 1;
@@ -1458,7 +1310,6 @@ message PhysicalExprNode {
PhysicalSortExprNode sort = 10;
PhysicalNegativeNode negative = 11;
PhysicalInListNode in_list = 12;
- PhysicalScalarFunctionNode scalar_function = 13;
PhysicalTryCastNode try_cast = 14;
// window expressions
@@ -1559,13 +1410,6 @@ message PhysicalCaseNode {
PhysicalExprNode else_expr = 3;
}
-message PhysicalScalarFunctionNode {
- string name = 1;
- ScalarFunction fun = 2;
- repeated PhysicalExprNode args = 3;
- ArrowType return_type = 4;
-}
-
message PhysicalTryCastNode {
PhysicalExprNode expr = 1;
ArrowType arrow_type = 2;
diff --git a/datafusion/proto/src/generated/pbjson.rs
b/datafusion/proto/src/generated/pbjson.rs
index 29724fa9cf..0fb6f46237 100644
--- a/datafusion/proto/src/generated/pbjson.rs
+++ b/datafusion/proto/src/generated/pbjson.rs
@@ -13809,9 +13809,6 @@ impl serde::Serialize for LogicalExprNode {
logical_expr_node::ExprType::Wildcard(v) => {
struct_ser.serialize_field("wildcard", v)?;
}
- logical_expr_node::ExprType::ScalarFunction(v) => {
- struct_ser.serialize_field("scalarFunction", v)?;
- }
logical_expr_node::ExprType::TryCast(v) => {
struct_ser.serialize_field("tryCast", v)?;
}
@@ -13903,8 +13900,6 @@ impl<'de> serde::Deserialize<'de> for LogicalExprNode {
"in_list",
"inList",
"wildcard",
- "scalar_function",
- "scalarFunction",
"try_cast",
"tryCast",
"window_expr",
@@ -13956,7 +13951,6 @@ impl<'de> serde::Deserialize<'de> for LogicalExprNode {
Negative,
InList,
Wildcard,
- ScalarFunction,
TryCast,
WindowExpr,
AggregateUdfExpr,
@@ -14012,7 +14006,6 @@ impl<'de> serde::Deserialize<'de> for LogicalExprNode {
"negative" => Ok(GeneratedField::Negative),
"inList" | "in_list" => Ok(GeneratedField::InList),
"wildcard" => Ok(GeneratedField::Wildcard),
- "scalarFunction" | "scalar_function" =>
Ok(GeneratedField::ScalarFunction),
"tryCast" | "try_cast" =>
Ok(GeneratedField::TryCast),
"windowExpr" | "window_expr" =>
Ok(GeneratedField::WindowExpr),
"aggregateUdfExpr" | "aggregate_udf_expr" =>
Ok(GeneratedField::AggregateUdfExpr),
@@ -14157,13 +14150,6 @@ impl<'de> serde::Deserialize<'de> for LogicalExprNode {
return
Err(serde::de::Error::duplicate_field("wildcard"));
}
expr_type__ =
map_.next_value::<::std::option::Option<_>>()?.map(logical_expr_node::ExprType::Wildcard)
-;
- }
- GeneratedField::ScalarFunction => {
- if expr_type__.is_some() {
- return
Err(serde::de::Error::duplicate_field("scalarFunction"));
- }
- expr_type__ =
map_.next_value::<::std::option::Option<_>>()?.map(logical_expr_node::ExprType::ScalarFunction)
;
}
GeneratedField::TryCast => {
@@ -18526,9 +18512,6 @@ impl serde::Serialize for PhysicalExprNode {
physical_expr_node::ExprType::InList(v) => {
struct_ser.serialize_field("inList", v)?;
}
- physical_expr_node::ExprType::ScalarFunction(v) => {
- struct_ser.serialize_field("scalarFunction", v)?;
- }
physical_expr_node::ExprType::TryCast(v) => {
struct_ser.serialize_field("tryCast", v)?;
}
@@ -18572,8 +18555,6 @@ impl<'de> serde::Deserialize<'de> for PhysicalExprNode {
"negative",
"in_list",
"inList",
- "scalar_function",
- "scalarFunction",
"try_cast",
"tryCast",
"window_expr",
@@ -18598,7 +18579,6 @@ impl<'de> serde::Deserialize<'de> for PhysicalExprNode {
Sort,
Negative,
InList,
- ScalarFunction,
TryCast,
WindowExpr,
ScalarUdf,
@@ -18636,7 +18616,6 @@ impl<'de> serde::Deserialize<'de> for PhysicalExprNode {
"sort" => Ok(GeneratedField::Sort),
"negative" => Ok(GeneratedField::Negative),
"inList" | "in_list" => Ok(GeneratedField::InList),
- "scalarFunction" | "scalar_function" =>
Ok(GeneratedField::ScalarFunction),
"tryCast" | "try_cast" =>
Ok(GeneratedField::TryCast),
"windowExpr" | "window_expr" =>
Ok(GeneratedField::WindowExpr),
"scalarUdf" | "scalar_udf" =>
Ok(GeneratedField::ScalarUdf),
@@ -18745,13 +18724,6 @@ impl<'de> serde::Deserialize<'de> for PhysicalExprNode
{
return
Err(serde::de::Error::duplicate_field("inList"));
}
expr_type__ =
map_.next_value::<::std::option::Option<_>>()?.map(physical_expr_node::ExprType::InList)
-;
- }
- GeneratedField::ScalarFunction => {
- if expr_type__.is_some() {
- return
Err(serde::de::Error::duplicate_field("scalarFunction"));
- }
- expr_type__ =
map_.next_value::<::std::option::Option<_>>()?.map(physical_expr_node::ExprType::ScalarFunction)
;
}
GeneratedField::TryCast => {
@@ -20110,151 +20082,6 @@ impl<'de> serde::Deserialize<'de> for
PhysicalPlanNode {
deserializer.deserialize_struct("datafusion.PhysicalPlanNode", FIELDS,
GeneratedVisitor)
}
}
-impl serde::Serialize for PhysicalScalarFunctionNode {
- #[allow(deprecated)]
- fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok,
S::Error>
- where
- S: serde::Serializer,
- {
- use serde::ser::SerializeStruct;
- let mut len = 0;
- if !self.name.is_empty() {
- len += 1;
- }
- if self.fun != 0 {
- len += 1;
- }
- if !self.args.is_empty() {
- len += 1;
- }
- if self.return_type.is_some() {
- len += 1;
- }
- let mut struct_ser =
serializer.serialize_struct("datafusion.PhysicalScalarFunctionNode", len)?;
- if !self.name.is_empty() {
- struct_ser.serialize_field("name", &self.name)?;
- }
- if self.fun != 0 {
- let v = ScalarFunction::try_from(self.fun)
- .map_err(|_| serde::ser::Error::custom(format!("Invalid
variant {}", self.fun)))?;
- struct_ser.serialize_field("fun", &v)?;
- }
- if !self.args.is_empty() {
- struct_ser.serialize_field("args", &self.args)?;
- }
- if let Some(v) = self.return_type.as_ref() {
- struct_ser.serialize_field("returnType", v)?;
- }
- struct_ser.end()
- }
-}
-impl<'de> serde::Deserialize<'de> for PhysicalScalarFunctionNode {
- #[allow(deprecated)]
- fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
- where
- D: serde::Deserializer<'de>,
- {
- const FIELDS: &[&str] = &[
- "name",
- "fun",
- "args",
- "return_type",
- "returnType",
- ];
-
- #[allow(clippy::enum_variant_names)]
- enum GeneratedField {
- Name,
- Fun,
- Args,
- ReturnType,
- }
- impl<'de> serde::Deserialize<'de> for GeneratedField {
- fn deserialize<D>(deserializer: D) ->
std::result::Result<GeneratedField, D::Error>
- where
- D: serde::Deserializer<'de>,
- {
- struct GeneratedVisitor;
-
- impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
- type Value = GeneratedField;
-
- fn expecting(&self, formatter: &mut
std::fmt::Formatter<'_>) -> std::fmt::Result {
- write!(formatter, "expected one of: {:?}", &FIELDS)
- }
-
- #[allow(unused_variables)]
- fn visit_str<E>(self, value: &str) ->
std::result::Result<GeneratedField, E>
- where
- E: serde::de::Error,
- {
- match value {
- "name" => Ok(GeneratedField::Name),
- "fun" => Ok(GeneratedField::Fun),
- "args" => Ok(GeneratedField::Args),
- "returnType" | "return_type" =>
Ok(GeneratedField::ReturnType),
- _ => Err(serde::de::Error::unknown_field(value,
FIELDS)),
- }
- }
- }
- deserializer.deserialize_identifier(GeneratedVisitor)
- }
- }
- struct GeneratedVisitor;
- impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
- type Value = PhysicalScalarFunctionNode;
-
- fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) ->
std::fmt::Result {
- formatter.write_str("struct
datafusion.PhysicalScalarFunctionNode")
- }
-
- fn visit_map<V>(self, mut map_: V) ->
std::result::Result<PhysicalScalarFunctionNode, V::Error>
- where
- V: serde::de::MapAccess<'de>,
- {
- let mut name__ = None;
- let mut fun__ = None;
- let mut args__ = None;
- let mut return_type__ = None;
- while let Some(k) = map_.next_key()? {
- match k {
- GeneratedField::Name => {
- if name__.is_some() {
- return
Err(serde::de::Error::duplicate_field("name"));
- }
- name__ = Some(map_.next_value()?);
- }
- GeneratedField::Fun => {
- if fun__.is_some() {
- return
Err(serde::de::Error::duplicate_field("fun"));
- }
- fun__ = Some(map_.next_value::<ScalarFunction>()?
as i32);
- }
- GeneratedField::Args => {
- if args__.is_some() {
- return
Err(serde::de::Error::duplicate_field("args"));
- }
- args__ = Some(map_.next_value()?);
- }
- GeneratedField::ReturnType => {
- if return_type__.is_some() {
- return
Err(serde::de::Error::duplicate_field("returnType"));
- }
- return_type__ = map_.next_value()?;
- }
- }
- }
- Ok(PhysicalScalarFunctionNode {
- name: name__.unwrap_or_default(),
- fun: fun__.unwrap_or_default(),
- args: args__.unwrap_or_default(),
- return_type: return_type__,
- })
- }
- }
-
deserializer.deserialize_struct("datafusion.PhysicalScalarFunctionNode",
FIELDS, GeneratedVisitor)
- }
-}
impl serde::Serialize for PhysicalScalarUdfNode {
#[allow(deprecated)]
fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok,
S::Error>
@@ -22784,184 +22611,6 @@ impl<'de> serde::Deserialize<'de> for
ScalarFixedSizeBinary {
deserializer.deserialize_struct("datafusion.ScalarFixedSizeBinary",
FIELDS, GeneratedVisitor)
}
}
-impl serde::Serialize for ScalarFunction {
- #[allow(deprecated)]
- fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok,
S::Error>
- where
- S: serde::Serializer,
- {
- let variant = match self {
- Self::Unknown => "unknown",
- };
- serializer.serialize_str(variant)
- }
-}
-impl<'de> serde::Deserialize<'de> for ScalarFunction {
- #[allow(deprecated)]
- fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
- where
- D: serde::Deserializer<'de>,
- {
- const FIELDS: &[&str] = &[
- "unknown",
- ];
-
- struct GeneratedVisitor;
-
- impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
- type Value = ScalarFunction;
-
- fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) ->
std::fmt::Result {
- write!(formatter, "expected one of: {:?}", &FIELDS)
- }
-
- fn visit_i64<E>(self, v: i64) -> std::result::Result<Self::Value,
E>
- where
- E: serde::de::Error,
- {
- i32::try_from(v)
- .ok()
- .and_then(|x| x.try_into().ok())
- .ok_or_else(|| {
-
serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self)
- })
- }
-
- fn visit_u64<E>(self, v: u64) -> std::result::Result<Self::Value,
E>
- where
- E: serde::de::Error,
- {
- i32::try_from(v)
- .ok()
- .and_then(|x| x.try_into().ok())
- .ok_or_else(|| {
-
serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self)
- })
- }
-
- fn visit_str<E>(self, value: &str) ->
std::result::Result<Self::Value, E>
- where
- E: serde::de::Error,
- {
- match value {
- "unknown" => Ok(ScalarFunction::Unknown),
- _ => Err(serde::de::Error::unknown_variant(value, FIELDS)),
- }
- }
- }
- deserializer.deserialize_any(GeneratedVisitor)
- }
-}
-impl serde::Serialize for ScalarFunctionNode {
- #[allow(deprecated)]
- fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok,
S::Error>
- where
- S: serde::Serializer,
- {
- use serde::ser::SerializeStruct;
- let mut len = 0;
- if self.fun != 0 {
- len += 1;
- }
- if !self.args.is_empty() {
- len += 1;
- }
- let mut struct_ser =
serializer.serialize_struct("datafusion.ScalarFunctionNode", len)?;
- if self.fun != 0 {
- let v = ScalarFunction::try_from(self.fun)
- .map_err(|_| serde::ser::Error::custom(format!("Invalid
variant {}", self.fun)))?;
- struct_ser.serialize_field("fun", &v)?;
- }
- if !self.args.is_empty() {
- struct_ser.serialize_field("args", &self.args)?;
- }
- struct_ser.end()
- }
-}
-impl<'de> serde::Deserialize<'de> for ScalarFunctionNode {
- #[allow(deprecated)]
- fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
- where
- D: serde::Deserializer<'de>,
- {
- const FIELDS: &[&str] = &[
- "fun",
- "args",
- ];
-
- #[allow(clippy::enum_variant_names)]
- enum GeneratedField {
- Fun,
- Args,
- }
- impl<'de> serde::Deserialize<'de> for GeneratedField {
- fn deserialize<D>(deserializer: D) ->
std::result::Result<GeneratedField, D::Error>
- where
- D: serde::Deserializer<'de>,
- {
- struct GeneratedVisitor;
-
- impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
- type Value = GeneratedField;
-
- fn expecting(&self, formatter: &mut
std::fmt::Formatter<'_>) -> std::fmt::Result {
- write!(formatter, "expected one of: {:?}", &FIELDS)
- }
-
- #[allow(unused_variables)]
- fn visit_str<E>(self, value: &str) ->
std::result::Result<GeneratedField, E>
- where
- E: serde::de::Error,
- {
- match value {
- "fun" => Ok(GeneratedField::Fun),
- "args" => Ok(GeneratedField::Args),
- _ => Err(serde::de::Error::unknown_field(value,
FIELDS)),
- }
- }
- }
- deserializer.deserialize_identifier(GeneratedVisitor)
- }
- }
- struct GeneratedVisitor;
- impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
- type Value = ScalarFunctionNode;
-
- fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) ->
std::fmt::Result {
- formatter.write_str("struct datafusion.ScalarFunctionNode")
- }
-
- fn visit_map<V>(self, mut map_: V) ->
std::result::Result<ScalarFunctionNode, V::Error>
- where
- V: serde::de::MapAccess<'de>,
- {
- let mut fun__ = None;
- let mut args__ = None;
- while let Some(k) = map_.next_key()? {
- match k {
- GeneratedField::Fun => {
- if fun__.is_some() {
- return
Err(serde::de::Error::duplicate_field("fun"));
- }
- fun__ = Some(map_.next_value::<ScalarFunction>()?
as i32);
- }
- GeneratedField::Args => {
- if args__.is_some() {
- return
Err(serde::de::Error::duplicate_field("args"));
- }
- args__ = Some(map_.next_value()?);
- }
- }
- }
- Ok(ScalarFunctionNode {
- fun: fun__.unwrap_or_default(),
- args: args__.unwrap_or_default(),
- })
- }
- }
- deserializer.deserialize_struct("datafusion.ScalarFunctionNode",
FIELDS, GeneratedVisitor)
- }
-}
impl serde::Serialize for ScalarNestedValue {
#[allow(deprecated)]
fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok,
S::Error>
diff --git a/datafusion/proto/src/generated/prost.rs
b/datafusion/proto/src/generated/prost.rs
index 400a7bf757..d0210eb7cf 100644
--- a/datafusion/proto/src/generated/prost.rs
+++ b/datafusion/proto/src/generated/prost.rs
@@ -572,7 +572,7 @@ pub struct SubqueryAliasNode {
pub struct LogicalExprNode {
#[prost(
oneof = "logical_expr_node::ExprType",
- tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35"
+ tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35"
)]
pub expr_type: ::core::option::Option<logical_expr_node::ExprType>,
}
@@ -616,8 +616,6 @@ pub mod logical_expr_node {
InList(::prost::alloc::boxed::Box<super::InListNode>),
#[prost(message, tag = "15")]
Wildcard(super::Wildcard),
- #[prost(message, tag = "16")]
- ScalarFunction(super::ScalarFunctionNode),
#[prost(message, tag = "17")]
TryCast(::prost::alloc::boxed::Box<super::TryCastNode>),
/// window expressions
@@ -841,14 +839,6 @@ pub struct InListNode {
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct ScalarFunctionNode {
- #[prost(enumeration = "ScalarFunction", tag = "1")]
- pub fun: i32,
- #[prost(message, repeated, tag = "2")]
- pub args: ::prost::alloc::vec::Vec<LogicalExprNode>,
-}
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AggregateExprNode {
#[prost(enumeration = "AggregateFunction", tag = "1")]
pub aggr_function: i32,
@@ -2060,7 +2050,7 @@ pub struct PhysicalExtensionNode {
pub struct PhysicalExprNode {
#[prost(
oneof = "physical_expr_node::ExprType",
- tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18"
+ tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 18"
)]
pub expr_type: ::core::option::Option<physical_expr_node::ExprType>,
}
@@ -2097,8 +2087,6 @@ pub mod physical_expr_node {
Negative(::prost::alloc::boxed::Box<super::PhysicalNegativeNode>),
#[prost(message, tag = "12")]
InList(::prost::alloc::boxed::Box<super::PhysicalInListNode>),
- #[prost(message, tag = "13")]
- ScalarFunction(super::PhysicalScalarFunctionNode),
#[prost(message, tag = "14")]
TryCast(::prost::alloc::boxed::Box<super::PhysicalTryCastNode>),
/// window expressions
@@ -2275,18 +2263,6 @@ pub struct PhysicalCaseNode {
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct PhysicalScalarFunctionNode {
- #[prost(string, tag = "1")]
- pub name: ::prost::alloc::string::String,
- #[prost(enumeration = "ScalarFunction", tag = "2")]
- pub fun: i32,
- #[prost(message, repeated, tag = "3")]
- pub args: ::prost::alloc::vec::Vec<PhysicalExprNode>,
- #[prost(message, optional, tag = "4")]
- pub return_type: ::core::option::Option<ArrowType>,
-}
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PhysicalTryCastNode {
#[prost(message, optional, boxed, tag = "1")]
pub expr:
::core::option::Option<::prost::alloc::boxed::Box<PhysicalExprNode>>,
@@ -2838,168 +2814,6 @@ impl JoinConstraint {
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord,
::prost::Enumeration)]
#[repr(i32)]
-pub enum ScalarFunction {
- /// 0 was Abs before
- /// The first enum value must be zero for open enums
- ///
- /// 1 was Acos
- /// 2 was Asin
- /// 3 was Atan
- /// 4 was Ascii
- /// 5 was Ceil
- /// 6 was Cos
- /// 7 was Digest
- /// 8 was Exp
- /// 9 was Floor
- /// 10 was Ln
- /// 11 was Log
- /// 12 was Log10
- /// 13 was Log2
- /// 14 was Round
- /// 15 was Signum
- /// 16 was Sin
- /// 17 was Sqrt
- /// Tan = 18;
- /// 19 was Trunc
- /// 20 was Array
- /// RegexpMatch = 21;
- /// 22 was BitLength
- /// 23 was Btrim
- /// 24 was CharacterLength
- /// 25 was Chr
- /// 26 was Concat
- /// 27 was ConcatWithSeparator
- /// 28 was DatePart
- /// 29 was DateTrunc
- /// 30 was InitCap
- /// 31 was Left
- /// 32 was Lpad
- /// 33 was Lower
- /// 34 was Ltrim
- /// 35 was MD5
- /// 36 was NullIf
- /// 37 was OctetLength
- /// 38 was Random
- /// 39 was RegexpReplace
- /// 40 was Repeat
- /// 41 was Replace
- /// 42 was Reverse
- /// 43 was Right
- /// 44 was Rpad
- /// 45 was Rtrim
- /// 46 was SHA224
- /// 47 was SHA256
- /// 48 was SHA384
- /// 49 was SHA512
- /// 50 was SplitPart
- /// StartsWith = 51;
- /// 52 was Strpos
- /// 53 was Substr
- /// ToHex = 54;
- /// 55 was ToTimestamp
- /// 56 was ToTimestampMillis
- /// 57 was ToTimestampMicros
- /// 58 was ToTimestampSeconds
- /// 59 was Now
- /// 60 was Translate
- /// Trim = 61;
- /// Upper = 62;
- /// 63 was Coalesce
- /// 64 was Power
- /// 65 was StructFun
- /// 66 was FromUnixtime
- /// 67 Atan2
- /// 68 was DateBin
- /// 69 was ArrowTypeof
- /// 70 was CurrentDate
- /// 71 was CurrentTime
- /// 72 was Uuid
- /// 73 was Cbrt
- /// 74 Acosh
- /// 75 was Asinh
- /// 76 was Atanh
- /// 77 was Sinh
- /// 78 was Cosh
- /// Tanh = 79
- /// 80 was Pi
- /// 81 was Degrees
- /// 82 was Radians
- /// 83 was Factorial
- /// 84 was Lcm
- /// 85 was Gcd
- /// 86 was ArrayAppend
- /// 87 was ArrayConcat
- /// 88 was ArrayDims
- /// 89 was ArrayRepeat
- /// 90 was ArrayLength
- /// 91 was ArrayNdims
- /// 92 was ArrayPosition
- /// 93 was ArrayPositions
- /// 94 was ArrayPrepend
- /// 95 was ArrayRemove
- /// 96 was ArrayReplace
- /// 97 was ArrayToString
- /// 98 was Cardinality
- /// 99 was ArrayElement
- /// 100 was ArraySlice
- /// 103 was Cot
- /// 104 was ArrayHas
- /// 105 was ArrayHasAny
- /// 106 was ArrayHasAll
- /// 107 was ArrayRemoveN
- /// 108 was ArrayReplaceN
- /// 109 was ArrayRemoveAll
- /// 110 was ArrayReplaceAll
- /// 111 was Nanvl
- /// 112 was Flatten
- /// 113 was IsNan
- /// 114 was Iszero
- /// 115 was ArrayEmpty
- /// 116 was ArrayPopBack
- /// 117 was StringToArray
- /// 118 was ToTimestampNanos
- /// 119 was ArrayIntersect
- /// 120 was ArrayUnion
- /// 121 was OverLay
- /// 122 is Range
- /// 123 is ArrayExcept
- /// 124 was ArrayPopFront
- /// 125 was Levenshtein
- /// 126 was SubstrIndex
- /// 127 was FindInSet
- /// 128 was ArraySort
- /// 129 was ArrayDistinct
- /// 130 was ArrayResize
- /// 131 was EndsWith
- /// 132 was InStr
- /// 133 was MakeDate
- /// 134 was ArrayReverse
- /// 135 is RegexpLike
- /// 136 was ToChar
- /// 137 was ToDate
- /// 138 was ToUnixtime
- Unknown = 0,
-}
-impl ScalarFunction {
- /// String value of the enum field names used in the ProtoBuf definition.
- ///
- /// The values are not transformed in any way and thus are considered
stable
- /// (if the ProtoBuf definition does not change) and safe for programmatic
use.
- pub fn as_str_name(&self) -> &'static str {
- match self {
- ScalarFunction::Unknown => "unknown",
- }
- }
- /// Creates an enum from field names used in the ProtoBuf definition.
- pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
- match value {
- "unknown" => Some(Self::Unknown),
- _ => None,
- }
- }
-}
-#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord,
::prost::Enumeration)]
-#[repr(i32)]
pub enum AggregateFunction {
Min = 0,
Max = 1,
diff --git a/datafusion/proto/src/logical_plan/from_proto.rs
b/datafusion/proto/src/logical_plan/from_proto.rs
index c0898db6f6..83b232da9d 100644
--- a/datafusion/proto/src/logical_plan/from_proto.rs
+++ b/datafusion/proto/src/logical_plan/from_proto.rs
@@ -852,7 +852,7 @@ pub fn parse_expr(
registry: &dyn FunctionRegistry,
codec: &dyn LogicalExtensionCodec,
) -> Result<Expr, Error> {
- use protobuf::{logical_expr_node::ExprType, window_expr_node,
ScalarFunction};
+ use protobuf::{logical_expr_node::ExprType, window_expr_node};
let expr_type = proto
.expr_type
@@ -1264,14 +1264,6 @@ pub fn parse_expr(
Some(qualifier.clone())
},
}),
- ExprType::ScalarFunction(expr) => {
- let scalar_function = protobuf::ScalarFunction::try_from(expr.fun)
- .map_err(|_| Error::unknown("ScalarFunction", expr.fun))?;
-
- match scalar_function {
- ScalarFunction::Unknown => Err(proto_error("Unknown scalar
function")),
- }
- }
ExprType::ScalarUdfExpr(protobuf::ScalarUdfExprNode {
fun_name,
args,
diff --git a/datafusion/proto/src/physical_plan/from_proto.rs
b/datafusion/proto/src/physical_plan/from_proto.rs
index 12a3288a76..4b8a480623 100644
--- a/datafusion/proto/src/physical_plan/from_proto.rs
+++ b/datafusion/proto/src/physical_plan/from_proto.rs
@@ -338,12 +338,6 @@ pub fn parse_physical_expr(
)?,
convert_required!(e.arrow_type)?,
)),
- ExprType::ScalarFunction(e) => {
- return Err(proto_error(format!(
- "Received an unknown scalar function: {}",
- e.fun,
- )));
- }
ExprType::ScalarUdf(e) => {
let udf = match &e.fun_definition {
Some(buf) => codec.try_decode_udf(&e.name, buf)?,
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]