Path: blob/main/crates/polars-stream/src/nodes/io_sinks2/components/partition_state.rs
7884 views
use std::sync::Arc;12use polars_core::frame::DataFrame;34use crate::nodes::io_sinks2::components::file_sink::FileSinkTaskData;5use crate::nodes::io_sinks2::components::size::RowCountAndSize;67#[derive(Default)]8pub struct PartitionState {9pub buffered_rows: DataFrame,10pub total_size: RowCountAndSize,11pub sinked_size: RowCountAndSize,12pub num_sink_opens: usize,13pub keys_df: Arc<DataFrame>,14pub file_sink_task_data: Option<FileSinkTaskData>,15}1617impl PartitionState {18pub fn buffered_size(&self) -> RowCountAndSize {19let num_rows = self20.total_size21.num_rows22.checked_sub(self.sinked_size.num_rows)23.unwrap();2425if num_rows == 0 {26return RowCountAndSize::default();27}2829assert_eq!(30usize::try_from(num_rows).unwrap(),31self.buffered_rows.height()32);3334RowCountAndSize {35num_rows,36num_bytes: self37.total_size38.num_bytes39.saturating_sub(self.sinked_size.num_bytes),40}41}42}434445