From 52ee782d0fcc9f7c0e96af935f6cad79be6b0d59 Mon Sep 17 00:00:00 2001 From: Vignesh <149236000+vigneshsiva11@users.noreply.github.com> Date: Fri, 30 Jan 2026 15:46:36 +0000 Subject: [PATCH 1/3] Improve memory accounting for ArrowBytesViewMap --- datafusion/physical-expr-common/src/binary_view_map.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datafusion/physical-expr-common/src/binary_view_map.rs b/datafusion/physical-expr-common/src/binary_view_map.rs index ff93aaf1e13d..ff0b7c71eec8 100644 --- a/datafusion/physical-expr-common/src/binary_view_map.rs +++ b/datafusion/physical-expr-common/src/binary_view_map.rs @@ -437,7 +437,7 @@ where let views_size = self.views.len() * size_of::(); let in_progress_size = self.in_progress.capacity(); let completed_size: usize = self.completed.iter().map(|b| b.len()).sum(); - let nulls_size = self.nulls.len() / 8; + let nulls_size = self.nulls.allocated_size(); self.map_size + views_size From e572a5f87831cf4bc319e971fd50a11adc3f954e Mon Sep 17 00:00:00 2001 From: Vignesh <149236000+vigneshsiva11@users.noreply.github.com> Date: Fri, 30 Jan 2026 21:26:46 +0530 Subject: [PATCH 2/3] Update datafusion/physical-expr-common/src/binary_view_map.rs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- datafusion/physical-expr-common/src/binary_view_map.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datafusion/physical-expr-common/src/binary_view_map.rs b/datafusion/physical-expr-common/src/binary_view_map.rs index ff0b7c71eec8..52a96638c18a 100644 --- a/datafusion/physical-expr-common/src/binary_view_map.rs +++ b/datafusion/physical-expr-common/src/binary_view_map.rs @@ -437,7 +437,7 @@ where let views_size = self.views.len() * size_of::(); let in_progress_size = self.in_progress.capacity(); let completed_size: usize = self.completed.iter().map(|b| b.len()).sum(); - let nulls_size = self.nulls.allocated_size(); + let nulls_size = self.nulls.allocated_size() / 8; self.map_size + views_size From 7ed458ebbdcb5ebdf2f20640e80eed498dc48d01 Mon Sep 17 00:00:00 2001 From: Vignesh <149236000+vigneshsiva11@users.noreply.github.com> Date: Sat, 31 Jan 2026 20:19:45 +0530 Subject: [PATCH 3/3] Use allocated_size directly for null buffer accounting Adjust nulls_size calculation to use allocated_size directly. --- datafusion/physical-expr-common/src/binary_view_map.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datafusion/physical-expr-common/src/binary_view_map.rs b/datafusion/physical-expr-common/src/binary_view_map.rs index 52a96638c18a..ff0b7c71eec8 100644 --- a/datafusion/physical-expr-common/src/binary_view_map.rs +++ b/datafusion/physical-expr-common/src/binary_view_map.rs @@ -437,7 +437,7 @@ where let views_size = self.views.len() * size_of::(); let in_progress_size = self.in_progress.capacity(); let completed_size: usize = self.completed.iter().map(|b| b.len()).sum(); - let nulls_size = self.nulls.allocated_size() / 8; + let nulls_size = self.nulls.allocated_size(); self.map_size + views_size