#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Identifier {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TypedIdentifier {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub r#type: ::core::option::Option<super::super::arrow::v1::ArrowType>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExprGetAttribute {
#[prost(message, optional, boxed, tag = "1")]
pub parent: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
#[prost(message, optional, tag = "2")]
pub attribute: ::core::option::Option<Identifier>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExprGetSubscript {
#[prost(message, optional, boxed, tag = "1")]
pub parent: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
#[prost(message, repeated, tag = "2")]
pub subscript: ::prost::alloc::vec::Vec<LogicalExprNode>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExprCall {
#[prost(message, optional, boxed, tag = "1")]
pub func: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
#[prost(message, repeated, tag = "2")]
pub args: ::prost::alloc::vec::Vec<LogicalExprNode>,
#[prost(map = "string, message", tag = "3")]
pub kwargs: ::std::collections::HashMap<
::prost::alloc::string::String,
LogicalExprNode,
>,
#[prost(string, optional, tag = "4")]
pub repr_override: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExprLiteral {
#[prost(message, optional, tag = "1")]
pub value: ::core::option::Option<super::super::arrow::v1::ScalarValue>,
#[prost(bool, tag = "2")]
pub is_arrow_scalar_object: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LogicalExprNode {
#[prost(string, tag = "40")]
pub expr_id: ::prost::alloc::string::String,
#[prost(oneof = "logical_expr_node::ExprForm", tags = "35, 36, 37, 38, 39, 41")]
pub expr_form: ::core::option::Option<logical_expr_node::ExprForm>,
#[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"
)]
pub expr_type: ::core::option::Option<logical_expr_node::ExprType>,
}
pub mod logical_expr_node {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum ExprForm {
#[prost(message, tag = "35")]
Identifier(super::Identifier),
#[prost(message, tag = "36")]
GetAttribute(::prost::alloc::boxed::Box<super::ExprGetAttribute>),
#[prost(message, tag = "37")]
GetSubscript(::prost::alloc::boxed::Box<super::ExprGetSubscript>),
#[prost(message, tag = "38")]
Call(::prost::alloc::boxed::Box<super::ExprCall>),
#[prost(message, tag = "39")]
LiteralValue(super::ExprLiteral),
#[prost(message, tag = "41")]
TypedIdentifier(super::TypedIdentifier),
}
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum ExprType {
#[prost(message, tag = "1")]
Column(super::Column),
#[prost(message, tag = "2")]
Alias(::prost::alloc::boxed::Box<super::AliasNode>),
#[prost(message, tag = "3")]
Literal(super::super::super::arrow::v1::ScalarValue),
#[prost(message, tag = "4")]
BinaryExpr(super::BinaryExprNode),
#[prost(message, tag = "5")]
AggregateExpr(::prost::alloc::boxed::Box<super::AggregateExprNode>),
#[prost(message, tag = "6")]
IsNullExpr(::prost::alloc::boxed::Box<super::IsNull>),
#[prost(message, tag = "7")]
IsNotNullExpr(::prost::alloc::boxed::Box<super::IsNotNull>),
#[prost(message, tag = "8")]
NotExpr(::prost::alloc::boxed::Box<super::Not>),
#[prost(message, tag = "9")]
Between(::prost::alloc::boxed::Box<super::BetweenNode>),
#[prost(message, tag = "10")]
Case(::prost::alloc::boxed::Box<super::CaseNode>),
#[prost(message, tag = "11")]
Cast(::prost::alloc::boxed::Box<super::CastNode>),
#[prost(message, tag = "12")]
Sort(::prost::alloc::boxed::Box<super::SortExprNode>),
#[prost(message, tag = "13")]
Negative(::prost::alloc::boxed::Box<super::NegativeNode>),
#[prost(message, tag = "14")]
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>),
#[prost(message, tag = "18")]
WindowExpr(::prost::alloc::boxed::Box<super::WindowExprNode>),
#[prost(message, tag = "19")]
AggregateUdfExpr(::prost::alloc::boxed::Box<super::AggregateUdfExprNode>),
#[prost(message, tag = "20")]
ScalarUdfExpr(super::ScalarUdfExprNode),
#[prost(message, tag = "21")]
GetIndexedField(::prost::alloc::boxed::Box<super::GetIndexedField>),
#[prost(message, tag = "22")]
GroupingSet(super::GroupingSetNode),
#[prost(message, tag = "23")]
Cube(super::CubeNode),
#[prost(message, tag = "24")]
Rollup(super::RollupNode),
#[prost(message, tag = "25")]
IsTrue(::prost::alloc::boxed::Box<super::IsTrue>),
#[prost(message, tag = "26")]
IsFalse(::prost::alloc::boxed::Box<super::IsFalse>),
#[prost(message, tag = "27")]
IsUnknown(::prost::alloc::boxed::Box<super::IsUnknown>),
#[prost(message, tag = "28")]
IsNotTrue(::prost::alloc::boxed::Box<super::IsNotTrue>),
#[prost(message, tag = "29")]
IsNotFalse(::prost::alloc::boxed::Box<super::IsNotFalse>),
#[prost(message, tag = "30")]
IsNotUnknown(::prost::alloc::boxed::Box<super::IsNotUnknown>),
#[prost(message, tag = "31")]
Like(::prost::alloc::boxed::Box<super::LikeNode>),
#[prost(message, tag = "32")]
Ilike(::prost::alloc::boxed::Box<super::ILikeNode>),
#[prost(message, tag = "33")]
SimilarTo(::prost::alloc::boxed::Box<super::SimilarToNode>),
#[prost(message, tag = "34")]
Placeholder(super::PlaceholderNode),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ColumnRelation {
#[prost(string, tag = "1")]
pub relation: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Column {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub relation: ::core::option::Option<ColumnRelation>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Wildcard {
#[prost(string, optional, tag = "1")]
pub qualifier: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlaceholderNode {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub data_type: ::core::option::Option<super::super::arrow::v1::ArrowType>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LogicalExprList {
#[prost(message, repeated, tag = "1")]
pub expr: ::prost::alloc::vec::Vec<LogicalExprNode>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GroupingSetNode {
#[prost(message, repeated, tag = "1")]
pub expr: ::prost::alloc::vec::Vec<LogicalExprList>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CubeNode {
#[prost(message, repeated, tag = "1")]
pub expr: ::prost::alloc::vec::Vec<LogicalExprNode>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RollupNode {
#[prost(message, repeated, tag = "1")]
pub expr: ::prost::alloc::vec::Vec<LogicalExprNode>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NamedStructField {
#[prost(message, optional, tag = "1")]
pub name: ::core::option::Option<super::super::arrow::v1::ScalarValue>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListIndex {
#[prost(message, optional, boxed, tag = "1")]
pub key: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListRange {
#[prost(message, optional, boxed, tag = "1")]
pub start: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
#[prost(message, optional, boxed, tag = "2")]
pub stop: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetIndexedField {
#[prost(message, optional, boxed, tag = "1")]
pub expr: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
#[prost(oneof = "get_indexed_field::Field", tags = "2, 3, 4")]
pub field: ::core::option::Option<get_indexed_field::Field>,
}
pub mod get_indexed_field {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Field {
#[prost(message, tag = "2")]
NamedStructField(super::NamedStructField),
#[prost(message, tag = "3")]
ListIndex(::prost::alloc::boxed::Box<super::ListIndex>),
#[prost(message, tag = "4")]
ListRange(::prost::alloc::boxed::Box<super::ListRange>),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IsNull {
#[prost(message, optional, boxed, tag = "1")]
pub expr: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IsNotNull {
#[prost(message, optional, boxed, tag = "1")]
pub expr: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IsTrue {
#[prost(message, optional, boxed, tag = "1")]
pub expr: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IsFalse {
#[prost(message, optional, boxed, tag = "1")]
pub expr: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IsUnknown {
#[prost(message, optional, boxed, tag = "1")]
pub expr: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IsNotTrue {
#[prost(message, optional, boxed, tag = "1")]
pub expr: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IsNotFalse {
#[prost(message, optional, boxed, tag = "1")]
pub expr: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IsNotUnknown {
#[prost(message, optional, boxed, tag = "1")]
pub expr: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Not {
#[prost(message, optional, boxed, tag = "1")]
pub expr: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AliasNode {
#[prost(message, optional, boxed, tag = "1")]
pub expr: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
#[prost(string, tag = "2")]
pub alias: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "3")]
pub relation: ::prost::alloc::vec::Vec<OwnedTableReference>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BareTableReference {
#[prost(string, tag = "1")]
pub table: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PartialTableReference {
#[prost(string, tag = "1")]
pub schema: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub table: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FullTableReference {
#[prost(string, tag = "1")]
pub catalog: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub schema: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub table: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OwnedTableReference {
#[prost(oneof = "owned_table_reference::TableReferenceEnum", tags = "1, 2, 3")]
pub table_reference_enum: ::core::option::Option<
owned_table_reference::TableReferenceEnum,
>,
}
pub mod owned_table_reference {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum TableReferenceEnum {
#[prost(message, tag = "1")]
Bare(super::BareTableReference),
#[prost(message, tag = "2")]
Partial(super::PartialTableReference),
#[prost(message, tag = "3")]
Full(super::FullTableReference),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BinaryExprNode {
#[prost(message, repeated, tag = "1")]
pub operands: ::prost::alloc::vec::Vec<LogicalExprNode>,
#[prost(string, tag = "3")]
pub op: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NegativeNode {
#[prost(message, optional, boxed, tag = "1")]
pub expr: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InListNode {
#[prost(message, optional, boxed, tag = "1")]
pub expr: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
#[prost(message, repeated, tag = "2")]
pub list: ::prost::alloc::vec::Vec<LogicalExprNode>,
#[prost(bool, tag = "3")]
pub negated: bool,
}
#[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>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AggregateExprNode {
#[prost(enumeration = "AggregateFunction", tag = "1")]
pub aggr_function: i32,
#[prost(message, repeated, tag = "2")]
pub expr: ::prost::alloc::vec::Vec<LogicalExprNode>,
#[prost(bool, tag = "3")]
pub distinct: bool,
#[prost(message, optional, boxed, tag = "4")]
pub filter: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
#[prost(message, repeated, tag = "5")]
pub order_by: ::prost::alloc::vec::Vec<LogicalExprNode>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AggregateUdfExprNode {
#[prost(string, tag = "1")]
pub fun_name: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub args: ::prost::alloc::vec::Vec<LogicalExprNode>,
#[prost(message, optional, boxed, tag = "3")]
pub filter: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
#[prost(message, repeated, tag = "4")]
pub order_by: ::prost::alloc::vec::Vec<LogicalExprNode>,
#[prost(map = "string, message", tag = "5")]
pub kwargs: ::std::collections::HashMap<
::prost::alloc::string::String,
LogicalExprNode,
>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ScalarUdfExprNode {
#[prost(string, tag = "1")]
pub fun_name: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub args: ::prost::alloc::vec::Vec<LogicalExprNode>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WindowExprNode {
#[prost(message, optional, boxed, tag = "4")]
pub expr: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
#[prost(message, repeated, tag = "5")]
pub partition_by: ::prost::alloc::vec::Vec<LogicalExprNode>,
#[prost(message, repeated, tag = "6")]
pub order_by: ::prost::alloc::vec::Vec<LogicalExprNode>,
#[prost(message, optional, tag = "8")]
pub window_frame: ::core::option::Option<WindowFrame>,
#[prost(oneof = "window_expr_node::WindowFunction", tags = "1, 2, 3, 9")]
pub window_function: ::core::option::Option<window_expr_node::WindowFunction>,
}
pub mod window_expr_node {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum WindowFunction {
#[prost(enumeration = "super::AggregateFunction", tag = "1")]
AggrFunction(i32),
#[prost(enumeration = "super::BuiltInWindowFunction", tag = "2")]
BuiltInFunction(i32),
#[prost(string, tag = "3")]
Udaf(::prost::alloc::string::String),
#[prost(string, tag = "9")]
Udwf(::prost::alloc::string::String),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BetweenNode {
#[prost(message, optional, boxed, tag = "1")]
pub expr: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
#[prost(bool, tag = "2")]
pub negated: bool,
#[prost(message, optional, boxed, tag = "3")]
pub low: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
#[prost(message, optional, boxed, tag = "4")]
pub high: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LikeNode {
#[prost(bool, tag = "1")]
pub negated: bool,
#[prost(message, optional, boxed, tag = "2")]
pub expr: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
#[prost(message, optional, boxed, tag = "3")]
pub pattern: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
#[prost(string, tag = "4")]
pub escape_char: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ILikeNode {
#[prost(bool, tag = "1")]
pub negated: bool,
#[prost(message, optional, boxed, tag = "2")]
pub expr: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
#[prost(message, optional, boxed, tag = "3")]
pub pattern: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
#[prost(string, tag = "4")]
pub escape_char: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SimilarToNode {
#[prost(bool, tag = "1")]
pub negated: bool,
#[prost(message, optional, boxed, tag = "2")]
pub expr: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
#[prost(message, optional, boxed, tag = "3")]
pub pattern: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
#[prost(string, tag = "4")]
pub escape_char: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CaseNode {
#[prost(message, optional, boxed, tag = "1")]
pub expr: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
#[prost(message, repeated, tag = "2")]
pub when_then_expr: ::prost::alloc::vec::Vec<WhenThen>,
#[prost(message, optional, boxed, tag = "3")]
pub else_expr: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WhenThen {
#[prost(message, optional, tag = "1")]
pub when_expr: ::core::option::Option<LogicalExprNode>,
#[prost(message, optional, tag = "2")]
pub then_expr: ::core::option::Option<LogicalExprNode>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CastNode {
#[prost(message, optional, boxed, tag = "1")]
pub expr: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
#[prost(message, optional, tag = "2")]
pub arrow_type: ::core::option::Option<super::super::arrow::v1::ArrowType>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TryCastNode {
#[prost(message, optional, boxed, tag = "1")]
pub expr: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
#[prost(message, optional, tag = "2")]
pub arrow_type: ::core::option::Option<super::super::arrow::v1::ArrowType>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SortExprNode {
#[prost(message, optional, boxed, tag = "1")]
pub expr: ::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
#[prost(bool, tag = "2")]
pub asc: bool,
#[prost(bool, tag = "3")]
pub nulls_first: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WindowFrame {
#[prost(enumeration = "WindowFrameUnits", tag = "1")]
pub window_frame_units: i32,
#[prost(message, optional, tag = "2")]
pub start_bound: ::core::option::Option<WindowFrameBound>,
#[prost(message, optional, tag = "3")]
pub bound: ::core::option::Option<WindowFrameBound>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WindowFrameBound {
#[prost(enumeration = "WindowFrameBoundType", tag = "1")]
pub window_frame_bound_type: i32,
#[prost(message, optional, tag = "2")]
pub bound_value: ::core::option::Option<super::super::arrow::v1::ScalarValue>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ScalarFunction {
Unspecified = 0,
Abs = 1,
Acos = 2,
Asin = 3,
Atan = 4,
Ascii = 5,
Ceil = 6,
Cos = 7,
Digest = 8,
Exp = 9,
Floor = 10,
Ln = 11,
Log = 12,
Log10 = 13,
Log2 = 14,
Round = 15,
Signum = 16,
Sin = 17,
Sqrt = 18,
Tan = 19,
Trunc = 20,
Array = 21,
RegexpMatch = 22,
BitLength = 23,
Btrim = 24,
CharacterLength = 25,
Chr = 26,
Concat = 27,
ConcatWithSeparator = 28,
DatePart = 29,
DateTrunc = 30,
InitCap = 31,
Left = 32,
Lpad = 33,
Lower = 34,
Ltrim = 35,
Md5 = 36,
NullIf = 37,
OctetLength = 38,
Random = 39,
RegexpReplace = 40,
Repeat = 41,
Replace = 42,
Reverse = 43,
Right = 44,
Rpad = 45,
Rtrim = 46,
Sha224 = 47,
Sha256 = 48,
Sha384 = 49,
Sha512 = 50,
SplitPart = 51,
StartsWith = 52,
Strpos = 53,
Substr = 54,
ToHex = 55,
ToTimestamp = 56,
ToTimestampMillis = 57,
ToTimestampMicros = 58,
ToTimestampSeconds = 59,
Now = 60,
Translate = 61,
Trim = 62,
Upper = 63,
Coalesce = 64,
Power = 65,
StructFun = 66,
FromUnixtime = 67,
Atan2 = 68,
DateBin = 69,
ArrowTypeof = 70,
CurrentDate = 71,
CurrentTime = 72,
Uuid = 73,
Cbrt = 74,
Acosh = 75,
Asinh = 76,
Atanh = 77,
Sinh = 78,
Cosh = 79,
Tanh = 80,
Pi = 81,
Degrees = 82,
Radians = 83,
Factorial = 84,
Lcm = 85,
Gcd = 86,
ArrayAppend = 87,
ArrayConcat = 88,
ArrayDims = 89,
ArrayRepeat = 90,
ArrayLength = 91,
ArrayNdims = 92,
ArrayPosition = 93,
ArrayPositions = 94,
ArrayPrepend = 95,
ArrayRemove = 96,
ArrayReplace = 97,
ArrayToString = 98,
Cardinality = 99,
ArrayElement = 100,
ArraySlice = 101,
Encode = 102,
Decode = 103,
Cot = 104,
ArrayHas = 105,
ArrayHasAny = 106,
ArrayHasAll = 107,
ArrayRemoveN = 108,
ArrayReplaceN = 109,
ArrayRemoveAll = 110,
ArrayReplaceAll = 111,
Nanvl = 112,
Flatten = 113,
Isnan = 114,
Iszero = 115,
ArrayEmpty = 116,
ArrayPopBack = 117,
StringToArray = 118,
ToTimestampNanos = 119,
ArrayIntersect = 120,
ArrayUnion = 121,
OverLay = 122,
Range = 123,
ArrayExcept = 124,
ArrayPopFront = 125,
Levenshtein = 126,
SubstrIndex = 127,
FindInSet = 128,
ArraySort = 129,
ArrayDistinct = 130,
}
impl ScalarFunction {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "SCALAR_FUNCTION_UNSPECIFIED",
Self::Abs => "SCALAR_FUNCTION_ABS",
Self::Acos => "SCALAR_FUNCTION_ACOS",
Self::Asin => "SCALAR_FUNCTION_ASIN",
Self::Atan => "SCALAR_FUNCTION_ATAN",
Self::Ascii => "SCALAR_FUNCTION_ASCII",
Self::Ceil => "SCALAR_FUNCTION_CEIL",
Self::Cos => "SCALAR_FUNCTION_COS",
Self::Digest => "SCALAR_FUNCTION_DIGEST",
Self::Exp => "SCALAR_FUNCTION_EXP",
Self::Floor => "SCALAR_FUNCTION_FLOOR",
Self::Ln => "SCALAR_FUNCTION_LN",
Self::Log => "SCALAR_FUNCTION_LOG",
Self::Log10 => "SCALAR_FUNCTION_LOG10",
Self::Log2 => "SCALAR_FUNCTION_LOG2",
Self::Round => "SCALAR_FUNCTION_ROUND",
Self::Signum => "SCALAR_FUNCTION_SIGNUM",
Self::Sin => "SCALAR_FUNCTION_SIN",
Self::Sqrt => "SCALAR_FUNCTION_SQRT",
Self::Tan => "SCALAR_FUNCTION_TAN",
Self::Trunc => "SCALAR_FUNCTION_TRUNC",
Self::Array => "SCALAR_FUNCTION_ARRAY",
Self::RegexpMatch => "SCALAR_FUNCTION_REGEXP_MATCH",
Self::BitLength => "SCALAR_FUNCTION_BIT_LENGTH",
Self::Btrim => "SCALAR_FUNCTION_BTRIM",
Self::CharacterLength => "SCALAR_FUNCTION_CHARACTER_LENGTH",
Self::Chr => "SCALAR_FUNCTION_CHR",
Self::Concat => "SCALAR_FUNCTION_CONCAT",
Self::ConcatWithSeparator => "SCALAR_FUNCTION_CONCAT_WITH_SEPARATOR",
Self::DatePart => "SCALAR_FUNCTION_DATE_PART",
Self::DateTrunc => "SCALAR_FUNCTION_DATE_TRUNC",
Self::InitCap => "SCALAR_FUNCTION_INIT_CAP",
Self::Left => "SCALAR_FUNCTION_LEFT",
Self::Lpad => "SCALAR_FUNCTION_LPAD",
Self::Lower => "SCALAR_FUNCTION_LOWER",
Self::Ltrim => "SCALAR_FUNCTION_LTRIM",
Self::Md5 => "SCALAR_FUNCTION_MD5",
Self::NullIf => "SCALAR_FUNCTION_NULL_IF",
Self::OctetLength => "SCALAR_FUNCTION_OCTET_LENGTH",
Self::Random => "SCALAR_FUNCTION_RANDOM",
Self::RegexpReplace => "SCALAR_FUNCTION_REGEXP_REPLACE",
Self::Repeat => "SCALAR_FUNCTION_REPEAT",
Self::Replace => "SCALAR_FUNCTION_REPLACE",
Self::Reverse => "SCALAR_FUNCTION_REVERSE",
Self::Right => "SCALAR_FUNCTION_RIGHT",
Self::Rpad => "SCALAR_FUNCTION_RPAD",
Self::Rtrim => "SCALAR_FUNCTION_RTRIM",
Self::Sha224 => "SCALAR_FUNCTION_SHA224",
Self::Sha256 => "SCALAR_FUNCTION_SHA256",
Self::Sha384 => "SCALAR_FUNCTION_SHA384",
Self::Sha512 => "SCALAR_FUNCTION_SHA512",
Self::SplitPart => "SCALAR_FUNCTION_SPLIT_PART",
Self::StartsWith => "SCALAR_FUNCTION_STARTS_WITH",
Self::Strpos => "SCALAR_FUNCTION_STRPOS",
Self::Substr => "SCALAR_FUNCTION_SUBSTR",
Self::ToHex => "SCALAR_FUNCTION_TO_HEX",
Self::ToTimestamp => "SCALAR_FUNCTION_TO_TIMESTAMP",
Self::ToTimestampMillis => "SCALAR_FUNCTION_TO_TIMESTAMP_MILLIS",
Self::ToTimestampMicros => "SCALAR_FUNCTION_TO_TIMESTAMP_MICROS",
Self::ToTimestampSeconds => "SCALAR_FUNCTION_TO_TIMESTAMP_SECONDS",
Self::Now => "SCALAR_FUNCTION_NOW",
Self::Translate => "SCALAR_FUNCTION_TRANSLATE",
Self::Trim => "SCALAR_FUNCTION_TRIM",
Self::Upper => "SCALAR_FUNCTION_UPPER",
Self::Coalesce => "SCALAR_FUNCTION_COALESCE",
Self::Power => "SCALAR_FUNCTION_POWER",
Self::StructFun => "SCALAR_FUNCTION_STRUCT_FUN",
Self::FromUnixtime => "SCALAR_FUNCTION_FROM_UNIXTIME",
Self::Atan2 => "SCALAR_FUNCTION_ATAN2",
Self::DateBin => "SCALAR_FUNCTION_DATE_BIN",
Self::ArrowTypeof => "SCALAR_FUNCTION_ARROW_TYPEOF",
Self::CurrentDate => "SCALAR_FUNCTION_CURRENT_DATE",
Self::CurrentTime => "SCALAR_FUNCTION_CURRENT_TIME",
Self::Uuid => "SCALAR_FUNCTION_UUID",
Self::Cbrt => "SCALAR_FUNCTION_CBRT",
Self::Acosh => "SCALAR_FUNCTION_ACOSH",
Self::Asinh => "SCALAR_FUNCTION_ASINH",
Self::Atanh => "SCALAR_FUNCTION_ATANH",
Self::Sinh => "SCALAR_FUNCTION_SINH",
Self::Cosh => "SCALAR_FUNCTION_COSH",
Self::Tanh => "SCALAR_FUNCTION_TANH",
Self::Pi => "SCALAR_FUNCTION_PI",
Self::Degrees => "SCALAR_FUNCTION_DEGREES",
Self::Radians => "SCALAR_FUNCTION_RADIANS",
Self::Factorial => "SCALAR_FUNCTION_FACTORIAL",
Self::Lcm => "SCALAR_FUNCTION_LCM",
Self::Gcd => "SCALAR_FUNCTION_GCD",
Self::ArrayAppend => "SCALAR_FUNCTION_ARRAY_APPEND",
Self::ArrayConcat => "SCALAR_FUNCTION_ARRAY_CONCAT",
Self::ArrayDims => "SCALAR_FUNCTION_ARRAY_DIMS",
Self::ArrayRepeat => "SCALAR_FUNCTION_ARRAY_REPEAT",
Self::ArrayLength => "SCALAR_FUNCTION_ARRAY_LENGTH",
Self::ArrayNdims => "SCALAR_FUNCTION_ARRAY_NDIMS",
Self::ArrayPosition => "SCALAR_FUNCTION_ARRAY_POSITION",
Self::ArrayPositions => "SCALAR_FUNCTION_ARRAY_POSITIONS",
Self::ArrayPrepend => "SCALAR_FUNCTION_ARRAY_PREPEND",
Self::ArrayRemove => "SCALAR_FUNCTION_ARRAY_REMOVE",
Self::ArrayReplace => "SCALAR_FUNCTION_ARRAY_REPLACE",
Self::ArrayToString => "SCALAR_FUNCTION_ARRAY_TO_STRING",
Self::Cardinality => "SCALAR_FUNCTION_CARDINALITY",
Self::ArrayElement => "SCALAR_FUNCTION_ARRAY_ELEMENT",
Self::ArraySlice => "SCALAR_FUNCTION_ARRAY_SLICE",
Self::Encode => "SCALAR_FUNCTION_ENCODE",
Self::Decode => "SCALAR_FUNCTION_DECODE",
Self::Cot => "SCALAR_FUNCTION_COT",
Self::ArrayHas => "SCALAR_FUNCTION_ARRAY_HAS",
Self::ArrayHasAny => "SCALAR_FUNCTION_ARRAY_HAS_ANY",
Self::ArrayHasAll => "SCALAR_FUNCTION_ARRAY_HAS_ALL",
Self::ArrayRemoveN => "SCALAR_FUNCTION_ARRAY_REMOVE_N",
Self::ArrayReplaceN => "SCALAR_FUNCTION_ARRAY_REPLACE_N",
Self::ArrayRemoveAll => "SCALAR_FUNCTION_ARRAY_REMOVE_ALL",
Self::ArrayReplaceAll => "SCALAR_FUNCTION_ARRAY_REPLACE_ALL",
Self::Nanvl => "SCALAR_FUNCTION_NANVL",
Self::Flatten => "SCALAR_FUNCTION_FLATTEN",
Self::Isnan => "SCALAR_FUNCTION_ISNAN",
Self::Iszero => "SCALAR_FUNCTION_ISZERO",
Self::ArrayEmpty => "SCALAR_FUNCTION_ARRAY_EMPTY",
Self::ArrayPopBack => "SCALAR_FUNCTION_ARRAY_POP_BACK",
Self::StringToArray => "SCALAR_FUNCTION_STRING_TO_ARRAY",
Self::ToTimestampNanos => "SCALAR_FUNCTION_TO_TIMESTAMP_NANOS",
Self::ArrayIntersect => "SCALAR_FUNCTION_ARRAY_INTERSECT",
Self::ArrayUnion => "SCALAR_FUNCTION_ARRAY_UNION",
Self::OverLay => "SCALAR_FUNCTION_OVER_LAY",
Self::Range => "SCALAR_FUNCTION_RANGE",
Self::ArrayExcept => "SCALAR_FUNCTION_ARRAY_EXCEPT",
Self::ArrayPopFront => "SCALAR_FUNCTION_ARRAY_POP_FRONT",
Self::Levenshtein => "SCALAR_FUNCTION_LEVENSHTEIN",
Self::SubstrIndex => "SCALAR_FUNCTION_SUBSTR_INDEX",
Self::FindInSet => "SCALAR_FUNCTION_FIND_IN_SET",
Self::ArraySort => "SCALAR_FUNCTION_ARRAY_SORT",
Self::ArrayDistinct => "SCALAR_FUNCTION_ARRAY_DISTINCT",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SCALAR_FUNCTION_UNSPECIFIED" => Some(Self::Unspecified),
"SCALAR_FUNCTION_ABS" => Some(Self::Abs),
"SCALAR_FUNCTION_ACOS" => Some(Self::Acos),
"SCALAR_FUNCTION_ASIN" => Some(Self::Asin),
"SCALAR_FUNCTION_ATAN" => Some(Self::Atan),
"SCALAR_FUNCTION_ASCII" => Some(Self::Ascii),
"SCALAR_FUNCTION_CEIL" => Some(Self::Ceil),
"SCALAR_FUNCTION_COS" => Some(Self::Cos),
"SCALAR_FUNCTION_DIGEST" => Some(Self::Digest),
"SCALAR_FUNCTION_EXP" => Some(Self::Exp),
"SCALAR_FUNCTION_FLOOR" => Some(Self::Floor),
"SCALAR_FUNCTION_LN" => Some(Self::Ln),
"SCALAR_FUNCTION_LOG" => Some(Self::Log),
"SCALAR_FUNCTION_LOG10" => Some(Self::Log10),
"SCALAR_FUNCTION_LOG2" => Some(Self::Log2),
"SCALAR_FUNCTION_ROUND" => Some(Self::Round),
"SCALAR_FUNCTION_SIGNUM" => Some(Self::Signum),
"SCALAR_FUNCTION_SIN" => Some(Self::Sin),
"SCALAR_FUNCTION_SQRT" => Some(Self::Sqrt),
"SCALAR_FUNCTION_TAN" => Some(Self::Tan),
"SCALAR_FUNCTION_TRUNC" => Some(Self::Trunc),
"SCALAR_FUNCTION_ARRAY" => Some(Self::Array),
"SCALAR_FUNCTION_REGEXP_MATCH" => Some(Self::RegexpMatch),
"SCALAR_FUNCTION_BIT_LENGTH" => Some(Self::BitLength),
"SCALAR_FUNCTION_BTRIM" => Some(Self::Btrim),
"SCALAR_FUNCTION_CHARACTER_LENGTH" => Some(Self::CharacterLength),
"SCALAR_FUNCTION_CHR" => Some(Self::Chr),
"SCALAR_FUNCTION_CONCAT" => Some(Self::Concat),
"SCALAR_FUNCTION_CONCAT_WITH_SEPARATOR" => Some(Self::ConcatWithSeparator),
"SCALAR_FUNCTION_DATE_PART" => Some(Self::DatePart),
"SCALAR_FUNCTION_DATE_TRUNC" => Some(Self::DateTrunc),
"SCALAR_FUNCTION_INIT_CAP" => Some(Self::InitCap),
"SCALAR_FUNCTION_LEFT" => Some(Self::Left),
"SCALAR_FUNCTION_LPAD" => Some(Self::Lpad),
"SCALAR_FUNCTION_LOWER" => Some(Self::Lower),
"SCALAR_FUNCTION_LTRIM" => Some(Self::Ltrim),
"SCALAR_FUNCTION_MD5" => Some(Self::Md5),
"SCALAR_FUNCTION_NULL_IF" => Some(Self::NullIf),
"SCALAR_FUNCTION_OCTET_LENGTH" => Some(Self::OctetLength),
"SCALAR_FUNCTION_RANDOM" => Some(Self::Random),
"SCALAR_FUNCTION_REGEXP_REPLACE" => Some(Self::RegexpReplace),
"SCALAR_FUNCTION_REPEAT" => Some(Self::Repeat),
"SCALAR_FUNCTION_REPLACE" => Some(Self::Replace),
"SCALAR_FUNCTION_REVERSE" => Some(Self::Reverse),
"SCALAR_FUNCTION_RIGHT" => Some(Self::Right),
"SCALAR_FUNCTION_RPAD" => Some(Self::Rpad),
"SCALAR_FUNCTION_RTRIM" => Some(Self::Rtrim),
"SCALAR_FUNCTION_SHA224" => Some(Self::Sha224),
"SCALAR_FUNCTION_SHA256" => Some(Self::Sha256),
"SCALAR_FUNCTION_SHA384" => Some(Self::Sha384),
"SCALAR_FUNCTION_SHA512" => Some(Self::Sha512),
"SCALAR_FUNCTION_SPLIT_PART" => Some(Self::SplitPart),
"SCALAR_FUNCTION_STARTS_WITH" => Some(Self::StartsWith),
"SCALAR_FUNCTION_STRPOS" => Some(Self::Strpos),
"SCALAR_FUNCTION_SUBSTR" => Some(Self::Substr),
"SCALAR_FUNCTION_TO_HEX" => Some(Self::ToHex),
"SCALAR_FUNCTION_TO_TIMESTAMP" => Some(Self::ToTimestamp),
"SCALAR_FUNCTION_TO_TIMESTAMP_MILLIS" => Some(Self::ToTimestampMillis),
"SCALAR_FUNCTION_TO_TIMESTAMP_MICROS" => Some(Self::ToTimestampMicros),
"SCALAR_FUNCTION_TO_TIMESTAMP_SECONDS" => Some(Self::ToTimestampSeconds),
"SCALAR_FUNCTION_NOW" => Some(Self::Now),
"SCALAR_FUNCTION_TRANSLATE" => Some(Self::Translate),
"SCALAR_FUNCTION_TRIM" => Some(Self::Trim),
"SCALAR_FUNCTION_UPPER" => Some(Self::Upper),
"SCALAR_FUNCTION_COALESCE" => Some(Self::Coalesce),
"SCALAR_FUNCTION_POWER" => Some(Self::Power),
"SCALAR_FUNCTION_STRUCT_FUN" => Some(Self::StructFun),
"SCALAR_FUNCTION_FROM_UNIXTIME" => Some(Self::FromUnixtime),
"SCALAR_FUNCTION_ATAN2" => Some(Self::Atan2),
"SCALAR_FUNCTION_DATE_BIN" => Some(Self::DateBin),
"SCALAR_FUNCTION_ARROW_TYPEOF" => Some(Self::ArrowTypeof),
"SCALAR_FUNCTION_CURRENT_DATE" => Some(Self::CurrentDate),
"SCALAR_FUNCTION_CURRENT_TIME" => Some(Self::CurrentTime),
"SCALAR_FUNCTION_UUID" => Some(Self::Uuid),
"SCALAR_FUNCTION_CBRT" => Some(Self::Cbrt),
"SCALAR_FUNCTION_ACOSH" => Some(Self::Acosh),
"SCALAR_FUNCTION_ASINH" => Some(Self::Asinh),
"SCALAR_FUNCTION_ATANH" => Some(Self::Atanh),
"SCALAR_FUNCTION_SINH" => Some(Self::Sinh),
"SCALAR_FUNCTION_COSH" => Some(Self::Cosh),
"SCALAR_FUNCTION_TANH" => Some(Self::Tanh),
"SCALAR_FUNCTION_PI" => Some(Self::Pi),
"SCALAR_FUNCTION_DEGREES" => Some(Self::Degrees),
"SCALAR_FUNCTION_RADIANS" => Some(Self::Radians),
"SCALAR_FUNCTION_FACTORIAL" => Some(Self::Factorial),
"SCALAR_FUNCTION_LCM" => Some(Self::Lcm),
"SCALAR_FUNCTION_GCD" => Some(Self::Gcd),
"SCALAR_FUNCTION_ARRAY_APPEND" => Some(Self::ArrayAppend),
"SCALAR_FUNCTION_ARRAY_CONCAT" => Some(Self::ArrayConcat),
"SCALAR_FUNCTION_ARRAY_DIMS" => Some(Self::ArrayDims),
"SCALAR_FUNCTION_ARRAY_REPEAT" => Some(Self::ArrayRepeat),
"SCALAR_FUNCTION_ARRAY_LENGTH" => Some(Self::ArrayLength),
"SCALAR_FUNCTION_ARRAY_NDIMS" => Some(Self::ArrayNdims),
"SCALAR_FUNCTION_ARRAY_POSITION" => Some(Self::ArrayPosition),
"SCALAR_FUNCTION_ARRAY_POSITIONS" => Some(Self::ArrayPositions),
"SCALAR_FUNCTION_ARRAY_PREPEND" => Some(Self::ArrayPrepend),
"SCALAR_FUNCTION_ARRAY_REMOVE" => Some(Self::ArrayRemove),
"SCALAR_FUNCTION_ARRAY_REPLACE" => Some(Self::ArrayReplace),
"SCALAR_FUNCTION_ARRAY_TO_STRING" => Some(Self::ArrayToString),
"SCALAR_FUNCTION_CARDINALITY" => Some(Self::Cardinality),
"SCALAR_FUNCTION_ARRAY_ELEMENT" => Some(Self::ArrayElement),
"SCALAR_FUNCTION_ARRAY_SLICE" => Some(Self::ArraySlice),
"SCALAR_FUNCTION_ENCODE" => Some(Self::Encode),
"SCALAR_FUNCTION_DECODE" => Some(Self::Decode),
"SCALAR_FUNCTION_COT" => Some(Self::Cot),
"SCALAR_FUNCTION_ARRAY_HAS" => Some(Self::ArrayHas),
"SCALAR_FUNCTION_ARRAY_HAS_ANY" => Some(Self::ArrayHasAny),
"SCALAR_FUNCTION_ARRAY_HAS_ALL" => Some(Self::ArrayHasAll),
"SCALAR_FUNCTION_ARRAY_REMOVE_N" => Some(Self::ArrayRemoveN),
"SCALAR_FUNCTION_ARRAY_REPLACE_N" => Some(Self::ArrayReplaceN),
"SCALAR_FUNCTION_ARRAY_REMOVE_ALL" => Some(Self::ArrayRemoveAll),
"SCALAR_FUNCTION_ARRAY_REPLACE_ALL" => Some(Self::ArrayReplaceAll),
"SCALAR_FUNCTION_NANVL" => Some(Self::Nanvl),
"SCALAR_FUNCTION_FLATTEN" => Some(Self::Flatten),
"SCALAR_FUNCTION_ISNAN" => Some(Self::Isnan),
"SCALAR_FUNCTION_ISZERO" => Some(Self::Iszero),
"SCALAR_FUNCTION_ARRAY_EMPTY" => Some(Self::ArrayEmpty),
"SCALAR_FUNCTION_ARRAY_POP_BACK" => Some(Self::ArrayPopBack),
"SCALAR_FUNCTION_STRING_TO_ARRAY" => Some(Self::StringToArray),
"SCALAR_FUNCTION_TO_TIMESTAMP_NANOS" => Some(Self::ToTimestampNanos),
"SCALAR_FUNCTION_ARRAY_INTERSECT" => Some(Self::ArrayIntersect),
"SCALAR_FUNCTION_ARRAY_UNION" => Some(Self::ArrayUnion),
"SCALAR_FUNCTION_OVER_LAY" => Some(Self::OverLay),
"SCALAR_FUNCTION_RANGE" => Some(Self::Range),
"SCALAR_FUNCTION_ARRAY_EXCEPT" => Some(Self::ArrayExcept),
"SCALAR_FUNCTION_ARRAY_POP_FRONT" => Some(Self::ArrayPopFront),
"SCALAR_FUNCTION_LEVENSHTEIN" => Some(Self::Levenshtein),
"SCALAR_FUNCTION_SUBSTR_INDEX" => Some(Self::SubstrIndex),
"SCALAR_FUNCTION_FIND_IN_SET" => Some(Self::FindInSet),
"SCALAR_FUNCTION_ARRAY_SORT" => Some(Self::ArraySort),
"SCALAR_FUNCTION_ARRAY_DISTINCT" => Some(Self::ArrayDistinct),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum AggregateFunction {
Unspecified = 0,
Min = 1,
Max = 2,
Sum = 3,
Avg = 4,
Count = 5,
ApproxDistinct = 6,
Array = 7,
Variance = 8,
VariancePop = 9,
Covariance = 10,
CovariancePop = 11,
Stddev = 12,
StddevPop = 13,
Correlation = 14,
ApproxPercentileCont = 15,
ApproxMedian = 16,
ApproxPercentileContWithWeight = 17,
Grouping = 18,
Median = 19,
BitAnd = 20,
BitOr = 21,
BitXor = 22,
BoolAnd = 23,
BoolOr = 24,
FirstValue = 25,
LastValue = 26,
RegrSlope = 27,
RegrIntercept = 28,
RegrCount = 29,
RegrR2 = 30,
RegrAvgx = 31,
RegrAvgy = 32,
RegrSxx = 33,
RegrSyy = 34,
RegrSxy = 35,
String = 36,
}
impl AggregateFunction {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "AGGREGATE_FUNCTION_UNSPECIFIED",
Self::Min => "AGGREGATE_FUNCTION_MIN",
Self::Max => "AGGREGATE_FUNCTION_MAX",
Self::Sum => "AGGREGATE_FUNCTION_SUM",
Self::Avg => "AGGREGATE_FUNCTION_AVG",
Self::Count => "AGGREGATE_FUNCTION_COUNT",
Self::ApproxDistinct => "AGGREGATE_FUNCTION_APPROX_DISTINCT",
Self::Array => "AGGREGATE_FUNCTION_ARRAY",
Self::Variance => "AGGREGATE_FUNCTION_VARIANCE",
Self::VariancePop => "AGGREGATE_FUNCTION_VARIANCE_POP",
Self::Covariance => "AGGREGATE_FUNCTION_COVARIANCE",
Self::CovariancePop => "AGGREGATE_FUNCTION_COVARIANCE_POP",
Self::Stddev => "AGGREGATE_FUNCTION_STDDEV",
Self::StddevPop => "AGGREGATE_FUNCTION_STDDEV_POP",
Self::Correlation => "AGGREGATE_FUNCTION_CORRELATION",
Self::ApproxPercentileCont => "AGGREGATE_FUNCTION_APPROX_PERCENTILE_CONT",
Self::ApproxMedian => "AGGREGATE_FUNCTION_APPROX_MEDIAN",
Self::ApproxPercentileContWithWeight => {
"AGGREGATE_FUNCTION_APPROX_PERCENTILE_CONT_WITH_WEIGHT"
}
Self::Grouping => "AGGREGATE_FUNCTION_GROUPING",
Self::Median => "AGGREGATE_FUNCTION_MEDIAN",
Self::BitAnd => "AGGREGATE_FUNCTION_BIT_AND",
Self::BitOr => "AGGREGATE_FUNCTION_BIT_OR",
Self::BitXor => "AGGREGATE_FUNCTION_BIT_XOR",
Self::BoolAnd => "AGGREGATE_FUNCTION_BOOL_AND",
Self::BoolOr => "AGGREGATE_FUNCTION_BOOL_OR",
Self::FirstValue => "AGGREGATE_FUNCTION_FIRST_VALUE",
Self::LastValue => "AGGREGATE_FUNCTION_LAST_VALUE",
Self::RegrSlope => "AGGREGATE_FUNCTION_REGR_SLOPE",
Self::RegrIntercept => "AGGREGATE_FUNCTION_REGR_INTERCEPT",
Self::RegrCount => "AGGREGATE_FUNCTION_REGR_COUNT",
Self::RegrR2 => "AGGREGATE_FUNCTION_REGR_R2",
Self::RegrAvgx => "AGGREGATE_FUNCTION_REGR_AVGX",
Self::RegrAvgy => "AGGREGATE_FUNCTION_REGR_AVGY",
Self::RegrSxx => "AGGREGATE_FUNCTION_REGR_SXX",
Self::RegrSyy => "AGGREGATE_FUNCTION_REGR_SYY",
Self::RegrSxy => "AGGREGATE_FUNCTION_REGR_SXY",
Self::String => "AGGREGATE_FUNCTION_STRING",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"AGGREGATE_FUNCTION_UNSPECIFIED" => Some(Self::Unspecified),
"AGGREGATE_FUNCTION_MIN" => Some(Self::Min),
"AGGREGATE_FUNCTION_MAX" => Some(Self::Max),
"AGGREGATE_FUNCTION_SUM" => Some(Self::Sum),
"AGGREGATE_FUNCTION_AVG" => Some(Self::Avg),
"AGGREGATE_FUNCTION_COUNT" => Some(Self::Count),
"AGGREGATE_FUNCTION_APPROX_DISTINCT" => Some(Self::ApproxDistinct),
"AGGREGATE_FUNCTION_ARRAY" => Some(Self::Array),
"AGGREGATE_FUNCTION_VARIANCE" => Some(Self::Variance),
"AGGREGATE_FUNCTION_VARIANCE_POP" => Some(Self::VariancePop),
"AGGREGATE_FUNCTION_COVARIANCE" => Some(Self::Covariance),
"AGGREGATE_FUNCTION_COVARIANCE_POP" => Some(Self::CovariancePop),
"AGGREGATE_FUNCTION_STDDEV" => Some(Self::Stddev),
"AGGREGATE_FUNCTION_STDDEV_POP" => Some(Self::StddevPop),
"AGGREGATE_FUNCTION_CORRELATION" => Some(Self::Correlation),
"AGGREGATE_FUNCTION_APPROX_PERCENTILE_CONT" => {
Some(Self::ApproxPercentileCont)
}
"AGGREGATE_FUNCTION_APPROX_MEDIAN" => Some(Self::ApproxMedian),
"AGGREGATE_FUNCTION_APPROX_PERCENTILE_CONT_WITH_WEIGHT" => {
Some(Self::ApproxPercentileContWithWeight)
}
"AGGREGATE_FUNCTION_GROUPING" => Some(Self::Grouping),
"AGGREGATE_FUNCTION_MEDIAN" => Some(Self::Median),
"AGGREGATE_FUNCTION_BIT_AND" => Some(Self::BitAnd),
"AGGREGATE_FUNCTION_BIT_OR" => Some(Self::BitOr),
"AGGREGATE_FUNCTION_BIT_XOR" => Some(Self::BitXor),
"AGGREGATE_FUNCTION_BOOL_AND" => Some(Self::BoolAnd),
"AGGREGATE_FUNCTION_BOOL_OR" => Some(Self::BoolOr),
"AGGREGATE_FUNCTION_FIRST_VALUE" => Some(Self::FirstValue),
"AGGREGATE_FUNCTION_LAST_VALUE" => Some(Self::LastValue),
"AGGREGATE_FUNCTION_REGR_SLOPE" => Some(Self::RegrSlope),
"AGGREGATE_FUNCTION_REGR_INTERCEPT" => Some(Self::RegrIntercept),
"AGGREGATE_FUNCTION_REGR_COUNT" => Some(Self::RegrCount),
"AGGREGATE_FUNCTION_REGR_R2" => Some(Self::RegrR2),
"AGGREGATE_FUNCTION_REGR_AVGX" => Some(Self::RegrAvgx),
"AGGREGATE_FUNCTION_REGR_AVGY" => Some(Self::RegrAvgy),
"AGGREGATE_FUNCTION_REGR_SXX" => Some(Self::RegrSxx),
"AGGREGATE_FUNCTION_REGR_SYY" => Some(Self::RegrSyy),
"AGGREGATE_FUNCTION_REGR_SXY" => Some(Self::RegrSxy),
"AGGREGATE_FUNCTION_STRING" => Some(Self::String),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum BuiltInWindowFunction {
Unspecified = 0,
RowNumber = 1,
Rank = 2,
DenseRank = 3,
PercentRank = 4,
CumeDist = 5,
Ntile = 6,
Lag = 7,
Lead = 8,
FirstValue = 9,
LastValue = 10,
NthValue = 11,
}
impl BuiltInWindowFunction {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "BUILT_IN_WINDOW_FUNCTION_UNSPECIFIED",
Self::RowNumber => "BUILT_IN_WINDOW_FUNCTION_ROW_NUMBER",
Self::Rank => "BUILT_IN_WINDOW_FUNCTION_RANK",
Self::DenseRank => "BUILT_IN_WINDOW_FUNCTION_DENSE_RANK",
Self::PercentRank => "BUILT_IN_WINDOW_FUNCTION_PERCENT_RANK",
Self::CumeDist => "BUILT_IN_WINDOW_FUNCTION_CUME_DIST",
Self::Ntile => "BUILT_IN_WINDOW_FUNCTION_NTILE",
Self::Lag => "BUILT_IN_WINDOW_FUNCTION_LAG",
Self::Lead => "BUILT_IN_WINDOW_FUNCTION_LEAD",
Self::FirstValue => "BUILT_IN_WINDOW_FUNCTION_FIRST_VALUE",
Self::LastValue => "BUILT_IN_WINDOW_FUNCTION_LAST_VALUE",
Self::NthValue => "BUILT_IN_WINDOW_FUNCTION_NTH_VALUE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"BUILT_IN_WINDOW_FUNCTION_UNSPECIFIED" => Some(Self::Unspecified),
"BUILT_IN_WINDOW_FUNCTION_ROW_NUMBER" => Some(Self::RowNumber),
"BUILT_IN_WINDOW_FUNCTION_RANK" => Some(Self::Rank),
"BUILT_IN_WINDOW_FUNCTION_DENSE_RANK" => Some(Self::DenseRank),
"BUILT_IN_WINDOW_FUNCTION_PERCENT_RANK" => Some(Self::PercentRank),
"BUILT_IN_WINDOW_FUNCTION_CUME_DIST" => Some(Self::CumeDist),
"BUILT_IN_WINDOW_FUNCTION_NTILE" => Some(Self::Ntile),
"BUILT_IN_WINDOW_FUNCTION_LAG" => Some(Self::Lag),
"BUILT_IN_WINDOW_FUNCTION_LEAD" => Some(Self::Lead),
"BUILT_IN_WINDOW_FUNCTION_FIRST_VALUE" => Some(Self::FirstValue),
"BUILT_IN_WINDOW_FUNCTION_LAST_VALUE" => Some(Self::LastValue),
"BUILT_IN_WINDOW_FUNCTION_NTH_VALUE" => Some(Self::NthValue),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum WindowFrameUnits {
Unspecified = 0,
Rows = 1,
Range = 2,
Groups = 3,
}
impl WindowFrameUnits {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "WINDOW_FRAME_UNITS_UNSPECIFIED",
Self::Rows => "WINDOW_FRAME_UNITS_ROWS",
Self::Range => "WINDOW_FRAME_UNITS_RANGE",
Self::Groups => "WINDOW_FRAME_UNITS_GROUPS",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"WINDOW_FRAME_UNITS_UNSPECIFIED" => Some(Self::Unspecified),
"WINDOW_FRAME_UNITS_ROWS" => Some(Self::Rows),
"WINDOW_FRAME_UNITS_RANGE" => Some(Self::Range),
"WINDOW_FRAME_UNITS_GROUPS" => Some(Self::Groups),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum WindowFrameBoundType {
Unspecified = 0,
CurrentRow = 1,
Preceding = 2,
Following = 3,
}
impl WindowFrameBoundType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "WINDOW_FRAME_BOUND_TYPE_UNSPECIFIED",
Self::CurrentRow => "WINDOW_FRAME_BOUND_TYPE_CURRENT_ROW",
Self::Preceding => "WINDOW_FRAME_BOUND_TYPE_PRECEDING",
Self::Following => "WINDOW_FRAME_BOUND_TYPE_FOLLOWING",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"WINDOW_FRAME_BOUND_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"WINDOW_FRAME_BOUND_TYPE_CURRENT_ROW" => Some(Self::CurrentRow),
"WINDOW_FRAME_BOUND_TYPE_PRECEDING" => Some(Self::Preceding),
"WINDOW_FRAME_BOUND_TYPE_FOLLOWING" => Some(Self::Following),
_ => None,
}
}
}