This is an automated email from the ASF dual-hosted git repository.

comphead pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion.git


The following commit(s) were added to refs/heads/main by this push:
     new b96186fdef Introduce `resources_err!` error macro (#11374)
b96186fdef is described below

commit b96186fdef1ff410663ec8fce41186c018f8e09a
Author: Oleks V <[email protected]>
AuthorDate: Wed Jul 10 08:09:51 2024 -0700

    Introduce `resources_err!` error macro (#11374)
---
 datafusion/common/src/error.rs               | 3 +++
 datafusion/execution/src/disk_manager.rs     | 6 +++---
 datafusion/execution/src/memory_pool/pool.rs | 5 +++--
 3 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/datafusion/common/src/error.rs b/datafusion/common/src/error.rs
index b1fdb652af..9be662ca28 100644
--- a/datafusion/common/src/error.rs
+++ b/datafusion/common/src/error.rs
@@ -553,6 +553,9 @@ make_error!(config_err, config_datafusion_err, 
Configuration);
 // Exposes a macro to create `DataFusionError::Substrait` with optional 
backtrace
 make_error!(substrait_err, substrait_datafusion_err, Substrait);
 
+// Exposes a macro to create `DataFusionError::ResourcesExhausted` with 
optional backtrace
+make_error!(resources_err, resources_datafusion_err, ResourcesExhausted);
+
 // Exposes a macro to create `DataFusionError::SQL` with optional backtrace
 #[macro_export]
 macro_rules! sql_datafusion_err {
diff --git a/datafusion/execution/src/disk_manager.rs 
b/datafusion/execution/src/disk_manager.rs
index cca25c7c3e..c98d7e5579 100644
--- a/datafusion/execution/src/disk_manager.rs
+++ b/datafusion/execution/src/disk_manager.rs
@@ -18,7 +18,7 @@
 //! Manages files generated during query execution, files are
 //! hashed among the directories listed in RuntimeConfig::local_dirs.
 
-use datafusion_common::{DataFusionError, Result};
+use datafusion_common::{resources_datafusion_err, DataFusionError, Result};
 use log::debug;
 use parking_lot::Mutex;
 use rand::{thread_rng, Rng};
@@ -119,9 +119,9 @@ impl DiskManager {
     ) -> Result<RefCountedTempFile> {
         let mut guard = self.local_dirs.lock();
         let local_dirs = guard.as_mut().ok_or_else(|| {
-            DataFusionError::ResourcesExhausted(format!(
+            resources_datafusion_err!(
                 "Memory Exhausted while {request_description} (DiskManager is 
disabled)"
-            ))
+            )
         })?;
 
         // Create a temporary directory if needed
diff --git a/datafusion/execution/src/memory_pool/pool.rs 
b/datafusion/execution/src/memory_pool/pool.rs
index 4a491630fe..fd7724f307 100644
--- a/datafusion/execution/src/memory_pool/pool.rs
+++ b/datafusion/execution/src/memory_pool/pool.rs
@@ -16,7 +16,7 @@
 // under the License.
 
 use crate::memory_pool::{MemoryConsumer, MemoryPool, MemoryReservation};
-use datafusion_common::{DataFusionError, Result};
+use datafusion_common::{resources_datafusion_err, DataFusionError, Result};
 use log::debug;
 use parking_lot::Mutex;
 use std::sync::atomic::{AtomicUsize, Ordering};
@@ -231,12 +231,13 @@ impl MemoryPool for FairSpillPool {
     }
 }
 
+#[inline(always)]
 fn insufficient_capacity_err(
     reservation: &MemoryReservation,
     additional: usize,
     available: usize,
 ) -> DataFusionError {
-    DataFusionError::ResourcesExhausted(format!("Failed to allocate additional 
{} bytes for {} with {} bytes already allocated - maximum available is {}", 
additional, reservation.registration.consumer.name, reservation.size, 
available))
+    resources_datafusion_err!("Failed to allocate additional {} bytes for {} 
with {} bytes already allocated - maximum available is {}", additional, 
reservation.registration.consumer.name, reservation.size, available)
 }
 
 #[cfg(test)]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to