Skip to content

Commit 24d0b90

Browse files
resolve PR comments
Signed-off-by: luofucong <[email protected]>
1 parent 6d79b9c commit 24d0b90

File tree

2 files changed

+16
-11
lines changed

2 files changed

+16
-11
lines changed

src/common/function/src/function.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,3 +139,17 @@ pub trait Function: fmt::Display + Sync + Send {
139139
}
140140

141141
pub type FunctionRef = Arc<dyn Function>;
142+
143+
/// Find the [FunctionContext] in the [ScalarFunctionArgs]. The [FunctionContext] was set
144+
/// previously in the DataFusion session context creation, and is passed all the way down to the
145+
/// args by DataFusion.
146+
pub(crate) fn find_function_context(
147+
args: &ScalarFunctionArgs,
148+
) -> datafusion_common::Result<&FunctionContext> {
149+
let Some(x) = args.config_options.extensions.get::<FunctionContext>() else {
150+
return Err(DataFusionError::Execution(
151+
"function context is not set".to_string(),
152+
));
153+
};
154+
Ok(x)
155+
}

src/common/function/src/system/database.rs

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ use std::fmt::{self};
1616

1717
use common_query::error::Result;
1818
use datafusion::arrow::datatypes::DataType;
19-
use datafusion_common::{DataFusionError, ScalarValue};
19+
use datafusion_common::ScalarValue;
2020
use datafusion_expr::{ColumnarValue, ScalarFunctionArgs, Signature, Volatility};
2121
use derive_more::Display;
2222

23-
use crate::function::{Function, FunctionContext};
23+
use crate::function::{Function, FunctionContext, find_function_context};
2424

2525
/// A function to return current schema name.
2626
#[derive(Clone, Debug, Default)]
@@ -197,15 +197,6 @@ impl Function for ConnectionIdFunction {
197197
}
198198
}
199199

200-
fn find_function_context(args: &ScalarFunctionArgs) -> datafusion_common::Result<&FunctionContext> {
201-
let Some(x) = args.config_options.extensions.get::<FunctionContext>() else {
202-
return Err(DataFusionError::Execution(
203-
"function context is not set".to_string(),
204-
));
205-
};
206-
Ok(x)
207-
}
208-
209200
impl fmt::Display for DatabaseFunction {
210201
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
211202
write!(f, "DATABASE")

0 commit comments

Comments
 (0)