mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-20 19:42:17 +00:00
fix(s3select): enforce query and resource limits (#5028)
* fix(s3select): enforce query and resource limits * fix(s3select): close query resource limit gaps * fix(s3select): preserve timeout and stream invariants * fix(s3select): enforce staged query limits * fix(s3select): preserve policy error compatibility * fix(s3select): bound error source traversal
This commit is contained in:
@@ -19,7 +19,7 @@ use datafusion::arrow::datatypes::DataType;
|
||||
use datafusion::common::{Result as DFResult, TableReference};
|
||||
use datafusion::datasource::TableProvider;
|
||||
use datafusion::logical_expr::var_provider::is_system_variables;
|
||||
use datafusion::logical_expr::{AggregateUDF, HigherOrderUDF, ScalarUDF, TableSource, WindowUDF};
|
||||
use datafusion::logical_expr::{AggregateUDF, HigherOrderUDF, ScalarUDF, TableSource, WindowUDF, planner::ExprPlanner};
|
||||
use datafusion::variable::VarType;
|
||||
use datafusion::{config::ConfigOptions, sql::planner::ContextProvider};
|
||||
use rustfs_s3select_api::query::{function::FuncMetaManagerRef, session::SessionCtx};
|
||||
@@ -81,6 +81,10 @@ impl ContextProviderExtension for MetadataProvider {
|
||||
}
|
||||
|
||||
impl ContextProvider for MetadataProvider {
|
||||
fn get_expr_planners(&self) -> &[Arc<dyn ExprPlanner>] {
|
||||
self.session.inner().expr_planners()
|
||||
}
|
||||
|
||||
fn get_function_meta(&self, name: &str) -> Option<Arc<ScalarUDF>> {
|
||||
self.func_manager
|
||||
.udf(name)
|
||||
|
||||
Reference in New Issue
Block a user