#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IndexLakePhysicalPlanNode {
#[prost(
oneof = "index_lake_physical_plan_node::IndexLakePhysicalPlanType",
tags = "1, 2, 3, 4, 5"
)]
pub index_lake_physical_plan_type:
::core::option::Option<index_lake_physical_plan_node::IndexLakePhysicalPlanType>,
}
pub mod index_lake_physical_plan_node {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum IndexLakePhysicalPlanType {
#[prost(message, tag = "1")]
Scan(super::IndexLakeScanExecNode),
#[prost(message, tag = "2")]
Insert(super::IndexLakeInsertExecNode),
#[prost(message, tag = "3")]
Search(super::IndexLakeSearchExecNode),
#[prost(message, tag = "4")]
Update(super::IndexLakeUpdateExecNode),
#[prost(message, tag = "5")]
Delete(super::IndexLakeDeleteExecNode),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IndexLakeScanExecNode {
#[prost(string, tag = "1")]
pub namespace_name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub table_name: ::prost::alloc::string::String,
#[prost(uint32, tag = "3")]
pub partition_count: u32,
#[prost(message, repeated, tag = "4")]
pub partitions: ::prost::alloc::vec::Vec<TableScanPartition>,
#[prost(message, optional, tag = "5")]
pub projection: ::core::option::Option<Projection>,
#[prost(message, repeated, tag = "6")]
pub filters: ::prost::alloc::vec::Vec<::datafusion_proto::protobuf::LogicalExprNode>,
#[prost(uint32, tag = "7")]
pub batch_size: u32,
#[prost(uint32, optional, tag = "8")]
pub limit: ::core::option::Option<u32>,
#[prost(message, optional, tag = "9")]
pub schema: ::core::option::Option<::datafusion_proto::protobuf::Schema>,
#[prost(uint64, repeated, tag = "10")]
pub partition_row_counts: ::prost::alloc::vec::Vec<u64>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TableScanPartition {
#[prost(oneof = "table_scan_partition::PartitionType", tags = "1, 2")]
pub partition_type: ::core::option::Option<table_scan_partition::PartitionType>,
}
pub mod table_scan_partition {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum PartitionType {
#[prost(message, tag = "1")]
Auto(super::TableScanPartitionAuto),
#[prost(message, tag = "2")]
Provided(super::TableScanPartitionProvided),
}
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TableScanPartitionAuto {
#[prost(uint32, tag = "1")]
pub partition_idx: u32,
#[prost(uint32, tag = "2")]
pub partition_count: u32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TableScanPartitionProvided {
#[prost(bool, tag = "1")]
pub contains_inline_rows: bool,
#[prost(message, repeated, tag = "2")]
pub data_file_records: ::prost::alloc::vec::Vec<DataFile>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct IndexLakeInsertExecNode {
#[prost(string, tag = "1")]
pub namespace_name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub table_name: ::prost::alloc::string::String,
#[prost(enumeration = "::datafusion_proto::protobuf::InsertOp", tag = "3")]
pub insert_op: i32,
#[prost(uint32, tag = "4")]
pub bypass_insert_threshold: u32,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Projection {
#[prost(uint32, repeated, tag = "1")]
pub projection: ::prost::alloc::vec::Vec<u32>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DataFile {
#[prost(bytes = "vec", tag = "1")]
pub data_file_id: ::prost::alloc::vec::Vec<u8>,
#[prost(bytes = "vec", tag = "2")]
pub table_id: ::prost::alloc::vec::Vec<u8>,
#[prost(enumeration = "DataFileFormat", tag = "3")]
pub format: i32,
#[prost(string, tag = "4")]
pub relative_path: ::prost::alloc::string::String,
#[prost(int64, tag = "5")]
pub size: i64,
#[prost(int64, tag = "6")]
pub record_count: i64,
#[prost(bytes = "vec", tag = "7")]
pub validity: ::prost::alloc::vec::Vec<u8>,
#[prost(int64, tag = "8")]
pub valid_record_count: i64,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct IndexLakeExprNode {
#[prost(string, tag = "1")]
pub json: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IndexLakeSearchExecNode {
#[prost(string, tag = "1")]
pub namespace_name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub table_name: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub index_kind: ::prost::alloc::string::String,
#[prost(uint32, optional, tag = "4")]
pub limit: ::core::option::Option<u32>,
#[prost(string, repeated, tag = "5")]
pub dynamic_fields: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(message, optional, tag = "6")]
pub projection: ::core::option::Option<Projection>,
#[prost(message, optional, tag = "7")]
pub schema: ::core::option::Option<::datafusion_proto::protobuf::Schema>,
#[prost(bytes = "vec", tag = "8")]
pub query_data: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IndexLakeUpdateExecNode {
#[prost(string, tag = "1")]
pub namespace_name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub table_name: ::prost::alloc::string::String,
#[prost(message, optional, tag = "3")]
pub condition: ::core::option::Option<IndexLakeExprNode>,
#[prost(message, repeated, tag = "4")]
pub assignments: ::prost::alloc::vec::Vec<ExprColumnAssignment>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ExprColumnAssignment {
#[prost(string, tag = "1")]
pub column: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub value: ::core::option::Option<IndexLakeExprNode>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct IndexLakeDeleteExecNode {
#[prost(string, tag = "1")]
pub namespace_name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub table_name: ::prost::alloc::string::String,
#[prost(message, optional, tag = "3")]
pub condition: ::core::option::Option<IndexLakeExprNode>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DataFileFormat {
ParquetV1 = 0,
ParquetV2 = 1,
}
impl DataFileFormat {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::ParquetV1 => "ParquetV1",
Self::ParquetV2 => "ParquetV2",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"ParquetV1" => Some(Self::ParquetV1),
"ParquetV2" => Some(Self::ParquetV2),
_ => None,
}
}
}