diff --git a/bustubx/src/execution/physical_plan/empty.rs b/bustubx/src/execution/physical_plan/empty.rs
index 4675761..0788222 100644
--- a/bustubx/src/execution/physical_plan/empty.rs
+++ b/bustubx/src/execution/physical_plan/empty.rs
@@ -1,16 +1,36 @@
-use crate::catalog::{Schema, SchemaRef};
+use crate::catalog::SchemaRef;
use crate::execution::{ExecutionContext, VolcanoExecutor};
use crate::{BustubxResult, Tuple};
-use std::sync::Arc;
+use std::sync::atomic::{AtomicUsize, Ordering};
#[derive(Debug)]
pub struct PhysicalEmpty {
+ pub produce_row_count: usize,
pub schema: SchemaRef,
+ outputted_count: AtomicUsize,
+}
+
+impl PhysicalEmpty {
+ pub fn new(produce_row_count: usize, schema: SchemaRef) -> Self {
+ Self {
+ produce_row_count,
+ schema,
+ outputted_count: AtomicUsize::new(0),
+ }
+ }
}
impl VolcanoExecutor for PhysicalEmpty {
- fn next(&self, context: &mut ExecutionContext) -> BustubxResult