This is an automated email from the ASF dual-hosted git repository.
jiayu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/sedona-db.git
The following commit(s) were added to refs/heads/main by this push:
new fbf1642 Use new sedona_internal_err to avoid misleading datafusion
internal err (#2)
fbf1642 is described below
commit fbf16422d8c723fa9e5e694a841dc02db7ecde09
Author: Peter Nguyen <[email protected]>
AuthorDate: Fri Aug 29 12:03:44 2025 -0700
Use new sedona_internal_err to avoid misleading datafusion internal err (#2)
* Add new sedona_internal_err
* Use sedona_internal_err instead of internal_err in st_xyzm.rs
* More replacements
* Use full import path in macro to avoid needing import
* Replace all uses in sedona-funcdtions
* Replace with 'sedona_internal_err' in remaining packages
* Update err test case in function_set.rs to use 'contains' instead of 'eq'
---
Cargo.lock | 5 ++++
rust/sedona-common/src/error.rs | 34 +++++++++++++++++++++++++
rust/sedona-common/src/lib.rs | 1 +
rust/sedona-expr/Cargo.toml | 1 +
rust/sedona-expr/src/function_set.rs | 10 ++++----
rust/sedona-expr/src/scalar_udf.rs | 9 ++++---
rust/sedona-expr/src/spatial_filter.rs | 13 +++++++---
rust/sedona-functions/Cargo.toml | 1 +
rust/sedona-functions/src/executor.rs | 11 ++++----
rust/sedona-functions/src/st_dimension.rs | 5 ++--
rust/sedona-functions/src/st_envelope_aggr.rs | 5 ++--
rust/sedona-functions/src/st_geometrytype.rs | 5 ++--
rust/sedona-functions/src/st_haszm.rs | 5 ++--
rust/sedona-functions/src/st_isempty.rs | 5 ++--
rust/sedona-functions/src/st_setsrid.rs | 7 ++---
rust/sedona-functions/src/st_xyzm.rs | 10 +++-----
rust/sedona-functions/src/st_xyzm_minmax.rs | 5 ++--
rust/sedona-geoparquet/Cargo.toml | 1 +
rust/sedona-geoparquet/src/format.rs | 7 ++---
rust/sedona-schema/Cargo.toml | 1 +
rust/sedona-schema/src/datatypes.rs | 16 +++++++-----
rust/sedona-schema/src/extension_type.rs | 4 +--
rust/sedona-spatial-join/src/optimizer.rs | 5 ++--
rust/sedona-spatial-join/src/refine/geo.rs | 6 ++---
rust/sedona-spatial-join/src/refine/geos.rs | 6 ++---
rust/sedona-spatial-join/src/refine/tg.rs | 6 ++---
rust/sedona-spatial-join/src/stream.rs | 13 ++++++----
rust/sedona-testing/Cargo.toml | 1 +
rust/sedona-testing/src/benchmark_util.rs | 8 ++++--
rust/sedona-testing/src/data.rs | 9 ++++---
rust/sedona-testing/src/read.rs | 5 ++--
rust/sedona-testing/src/testers.rs | 21 +++++++--------
rust/sedona/src/ffi.rs | 5 ++--
rust/sedona/src/record_batch_reader_provider.rs | 7 ++---
34 files changed, 163 insertions(+), 90 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index 4be38ac..4b75ab2 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -4856,6 +4856,7 @@ dependencies = [
"datafusion-expr",
"datafusion-physical-expr",
"geo-traits 0.2.0",
+ "sedona-common",
"sedona-geometry",
"sedona-schema",
"sedona-testing",
@@ -4876,6 +4877,7 @@ dependencies = [
"datafusion-expr",
"geo-traits 0.2.0",
"rstest",
+ "sedona-common",
"sedona-expr",
"sedona-geometry",
"sedona-schema",
@@ -4966,6 +4968,7 @@ dependencies = [
"geo-traits 0.2.0",
"object_store",
"parquet",
+ "sedona-common",
"sedona-expr",
"sedona-geometry",
"sedona-schema",
@@ -5054,6 +5057,7 @@ dependencies = [
"arrow-schema",
"datafusion-common",
"datafusion-expr",
+ "sedona-common",
"serde_json",
]
@@ -5113,6 +5117,7 @@ dependencies = [
"parquet",
"rand 0.8.5",
"rstest",
+ "sedona-common",
"sedona-expr",
"sedona-geometry",
"sedona-schema",
diff --git a/rust/sedona-common/src/error.rs b/rust/sedona-common/src/error.rs
new file mode 100644
index 0000000..1448c99
--- /dev/null
+++ b/rust/sedona-common/src/error.rs
@@ -0,0 +1,34 @@
+/// Macro to create Sedona Internal Error that avoids the misleading error
message from
+/// DataFusionError::Internal.
+#[macro_export]
+macro_rules! sedona_internal_err {
+ ($($args:expr),*) => {{
+ let msg = std::format!(
+ "SedonaDB internal error: {}{}.\nThis issue was likely caused by a
bug in SedonaDB's code. \
+ Please help us to resolve this by filing a bug report in our issue
tracker: \
+ https://github.com/apache/sedona-db/issues",
+ std::format!($($args),*),
+ datafusion_common::DataFusionError::get_back_trace(),
+ );
+ // We avoid using Internal to avoid the message suggesting it's
internal to DataFusion
+ Err(datafusion_common::DataFusionError::External(msg.into()))
+ }};
+}
+
+#[cfg(test)]
+mod tests {
+ use datafusion_common::DataFusionError;
+
+ #[test]
+ fn test_sedona_internal_err() {
+ let result: Result<(), DataFusionError> = sedona_internal_err!("Test
error: {}", "details");
+ assert!(result.is_err());
+ let err = result.unwrap_err();
+ let err_string = err.to_string();
+ assert!(err_string.contains("SedonaDB internal error: Test error:
details"));
+
+ // Ensure the message doesn't contain the 'DataFusion'-specific
messages
+ assert!(!err_string.contains("DataFusion's code"));
+
assert!(!err_string.contains("https://github.com/apache/datafusion/issues"));
+ }
+}
diff --git a/rust/sedona-common/src/lib.rs b/rust/sedona-common/src/lib.rs
index f78e9f7..4400d00 100644
--- a/rust/sedona-common/src/lib.rs
+++ b/rust/sedona-common/src/lib.rs
@@ -3,6 +3,7 @@
//! This crate contains shared components that are used across multiple
//! Sedona modules, including configuration options and common data structures.
+pub mod error;
pub mod option;
pub use option::*;
diff --git a/rust/sedona-expr/Cargo.toml b/rust/sedona-expr/Cargo.toml
index f40b8d0..afe4bd8 100644
--- a/rust/sedona-expr/Cargo.toml
+++ b/rust/sedona-expr/Cargo.toml
@@ -21,6 +21,7 @@ datafusion-common = { workspace = true }
datafusion-expr = { workspace = true }
datafusion-physical-expr = { workspace = true }
geo-traits = { workspace = true }
+sedona-common = { path = "../sedona-common" }
sedona-geometry = { path = "../sedona-geometry" }
sedona-schema = { path = "../sedona-schema" }
serde = { workspace = true }
diff --git a/rust/sedona-expr/src/function_set.rs
b/rust/sedona-expr/src/function_set.rs
index 84616bb..885676d 100644
--- a/rust/sedona-expr/src/function_set.rs
+++ b/rust/sedona-expr/src/function_set.rs
@@ -2,8 +2,9 @@ use crate::{
aggregate_udf::{SedonaAccumulatorRef, SedonaAggregateUDF},
scalar_udf::{ScalarKernelRef, SedonaScalarUDF},
};
-use datafusion_common::{error::Result, internal_err};
+use datafusion_common::error::Result;
use datafusion_expr::{AggregateUDFImpl, ScalarUDFImpl};
+use sedona_common::sedona_internal_err;
use std::collections::HashMap;
/// Helper for managing groups of functions
@@ -110,7 +111,7 @@ impl FunctionSet {
function.add_kernel(kernel);
Ok(self.aggregate_udf(name).unwrap())
} else {
- internal_err!("Can't register aggregate kernel for function '{}'",
name)
+ sedona_internal_err!("Can't register aggregate kernel for function
'{}'", name)
}
}
}
@@ -248,10 +249,9 @@ mod tests {
let err = functions
.add_aggregate_udf_kernel("function that does not exist",
kernel.clone())
.unwrap_err();
- assert_eq!(
- err.message().lines().next().unwrap(),
+ assert!(err.message().lines().next().unwrap().contains(
"Can't register aggregate kernel for function 'function that does
not exist'."
- );
+ ));
let udaf2 = SedonaAggregateUDF::new(
"simple_udaf2",
diff --git a/rust/sedona-expr/src/scalar_udf.rs
b/rust/sedona-expr/src/scalar_udf.rs
index 2e3bcce..56ebce2 100644
--- a/rust/sedona-expr/src/scalar_udf.rs
+++ b/rust/sedona-expr/src/scalar_udf.rs
@@ -3,11 +3,12 @@ use std::sync::Arc;
use std::{any::Any, fmt::Debug};
use arrow_schema::{DataType, Field, FieldRef};
-use datafusion_common::{internal_err, not_impl_err, plan_err, Result,
ScalarValue};
+use datafusion_common::{not_impl_err, plan_err, Result, ScalarValue};
use datafusion_expr::{
ColumnarValue, Documentation, ReturnFieldArgs, ScalarFunctionArgs,
ScalarUDFImpl, Signature,
Volatility,
};
+use sedona_common::sedona_internal_err;
use sedona_schema::datatypes::{Edges, SedonaType};
pub type ScalarKernelRef = Arc<dyn SedonaScalarKernel + Send + Sync>;
@@ -121,7 +122,7 @@ impl ArgMatcher {
(Some(lhs_crs), Some(rhs_crs)) => {
plan_err!("Mismatched CRS arguments: {lhs_crs} vs
{rhs_crs}\n{hint}")
}
- _ => internal_err!("None vs. None should be considered
equal"),
+ _ => sedona_internal_err!("None vs. None should be
considered equal"),
};
}
}
@@ -876,13 +877,13 @@ mod tests {
}
}
- internal_err!("unrecognized target value")
+ sedona_internal_err!("unrecognized target value")
}
}
impl SedonaScalarKernel for SimpleCast {
fn return_type(&self, _args: &[SedonaType]) ->
Result<Option<SedonaType>> {
- internal_err!("Should not be called")
+ sedona_internal_err!("Should not be called")
}
fn return_type_from_args_and_scalars(
diff --git a/rust/sedona-expr/src/spatial_filter.rs
b/rust/sedona-expr/src/spatial_filter.rs
index edf6f21..2df740d 100644
--- a/rust/sedona-expr/src/spatial_filter.rs
+++ b/rust/sedona-expr/src/spatial_filter.rs
@@ -1,12 +1,13 @@
use std::sync::Arc;
-use datafusion_common::{internal_err, DataFusionError, Result, ScalarValue};
+use datafusion_common::{DataFusionError, Result, ScalarValue};
use datafusion_expr::Operator;
use datafusion_physical_expr::{
expressions::{BinaryExpr, Column, Literal},
PhysicalExpr, ScalarFunctionExpr,
};
use geo_traits::Dimensions;
+use sedona_common::sedona_internal_err;
use sedona_geometry::{bounding_box::BoundingBox, bounds::wkb_bounds_xy,
interval::IntervalTrait};
use sedona_schema::datatypes::SedonaType;
@@ -107,7 +108,9 @@ impl SpatialFilter {
match scalar_fun.fun().name() {
"st_intersects" => {
if args.len() != 2 {
- return internal_err!("unexpected argument count in
filter evaluation");
+ return sedona_internal_err!(
+ "unexpected argument count in filter evaluation"
+ );
}
match (&args[0], &args[1]) {
@@ -126,7 +129,9 @@ impl SpatialFilter {
}
"st_hasz" => {
if args.len() != 1 {
- return internal_err!("unexpected argument count in
filter evaluation");
+ return sedona_internal_err!(
+ "unexpected argument count in filter evaluation"
+ );
}
match &args[0] {
@@ -191,7 +196,7 @@ fn literal_bounds(literal: &Literal) -> Result<BoundingBox>
{
_ => {}
}
- internal_err!("Unexpected scalar type in filter expression")
+ sedona_internal_err!("Unexpected scalar type in filter expression")
}
fn parse_args(args: &[Arc<dyn PhysicalExpr>]) -> Vec<ArgRef<'_>> {
diff --git a/rust/sedona-functions/Cargo.toml b/rust/sedona-functions/Cargo.toml
index 72c88cc..a812186 100644
--- a/rust/sedona-functions/Cargo.toml
+++ b/rust/sedona-functions/Cargo.toml
@@ -25,6 +25,7 @@ arrow-array = { workspace = true }
datafusion-common = { workspace = true }
datafusion-expr = { workspace = true }
geo-traits = { workspace = true }
+sedona-common = { path = "../sedona-common" }
sedona-expr = { path = "../sedona-expr" }
sedona-geometry = { path = "../sedona-geometry" }
sedona-schema = { path = "../sedona-schema" }
diff --git a/rust/sedona-functions/src/executor.rs
b/rust/sedona-functions/src/executor.rs
index 326c334..f7ea923 100644
--- a/rust/sedona-functions/src/executor.rs
+++ b/rust/sedona-functions/src/executor.rs
@@ -3,8 +3,9 @@ use std::iter::zip;
use arrow_array::ArrayRef;
use datafusion_common::cast::{as_binary_array, as_binary_view_array};
use datafusion_common::error::Result;
-use datafusion_common::{internal_err, DataFusionError, ScalarValue};
+use datafusion_common::{DataFusionError, ScalarValue};
use datafusion_expr::ColumnarValue;
+use sedona_common::sedona_internal_err;
use sedona_schema::datatypes::SedonaType;
use wkb::reader::Wkb;
@@ -300,7 +301,7 @@ impl IterGeo for ArrayRef {
func: F,
) -> Result<()> {
if num_iterations != self.len() {
- return internal_err!(
+ return sedona_internal_err!(
"Expected {num_iterations} items but got Array with {} items",
self.len()
);
@@ -313,7 +314,7 @@ impl IterGeo for ArrayRef {
// We could cast here as a fallback, iterate and cast
per-element, or
// implement iter_as_something_else()/supports_iter_xxx() when
more geo array types
// are supported.
- internal_err!("Can't iterate over {:?} as Wkb", sedona_type)
+ sedona_internal_err!("Can't iterate over {:?} as Wkb",
sedona_type)
}
}
}
@@ -326,7 +327,7 @@ impl ScalarGeo for ScalarValue {
| ScalarValue::BinaryView(maybe_item)
| ScalarValue::LargeBinary(maybe_item) =>
Ok(maybe_item.as_deref()),
ScalarValue::Null => Ok(None),
- _ => internal_err!("Can't iterate over {:?} ScalarValue as &[u8]",
self),
+ _ => sedona_internal_err!("Can't iterate over {:?} ScalarValue as
&[u8]", self),
}
}
}
@@ -379,7 +380,7 @@ fn iter_wkb_wkb_array<
_ => {
// We could do casting of one or both sides to support other cases
as they
// arise to manage the complexity/performance balance
- internal_err!(
+ sedona_internal_err!(
"Can't iterate over {:?} and {:?} arrays as a pair of Wkb
scalars",
types.0,
types.1
diff --git a/rust/sedona-functions/src/st_dimension.rs
b/rust/sedona-functions/src/st_dimension.rs
index bdca534..d40222f 100644
--- a/rust/sedona-functions/src/st_dimension.rs
+++ b/rust/sedona-functions/src/st_dimension.rs
@@ -3,11 +3,12 @@ use std::sync::Arc;
use crate::executor::WkbExecutor;
use arrow_array::builder::Int8Builder;
use arrow_schema::DataType;
-use datafusion_common::{error::Result, internal_err};
+use datafusion_common::error::Result;
use datafusion_expr::{
scalar_doc_sections::DOC_SECTION_OTHER, ColumnarValue, Documentation,
Volatility,
};
use geo_traits::{GeometryCollectionTrait, GeometryTrait, GeometryType};
+use sedona_common::sedona_internal_err;
use sedona_expr::scalar_udf::{ArgMatcher, SedonaScalarKernel, SedonaScalarUDF};
use sedona_schema::datatypes::SedonaType;
use wkb::reader::Wkb;
@@ -76,7 +77,7 @@ fn invoke_scalar(item: &Wkb) -> Result<i8> {
}
Ok(highest_dim)
}
- _ => internal_err!("Invalid geometry type"),
+ _ => sedona_internal_err!("Invalid geometry type"),
}
}
diff --git a/rust/sedona-functions/src/st_envelope_aggr.rs
b/rust/sedona-functions/src/st_envelope_aggr.rs
index 30d8266..984eff5 100644
--- a/rust/sedona-functions/src/st_envelope_aggr.rs
+++ b/rust/sedona-functions/src/st_envelope_aggr.rs
@@ -6,11 +6,12 @@ use arrow_array::ArrayRef;
use arrow_schema::FieldRef;
use datafusion_common::{
error::{DataFusionError, Result},
- internal_err, ScalarValue,
+ ScalarValue,
};
use datafusion_expr::{
scalar_doc_sections::DOC_SECTION_OTHER, Accumulator, ColumnarValue,
Documentation, Volatility,
};
+use sedona_common::sedona_internal_err;
use sedona_expr::{
aggregate_udf::{SedonaAccumulator, SedonaAggregateUDF},
scalar_udf::ArgMatcher,
@@ -108,7 +109,7 @@ impl BoundsAccumulator2D {
)));
}
if input.len() != expected {
- return internal_err!(
+ return sedona_internal_err!(
"Unexpected input length in {} (expected {}, got {})",
context,
expected,
diff --git a/rust/sedona-functions/src/st_geometrytype.rs
b/rust/sedona-functions/src/st_geometrytype.rs
index 0737891..b8b5fe2 100644
--- a/rust/sedona-functions/src/st_geometrytype.rs
+++ b/rust/sedona-functions/src/st_geometrytype.rs
@@ -3,11 +3,12 @@ use std::sync::Arc;
use crate::executor::WkbExecutor;
use arrow_array::builder::StringBuilder;
use arrow_schema::DataType;
-use datafusion_common::{error::Result, internal_err};
+use datafusion_common::error::Result;
use datafusion_expr::{
scalar_doc_sections::DOC_SECTION_OTHER, ColumnarValue, Documentation,
Volatility,
};
use geo_traits::GeometryTrait;
+use sedona_common::sedona_internal_err;
use sedona_expr::scalar_udf::{ArgMatcher, SedonaScalarKernel, SedonaScalarUDF};
use sedona_schema::datatypes::SedonaType;
use wkb::reader::Wkb;
@@ -80,7 +81,7 @@ fn invoke_scalar(item: &Wkb) -> Result<Option<String>> {
}
// Other geometry types in geo that we should not get here: Rect,
Triangle, Line
- _ => internal_err!("unexpected geometry type"),
+ _ => sedona_internal_err!("unexpected geometry type"),
}
}
diff --git a/rust/sedona-functions/src/st_haszm.rs
b/rust/sedona-functions/src/st_haszm.rs
index bf2921a..848b072 100644
--- a/rust/sedona-functions/src/st_haszm.rs
+++ b/rust/sedona-functions/src/st_haszm.rs
@@ -3,11 +3,12 @@ use std::sync::Arc;
use crate::executor::WkbExecutor;
use arrow_array::builder::BooleanBuilder;
use arrow_schema::DataType;
-use datafusion_common::{error::Result, internal_err};
+use datafusion_common::error::Result;
use datafusion_expr::{
scalar_doc_sections::DOC_SECTION_OTHER, ColumnarValue, Documentation,
Volatility,
};
use geo_traits::{Dimensions, GeometryTrait};
+use sedona_common::sedona_internal_err;
use sedona_expr::scalar_udf::{ArgMatcher, SedonaScalarKernel, SedonaScalarUDF};
use sedona_schema::datatypes::SedonaType;
use wkb::reader::Wkb;
@@ -108,7 +109,7 @@ fn invoke_scalar(item: &Wkb, dim_index: usize) ->
Result<Option<bool>> {
match dim_index {
2 => Ok(Some(matches!(geom_dim, Dimensions::Xyz |
Dimensions::Xyzm))),
3 => Ok(Some(matches!(geom_dim, Dimensions::Xym |
Dimensions::Xyzm))),
- _ => internal_err!("unexpected dim_index"),
+ _ => sedona_internal_err!("unexpected dim_index"),
}
}
}
diff --git a/rust/sedona-functions/src/st_isempty.rs
b/rust/sedona-functions/src/st_isempty.rs
index 2c7a013..ecb88e3 100644
--- a/rust/sedona-functions/src/st_isempty.rs
+++ b/rust/sedona-functions/src/st_isempty.rs
@@ -3,7 +3,7 @@ use std::sync::Arc;
use crate::executor::WkbExecutor;
use arrow_array::builder::BooleanBuilder;
use arrow_schema::DataType;
-use datafusion_common::{error::Result, internal_err};
+use datafusion_common::error::Result;
use datafusion_expr::{
scalar_doc_sections::DOC_SECTION_OTHER, ColumnarValue, Documentation,
Volatility,
};
@@ -11,6 +11,7 @@ use geo_traits::{
GeometryCollectionTrait, GeometryTrait, LineStringTrait,
MultiLineStringTrait, MultiPointTrait,
MultiPolygonTrait, PointTrait, PolygonTrait,
};
+use sedona_common::sedona_internal_err;
use sedona_expr::scalar_udf::{ArgMatcher, SedonaScalarKernel, SedonaScalarUDF};
use sedona_schema::datatypes::SedonaType;
use wkb::reader::Wkb;
@@ -87,7 +88,7 @@ fn invoke_scalar(item: &Wkb) -> Result<bool> {
geo_traits::GeometryType::GeometryCollection(geometrycollection) => {
Ok(geometrycollection.num_geometries() == 0)
}
- _ => internal_err!("Invalid geometry type"),
+ _ => sedona_internal_err!("Invalid geometry type"),
}
}
diff --git a/rust/sedona-functions/src/st_setsrid.rs
b/rust/sedona-functions/src/st_setsrid.rs
index 857c611..889f3fb 100644
--- a/rust/sedona-functions/src/st_setsrid.rs
+++ b/rust/sedona-functions/src/st_setsrid.rs
@@ -1,10 +1,11 @@
use std::{sync::Arc, vec};
use arrow_schema::DataType;
-use datafusion_common::{error::Result, internal_err, DataFusionError,
ScalarValue};
+use datafusion_common::{error::Result, DataFusionError, ScalarValue};
use datafusion_expr::{
scalar_doc_sections::DOC_SECTION_OTHER, ColumnarValue, Documentation,
Volatility,
};
+use sedona_common::sedona_internal_err;
use sedona_expr::scalar_udf::{ArgMatcher, SedonaScalarKernel, SedonaScalarUDF};
use sedona_geometry::transform::CrsEngine;
use sedona_schema::{crs::deserialize_crs, datatypes::SedonaType};
@@ -87,7 +88,7 @@ impl SedonaScalarKernel for STSetSRID {
}
}
- internal_err!("Unexpected argument types: {}, {}", args[0], args[1])
+ sedona_internal_err!("Unexpected argument types: {}, {}", args[0],
args[1])
}
fn invoke_batch(
@@ -99,7 +100,7 @@ impl SedonaScalarKernel for STSetSRID {
}
fn return_type(&self, _args: &[SedonaType]) -> Result<Option<SedonaType>> {
- internal_err!(
+ sedona_internal_err!(
"Should not be called because return_type_from_args_and_scalars()
is implemented"
)
}
diff --git a/rust/sedona-functions/src/st_xyzm.rs
b/rust/sedona-functions/src/st_xyzm.rs
index 45f6299..6316246 100644
--- a/rust/sedona-functions/src/st_xyzm.rs
+++ b/rust/sedona-functions/src/st_xyzm.rs
@@ -3,10 +3,7 @@ use std::{sync::Arc, vec};
use crate::executor::WkbExecutor;
use arrow_array::builder::Float64Builder;
use arrow_schema::DataType;
-use datafusion_common::{
- error::{DataFusionError, Result},
- internal_err,
-};
+use datafusion_common::error::{DataFusionError, Result};
use datafusion_expr::{
scalar_doc_sections::DOC_SECTION_OTHER, ColumnarValue, Documentation,
Volatility,
};
@@ -14,6 +11,7 @@ use geo_traits::{
CoordTrait, Dimensions, GeometryCollectionTrait, GeometryTrait,
LineStringTrait,
MultiLineStringTrait, MultiPointTrait, MultiPolygonTrait, PointTrait,
PolygonTrait,
};
+use sedona_common::sedona_internal_err;
use sedona_expr::scalar_udf::{ArgMatcher, SedonaScalarKernel, SedonaScalarUDF};
use sedona_schema::datatypes::SedonaType;
use wkb::reader::Wkb;
@@ -108,7 +106,7 @@ impl SedonaScalarKernel for STXyzm {
"y" => 1,
"z" => 2,
"m" => 3,
- _ => internal_err!("unexpected dimension")?,
+ _ => sedona_internal_err!("unexpected dimension")?,
};
let executor = WkbExecutor::new(arg_types, args);
@@ -209,7 +207,7 @@ where
}
_ => {}
},
- _ => internal_err!("unexpected dimension index")?,
+ _ => sedona_internal_err!("unexpected dimension index")?,
}
Ok(None)
}
diff --git a/rust/sedona-functions/src/st_xyzm_minmax.rs
b/rust/sedona-functions/src/st_xyzm_minmax.rs
index 9c72581..2c00b6f 100644
--- a/rust/sedona-functions/src/st_xyzm_minmax.rs
+++ b/rust/sedona-functions/src/st_xyzm_minmax.rs
@@ -3,11 +3,12 @@ use std::sync::Arc;
use crate::executor::WkbExecutor;
use arrow_array::builder::Float64Builder;
use arrow_schema::DataType;
-use datafusion_common::{error::Result, internal_err, DataFusionError};
+use datafusion_common::{error::Result, DataFusionError};
use datafusion_expr::{
scalar_doc_sections::DOC_SECTION_OTHER, ColumnarValue, Documentation,
Volatility,
};
use geo_traits::GeometryTrait;
+use sedona_common::sedona_internal_err;
use sedona_expr::scalar_udf::{ArgMatcher, SedonaScalarKernel, SedonaScalarUDF};
use sedona_geometry::{
bounds::{geo_traits_bounds_m, geo_traits_bounds_xy, geo_traits_bounds_z},
@@ -197,7 +198,7 @@ fn invoke_scalar(
.map_err(|e| DataFusionError::Internal(format!("Error updating
bounds: {}", e)))?;
m_bounds
}
- _ => internal_err!("unexpected dim index")?,
+ _ => sedona_internal_err!("unexpected dim index")?,
};
if interval.is_empty() {
diff --git a/rust/sedona-geoparquet/Cargo.toml
b/rust/sedona-geoparquet/Cargo.toml
index 757e229..836a552 100644
--- a/rust/sedona-geoparquet/Cargo.toml
+++ b/rust/sedona-geoparquet/Cargo.toml
@@ -35,6 +35,7 @@ geo-traits = { workspace = true }
futures = { workspace = true }
object_store = { workspace = true }
parquet = { workspace = true }
+sedona-common = { path = "../sedona-common" }
sedona-expr = { path = "../sedona-expr" }
sedona-geometry = { path = "../sedona-geometry" }
sedona-schema = { path = "../sedona-schema" }
diff --git a/rust/sedona-geoparquet/src/format.rs
b/rust/sedona-geoparquet/src/format.rs
index 92b4a1a..e446766 100644
--- a/rust/sedona-geoparquet/src/format.rs
+++ b/rust/sedona-geoparquet/src/format.rs
@@ -16,7 +16,7 @@ use datafusion::{
},
};
use datafusion_catalog::{memory::DataSourceExec, Session};
-use datafusion_common::{internal_err, not_impl_err, plan_err, GetExt, Result,
Statistics};
+use datafusion_common::{not_impl_err, plan_err, GetExt, Result, Statistics};
use datafusion_physical_expr::{LexRequirement, PhysicalExpr};
use datafusion_physical_plan::{
filter_pushdown::FilterPushdownPropagation,
metrics::ExecutionPlanMetricsSet,
@@ -25,6 +25,7 @@ use datafusion_physical_plan::{
use futures::{StreamExt, TryStreamExt};
use object_store::{ObjectMeta, ObjectStore};
+use sedona_common::sedona_internal_err;
use sedona_expr::projection::wrap_physical_expressions;
use sedona_schema::{
@@ -76,7 +77,7 @@ impl FileFormatFactory for GeoParquetFormatFactory {
if let Some(parquet_format) =
inner_format.as_any().downcast_ref::<ParquetFormat>() {
Ok(Arc::new(GeoParquetFormat::new(parquet_format)))
} else {
- internal_err!(
+ sedona_internal_err!(
"Unexpected format from ParquetFormatFactory: {:?}",
inner_format
)
@@ -376,7 +377,7 @@ impl GeoParquetFileSource {
predicate: new_predicate,
})
} else {
- internal_err!("GeoParquetFileSource constructed from
non-ParquetSource")
+ sedona_internal_err!("GeoParquetFileSource constructed from
non-ParquetSource")
}
}
diff --git a/rust/sedona-schema/Cargo.toml b/rust/sedona-schema/Cargo.toml
index 7412266..a3cce1f 100644
--- a/rust/sedona-schema/Cargo.toml
+++ b/rust/sedona-schema/Cargo.toml
@@ -16,4 +16,5 @@ arrow-schema = { workspace = true }
arrow-array = { workspace = true }
datafusion-common = { workspace = true }
datafusion-expr = { workspace = true }
+sedona-common = { path = "../sedona-common" }
serde_json = { workspace = true }
diff --git a/rust/sedona-schema/src/datatypes.rs
b/rust/sedona-schema/src/datatypes.rs
index 6aecd59..73445a2 100644
--- a/rust/sedona-schema/src/datatypes.rs
+++ b/rust/sedona-schema/src/datatypes.rs
@@ -1,8 +1,9 @@
use arrow_array::ArrayRef;
use arrow_schema::{DataType, Field};
use datafusion_common::error::{DataFusionError, Result};
-use datafusion_common::{internal_err, ScalarValue};
+use datafusion_common::ScalarValue;
use datafusion_expr::ColumnarValue;
+use sedona_common::sedona_internal_err;
use serde_json::Value;
use std::fmt::{Debug, Display};
@@ -149,7 +150,7 @@ impl SedonaType {
if extension.extension_name == "geoarrow.wkb" {
sedona_type_wkb(edges, crs, extension.storage_type)
} else {
- internal_err!(
+ sedona_internal_err!(
"Extension type not implemented: <{}>:{}",
extension.extension_name,
extension.storage_type
@@ -289,7 +290,7 @@ fn sedona_type_wkb(edges: Edges, crs: Crs, storage_type:
DataType) -> Result<Sed
match storage_type {
DataType::Binary => Ok(SedonaType::Wkb(edges, crs)),
DataType::BinaryView => Ok(SedonaType::WkbView(edges, crs)),
- _ => internal_err!(
+ _ => sedona_internal_err!(
"Expected Wkb type with Binary storage but got {}",
storage_type
),
@@ -312,7 +313,10 @@ fn deserialize_edges_and_crs(value: &Option<String>) ->
Result<(Edges, Crs)> {
DataFusionError::Internal(format!("Error deserializing
GeoArrow metadata: {err}"))
})?;
if !json_value.is_object() {
- return internal_err!("Expected GeoArrow metadata as JSON
object but got {}", val);
+ return sedona_internal_err!(
+ "Expected GeoArrow metadata as JSON object but got {}",
+ val
+ );
}
let edges = match json_value.get("edges") {
@@ -363,11 +367,11 @@ fn deserialize_edges(edges: &Value) -> Result<Edges> {
} else if edges_str == "spherical" {
Ok(Edges::Spherical)
} else {
- internal_err!("Unsupported edges value {}", edges_str)
+ sedona_internal_err!("Unsupported edges value {}", edges_str)
}
}
None => {
- internal_err!("Unsupported edges JSON type in metadata {}", edges)
+ sedona_internal_err!("Unsupported edges JSON type in metadata {}",
edges)
}
}
}
diff --git a/rust/sedona-schema/src/extension_type.rs
b/rust/sedona-schema/src/extension_type.rs
index ac5d9c1..518aeaa 100644
--- a/rust/sedona-schema/src/extension_type.rs
+++ b/rust/sedona-schema/src/extension_type.rs
@@ -3,9 +3,9 @@ use std::{collections::HashMap, sync::Arc};
use arrow_array::{ArrayRef, StructArray};
use arrow_schema::{DataType, Field, Fields};
use datafusion_common::error::Result;
-use datafusion_common::internal_err;
use datafusion_common::scalar::ScalarValue;
use datafusion_expr::ColumnarValue;
+use sedona_common::sedona_internal_err;
/// Parsed representation of an Arrow extension type
///
@@ -96,7 +96,7 @@ impl ExtensionType {
/// Wrap storage array as a StructArray
pub fn wrap_array(&self, array: ArrayRef) -> Result<ArrayRef> {
if array.data_type() != &self.storage_type {
- return internal_err!(
+ return sedona_internal_err!(
"Type to wrap ({}) does not match storage type ({})",
array.data_type(),
&self.storage_type
diff --git a/rust/sedona-spatial-join/src/optimizer.rs
b/rust/sedona-spatial-join/src/optimizer.rs
index accef5b..ca7d2f9 100644
--- a/rust/sedona-spatial-join/src/optimizer.rs
+++ b/rust/sedona-spatial-join/src/optimizer.rs
@@ -12,7 +12,6 @@ use datafusion::{
};
use datafusion_common::ScalarValue;
use datafusion_common::{
- internal_err,
tree_node::{Transformed, TreeNode},
JoinSide,
};
@@ -24,7 +23,7 @@ use
datafusion_physical_plan::coalesce_partitions::CoalescePartitionsExec;
use datafusion_physical_plan::joins::utils::ColumnIndex;
use datafusion_physical_plan::joins::{HashJoinExec, NestedLoopJoinExec};
use datafusion_physical_plan::{joins::utils::JoinFilter, ExecutionPlan};
-use sedona_common::option::SedonaOptions;
+use sedona_common::{option::SedonaOptions, sedona_internal_err};
/// Physical planner extension for spatial joins
///
@@ -362,7 +361,7 @@ impl SpatialJoinOptimizer {
}
if !found {
- return internal_err!(
+ return sedona_internal_err!(
"Cannot find matching field for '{}' ({:?}) at position {}
in spatial join output. \
Please check column name mappings and schema
compatibility between HashJoinExec and SpatialJoinExec.",
expected_field.name(),
diff --git a/rust/sedona-spatial-join/src/refine/geo.rs
b/rust/sedona-spatial-join/src/refine/geo.rs
index c716edf..a1b8004 100644
--- a/rust/sedona-spatial-join/src/refine/geo.rs
+++ b/rust/sedona-spatial-join/src/refine/geo.rs
@@ -1,8 +1,8 @@
use std::sync::{Arc, OnceLock};
-use datafusion_common::{internal_err, Result};
+use datafusion_common::Result;
use geo_generic_alg::{Contains, Distance, Euclidean, Intersects, Relate,
Within};
-use sedona_common::{ExecutionMode, SpatialJoinOptions};
+use sedona_common::{sedona_internal_err, ExecutionMode, SpatialJoinOptions};
use sedona_expr::statistics::GeoStatistics;
use sedona_geo::to_geo::item_to_geometry;
use wkb::reader::Wkb;
@@ -150,7 +150,7 @@ impl IndexQueryResultRefiner for GeoRefiner {
}
ExecutionMode::PrepareProbe => self.refine_prepare_probe(probe,
index_query_results),
ExecutionMode::Speculative(_) => {
- internal_err!(
+ sedona_internal_err!(
"Speculative execution mode should be translated to other
execution modes"
)
}
diff --git a/rust/sedona-spatial-join/src/refine/geos.rs
b/rust/sedona-spatial-join/src/refine/geos.rs
index 30beb5a..3e6506e 100644
--- a/rust/sedona-spatial-join/src/refine/geos.rs
+++ b/rust/sedona-spatial-join/src/refine/geos.rs
@@ -3,10 +3,10 @@ use std::sync::{
Arc, OnceLock,
};
-use datafusion_common::{internal_err, DataFusionError, Result};
+use datafusion_common::{DataFusionError, Result};
use geos::{Geom, PreparedGeometry};
use parking_lot::Mutex;
-use sedona_common::{ExecutionMode, SpatialJoinOptions};
+use sedona_common::{sedona_internal_err, ExecutionMode, SpatialJoinOptions};
use sedona_expr::statistics::GeoStatistics;
use wkb::reader::{to_geos::GEOSWkbFactory, Wkb};
@@ -316,7 +316,7 @@ impl IndexQueryResultRefiner for GeosRefiner {
ExecutionMode::PrepareBuild => self.refine_prepare_build(probe,
index_query_results),
ExecutionMode::PrepareProbe => self.refine_prepare_probe(probe,
index_query_results),
ExecutionMode::Speculative(_) => {
- internal_err!(
+ sedona_internal_err!(
"Speculative execution mode should be translated to other
execution modes"
)
}
diff --git a/rust/sedona-spatial-join/src/refine/tg.rs
b/rust/sedona-spatial-join/src/refine/tg.rs
index 5b4e6e4..3f218d2 100644
--- a/rust/sedona-spatial-join/src/refine/tg.rs
+++ b/rust/sedona-spatial-join/src/refine/tg.rs
@@ -6,8 +6,8 @@ use std::{
},
};
-use datafusion_common::{internal_err, DataFusionError, Result};
-use sedona_common::{ExecutionMode, SpatialJoinOptions, TgIndexType};
+use datafusion_common::{DataFusionError, Result};
+use sedona_common::{sedona_internal_err, ExecutionMode, SpatialJoinOptions,
TgIndexType};
use sedona_expr::statistics::GeoStatistics;
use sedona_tg::tg::{self, BinaryPredicate};
use wkb::reader::Wkb;
@@ -244,7 +244,7 @@ impl IndexQueryResultRefiner for TgRefiner {
self.refine_not_prepare_build(probe, index_query_results,
self.index_type)
}
ExecutionMode::Speculative(_) => {
- internal_err!(
+ sedona_internal_err!(
"Speculative execution mode should be translated to other
execution modes"
)
}
diff --git a/rust/sedona-spatial-join/src/stream.rs
b/rust/sedona-spatial-join/src/stream.rs
index 52ae4d0..33cbac4 100644
--- a/rust/sedona-spatial-join/src/stream.rs
+++ b/rust/sedona-spatial-join/src/stream.rs
@@ -1,7 +1,7 @@
use arrow::array::BooleanBufferBuilder;
use arrow::compute::interleave_record_batch;
use arrow_array::{UInt32Array, UInt64Array};
-use datafusion_common::{internal_err, JoinSide, Result};
+use datafusion_common::{JoinSide, Result};
use datafusion_expr::JoinType;
use datafusion_physical_plan::joins::utils::StatefulStreamResult;
use datafusion_physical_plan::joins::utils::{ColumnIndex, JoinFilter};
@@ -10,6 +10,7 @@ use datafusion_physical_plan::{handle_state,
RecordBatchStream, SendableRecordBa
use futures::stream::StreamExt;
use futures::{ready, task::Poll};
use parking_lot::Mutex;
+use sedona_common::sedona_internal_err;
use sedona_functions::st_analyze_aggr::AnalyzeAccumulator;
use sedona_schema::datatypes::WKB_GEOMETRY;
use std::collections::HashMap;
@@ -276,7 +277,9 @@ impl SpatialJoinStream {
&mut self,
) -> Poll<Result<StatefulStreamResult<Option<RecordBatch>>>> {
let Some(spatial_index) = self.spatial_index.as_ref() else {
- return Poll::Ready(internal_err!("Expected spatial index to be
available"));
+ return Poll::Ready(sedona_internal_err!(
+ "Expected spatial index to be available"
+ ));
};
let is_last_stream = spatial_index.report_probe_completed();
@@ -339,7 +342,7 @@ impl SpatialJoinStream {
(batch_opt, is_complete)
}
_ => {
- return Poll::Ready(internal_err!(
+ return Poll::Ready(sedona_internal_err!(
"process_unmatched_build_batch called with invalid state"
))
}
@@ -850,7 +853,7 @@ impl UnmatchedBuildBatchIterator {
) -> Result<Self> {
let visited_left_side = spatial_index.visited_left_side();
let Some(vec_visited_left_side) = visited_left_side else {
- return internal_err!("The bitmap for visited left side is not
created");
+ return sedona_internal_err!("The bitmap for visited left side is
not created");
};
let total_batches = {
@@ -877,7 +880,7 @@ impl UnmatchedBuildBatchIterator {
while self.current_batch_idx < self.total_batches && !self.is_complete
{
let visited_left_side = self.spatial_index.visited_left_side();
let Some(vec_visited_left_side) = visited_left_side else {
- return internal_err!("The bitmap for visited left side is not
created");
+ return sedona_internal_err!("The bitmap for visited left side
is not created");
};
let batch = {
diff --git a/rust/sedona-testing/Cargo.toml b/rust/sedona-testing/Cargo.toml
index 6f41276..384d9dc 100644
--- a/rust/sedona-testing/Cargo.toml
+++ b/rust/sedona-testing/Cargo.toml
@@ -30,6 +30,7 @@ geo-traits = { workspace = true }
geo-types = { workspace = true }
parquet = { workspace = true, features = ["arrow", "snap", "zstd"] }
rand = { workspace = true }
+sedona-common = { path = "../sedona-common" }
sedona-geometry = { path = "../sedona-geometry" }
sedona-expr = { path = "../sedona-expr" }
sedona-schema = { path = "../sedona-schema" }
diff --git a/rust/sedona-testing/src/benchmark_util.rs
b/rust/sedona-testing/src/benchmark_util.rs
index cab31df..ec7acc6 100644
--- a/rust/sedona-testing/src/benchmark_util.rs
+++ b/rust/sedona-testing/src/benchmark_util.rs
@@ -3,11 +3,12 @@ use std::{fmt::Debug, sync::Arc, vec};
use arrow_array::{ArrayRef, Float64Array};
use arrow_schema::DataType;
-use datafusion_common::{internal_err, Result, ScalarValue};
+use datafusion_common::{Result, ScalarValue};
use datafusion_expr::{AggregateUDF, ScalarUDF};
use geo_types::Rect;
use rand::{distributions::Uniform, rngs::StdRng, Rng, SeedableRng};
+use sedona_common::sedona_internal_err;
use sedona_geometry::types::GeometryTypeId;
use sedona_schema::datatypes::{SedonaType, WKB_GEOMETRY};
@@ -392,7 +393,10 @@ impl BenchmarkData {
/// Invoke an aggregate function on this data
pub fn invoke_aggregate(&self, udf: &AggregateUDF) -> Result<ScalarValue> {
if !matches!(self.config, BenchmarkArgs::Array(_)) {
- return internal_err!("invoke_aggregate() not implemented for
{:?}", self.config);
+ return sedona_internal_err!(
+ "invoke_aggregate() not implemented for {:?}",
+ self.config
+ );
}
let tester = AggregateUdfTester::new(udf.clone(),
self.config.sedona_types().clone());
diff --git a/rust/sedona-testing/src/data.rs b/rust/sedona-testing/src/data.rs
index 7f2e5a3..39bb2fb 100644
--- a/rust/sedona-testing/src/data.rs
+++ b/rust/sedona-testing/src/data.rs
@@ -1,6 +1,7 @@
use std::{env, fs};
-use datafusion_common::{internal_err, Result};
+use datafusion_common::Result;
+use sedona_common::sedona_internal_err;
/// Find the most likely path to the test GeoParquet file
///
@@ -16,7 +17,7 @@ pub fn test_geoparquet(group: &str, name: &str) ->
Result<String> {
}
}
- internal_err!(
+ sedona_internal_err!(
"geoarrow-data test file '{path}' does not exist.\n{}\n{}",
"You may need to check the value of the SEDONA_GEOARROW_DATA_DIR
environment variable,",
"run submodules/download-assets.py, or check the name of the file you
requested"
@@ -34,7 +35,7 @@ pub fn geoarrow_data_dir() -> Result<String> {
if fs::exists(&from_env)? {
return Ok(from_env);
} else {
- return internal_err!(
+ return sedona_internal_err!(
"{}\n{}{}{}",
"Can't resolve geoarrow-data from the current working
directory because",
"the value of the SEDONA_GEOARROW_DATA_DIR (",
@@ -59,7 +60,7 @@ pub fn geoarrow_data_dir() -> Result<String> {
}
}
- internal_err!(
+ sedona_internal_err!(
"{}\n{}\n{}",
"Can't resolve geoarrow-data from the current working directory",
"You may need to run `git submodule init && git submodule update
--recursive` or",
diff --git a/rust/sedona-testing/src/read.rs b/rust/sedona-testing/src/read.rs
index e3ed9dc..7a462f5 100644
--- a/rust/sedona-testing/src/read.rs
+++ b/rust/sedona-testing/src/read.rs
@@ -1,8 +1,9 @@
use std::fs::File;
use arrow_array::{ArrayRef, RecordBatchReader};
-use datafusion_common::{internal_err, DataFusionError, Result};
+use datafusion_common::{DataFusionError, Result};
use parquet::arrow::arrow_reader::ParquetRecordBatchReader;
+use sedona_common::sedona_internal_err;
use sedona_schema::datatypes::SedonaType;
use crate::data::test_geoparquet;
@@ -59,7 +60,7 @@ pub fn read_geoarrow_data_geometry(
.map_err(|e| DataFusionError::External(Box::new(e)))?;
if reader.schema().fields().is_empty() {
- return internal_err!("Unexpected schema: zero columns");
+ return sedona_internal_err!("Unexpected schema: zero columns");
}
// True for all geoarrow-data files
diff --git a/rust/sedona-testing/src/testers.rs
b/rust/sedona-testing/src/testers.rs
index ed1706b..ec3f19d 100644
--- a/rust/sedona-testing/src/testers.rs
+++ b/rust/sedona-testing/src/testers.rs
@@ -2,12 +2,13 @@ use std::{iter::zip, sync::Arc};
use arrow_array::{ArrayRef, RecordBatch};
use arrow_schema::{DataType, Field, FieldRef, Schema};
-use datafusion_common::{internal_err, Result, ScalarValue};
+use datafusion_common::{Result, ScalarValue};
use datafusion_expr::{
function::{AccumulatorArgs, StateFieldsArgs},
Accumulator, AggregateUDF, ColumnarValue, Expr, Literal,
ScalarFunctionArgs, ScalarUDF,
};
use datafusion_physical_expr::{expressions::Column, PhysicalExpr};
+use sedona_common::sedona_internal_err;
use sedona_schema::datatypes::SedonaType;
use crate::{
@@ -195,7 +196,7 @@ impl ScalarUdfTester {
if let ColumnarValue::Scalar(scalar) = self.invoke(args)? {
Ok(scalar)
} else {
- internal_err!("Expected scalar result from scalar invoke")
+ sedona_internal_err!("Expected scalar result from scalar invoke")
}
}
@@ -218,7 +219,7 @@ impl ScalarUdfTester {
if let ColumnarValue::Scalar(scalar) = self.invoke(args)? {
Ok(scalar)
} else {
- internal_err!("Expected scalar result from binary scalar invoke")
+ sedona_internal_err!("Expected scalar result from binary scalar
invoke")
}
}
@@ -238,7 +239,7 @@ impl ScalarUdfTester {
if let ColumnarValue::Scalar(scalar) = self.invoke(args)? {
Ok(scalar)
} else {
- internal_err!("Expected scalar result from binary scalar invoke")
+ sedona_internal_err!("Expected scalar result from binary scalar
invoke")
}
}
@@ -309,7 +310,7 @@ impl ScalarUdfTester {
if let ColumnarValue::Array(array) = self.invoke(args)? {
Ok(array)
} else {
- internal_err!("Expected array result from scalar/array invoke")
+ sedona_internal_err!("Expected array result from scalar/array
invoke")
}
}
@@ -325,7 +326,7 @@ impl ScalarUdfTester {
if let ColumnarValue::Array(array) = self.invoke(args)? {
Ok(array)
} else {
- internal_err!("Expected array result from array/scalar invoke")
+ sedona_internal_err!("Expected array result from array/scalar
invoke")
}
}
@@ -347,7 +348,7 @@ impl ScalarUdfTester {
if let ColumnarValue::Array(array) = self.invoke(args)? {
Ok(array)
} else {
- internal_err!("Expected array result from array/scalar invoke")
+ sedona_internal_err!("Expected array result from array/scalar
invoke")
}
}
@@ -361,7 +362,7 @@ impl ScalarUdfTester {
if let ColumnarValue::Array(array) = self.invoke(args)? {
Ok(array)
} else {
- internal_err!("Expected array result from array invoke")
+ sedona_internal_err!("Expected array result from array invoke")
}
}
@@ -406,13 +407,13 @@ impl ScalarUdfTester {
} else if scalar.is_null() {
Ok(create_scalar(None, sedona_type))
} else {
- internal_err!("Can't interpret scalar {scalar} as type
{sedona_type}")
+ sedona_internal_err!("Can't interpret scalar {scalar} as
type {sedona_type}")
}
} else {
scalar.cast_to(&sedona_type.data_type())
}
} else {
- internal_err!("Can't use test scalar invoke where .lit() returns
non-literal")
+ sedona_internal_err!("Can't use test scalar invoke where .lit()
returns non-literal")
}
}
diff --git a/rust/sedona/src/ffi.rs b/rust/sedona/src/ffi.rs
index 48dedf3..cd77985 100644
--- a/rust/sedona/src/ffi.rs
+++ b/rust/sedona/src/ffi.rs
@@ -3,7 +3,7 @@ use std::{any::Any, sync::Arc};
use abi_stable::StableAbi;
use arrow_schema::{DataType, Field, FieldRef, Schema};
use datafusion::physical_plan::{expressions::Column, PhysicalExpr};
-use datafusion_common::{internal_err, DataFusionError, Result, ScalarValue};
+use datafusion_common::{DataFusionError, Result, ScalarValue};
use datafusion_expr::{
function::{AccumulatorArgs, StateFieldsArgs},
Accumulator, AggregateUDF, AggregateUDFImpl, ColumnarValue,
ReturnFieldArgs,
@@ -13,6 +13,7 @@ use datafusion_ffi::{
udaf::{FFI_AggregateUDF, ForeignAggregateUDF},
udf::{FFI_ScalarUDF, ForeignScalarUDF},
};
+use sedona_common::sedona_internal_err;
use sedona_schema::datatypes::SedonaType;
use sedona_expr::{
@@ -96,7 +97,7 @@ impl ScalarUDFImpl for ExportedScalarKernel {
}
fn return_type(&self, _arg_types: &[DataType]) -> Result<DataType> {
- internal_err!("should not be called")
+ sedona_internal_err!("should not be called")
}
fn return_field_from_args(&self, args: ReturnFieldArgs) ->
Result<FieldRef> {
diff --git a/rust/sedona/src/record_batch_reader_provider.rs
b/rust/sedona/src/record_batch_reader_provider.rs
index 870ab5c..97d4289 100644
--- a/rust/sedona/src/record_batch_reader_provider.rs
+++ b/rust/sedona/src/record_batch_reader_provider.rs
@@ -16,7 +16,8 @@ use datafusion::{
physical_plan::{DisplayAs, DisplayFormatType, ExecutionPlan,
PlanProperties},
prelude::Expr,
};
-use datafusion_common::{internal_err, DataFusionError};
+use datafusion_common::DataFusionError;
+use sedona_common::sedona_internal_err;
use sedona_expr::projection::wrap_batch;
use sedona_schema::projection::wrap_schema;
@@ -79,7 +80,7 @@ impl TableProvider for RecordBatchReaderProvider {
if let Some(reader) = writable_reader.take() {
Ok(Arc::new(RecordBatchReaderExec::new(reader, limit)))
} else {
- internal_err!("Can't scan RecordBatchReader provider more than
once")
+ sedona_internal_err!("Can't scan RecordBatchReader provider more
than once")
}
}
}
@@ -169,7 +170,7 @@ impl ExecutionPlan for RecordBatchReaderExec {
let reader = if let Some(reader) = writable_reader.take() {
reader
} else {
- return internal_err!("Can't scan RecordBatchReader provider more
than once");
+ return sedona_internal_err!("Can't scan RecordBatchReader provider
more than once");
};
let limit = self.limit;