// Copyright 2024 RustFS Team // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. use s3s::dto::SelectObjectContentInput; use std::sync::Arc; pub mod analyzer; pub mod ast; pub mod dispatcher; pub mod execution; pub mod function; pub mod logical_planner; pub mod optimizer; pub mod parser; pub mod physical_planner; pub mod scheduler; pub mod session; #[derive(Clone)] pub struct Context { // maybe we need transfer some info? pub input: Arc, } #[derive(Clone)] pub struct Query { context: Context, content: String, } impl Query { #[inline(always)] pub fn new(context: Context, content: String) -> Self { Self { context, content } } pub fn context(&self) -> &Context { &self.context } pub fn content(&self) -> &str { self.content.as_str() } }