From 83e7c4dcc3e4fd284c20fdf46d4f819594e1ae1a Mon Sep 17 00:00:00 2001 From: Charles-Antoine Leger Date: Wed, 22 Apr 2026 17:56:34 +0200 Subject: [PATCH 1/2] feat(datafusion): add limit to IcebergTableScan display output --- crates/integrations/datafusion/src/physical_plan/scan.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/integrations/datafusion/src/physical_plan/scan.rs b/crates/integrations/datafusion/src/physical_plan/scan.rs index 234ab26470..36539ae503 100644 --- a/crates/integrations/datafusion/src/physical_plan/scan.rs +++ b/crates/integrations/datafusion/src/physical_plan/scan.rs @@ -196,7 +196,11 @@ impl DisplayAs for IcebergTableScan { self.predicates .clone() .map_or(String::from(""), |p| format!("{p}")) - ) + )?; + if let Some(limit) = self.limit { + write!(f, " limit:[{limit}]")?; + } + Ok(()) } } From 61fdbdab2a0828ead4a97a43b20c7aca75fa17c3 Mon Sep 17 00:00:00 2001 From: Charles-Antoine Leger Date: Wed, 22 Apr 2026 17:56:42 +0200 Subject: [PATCH 2/2] test(datafusion): verify EXPLAIN shows limit is pushed down to IcebergTableScan --- .../testdata/slts/df_test/basic_queries.slt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/crates/sqllogictest/testdata/slts/df_test/basic_queries.slt b/crates/sqllogictest/testdata/slts/df_test/basic_queries.slt index 5d8889f158..a5ca4de46a 100644 --- a/crates/sqllogictest/testdata/slts/df_test/basic_queries.slt +++ b/crates/sqllogictest/testdata/slts/df_test/basic_queries.slt @@ -43,6 +43,18 @@ INSERT INTO default.default.query_test_table VALUES ---- 10 +# Verify EXPLAIN shows limit is pushed down to IcebergTableScan +query TT +EXPLAIN SELECT * FROM default.default.query_test_table LIMIT 3 +---- +logical_plan +01)Limit: skip=0, fetch=3 +02)--TableScan: default.default.query_test_table projection=[id, name, score, category], fetch=3 +physical_plan +01)GlobalLimitExec: skip=0, fetch=3 +02)--CooperativeExec +03)----IcebergTableScan projection:[id,name,score,category] predicate:[] limit:[3] + # Test SELECT * with ORDER BY and LIMIT query ITRT SELECT * FROM default.default.query_test_table ORDER BY id LIMIT 3