#[cfg(not(feature = "cugraph"))]
use super::CugraphAlgorithm;
use crate::error::{Error, ErrorCode};
#[cfg(not(feature = "cugraph"))]
use crate::gpu_functions::REQUIRED_FEATURE_DISABLED;
#[cfg(not(feature = "cugraph"))]
pub(super) fn feature_disabled(algorithm: CugraphAlgorithm) -> Error {
Error::new(
ErrorCode::UnsupportedOperator,
"algeon_datafusion.cugraph_sql.execute",
"cuGraph SQL execution requires the cugraph Cargo feature",
)
.with_log_safe_fact("cugraph_operation", algorithm.function_name())
.with_log_safe_fact("reason", REQUIRED_FEATURE_DISABLED)
.with_log_safe_fact("required_feature", "cugraph")
.with_log_safe_fact("host_fallback", "disabled")
}
pub(super) fn plan(message: impl Into<String>) -> Error {
Error::new(ErrorCode::InvalidExecutionPlan, "algeon_datafusion.cugraph_sql.plan", message)
}
pub(super) fn invalid_option(message: impl Into<String>) -> Error {
option_error("missing_or_invalid_option", message)
}
pub(super) fn unknown_option(message: impl Into<String>) -> Error {
option_error("unknown_option", message)
}
fn option_error(reason: &'static str, message: impl Into<String>) -> Error {
Error::new(ErrorCode::InvalidRequest, "algeon_datafusion.cugraph_sql.option", message)
.with_log_safe_fact("reason", reason)
}
pub(super) fn unsupported_option(message: impl Into<String>) -> Error {
Error::new(ErrorCode::UnsupportedOperator, "algeon_datafusion.cugraph_sql.option", message)
.with_fact("reason", "unsupported_option")
}