diff --git a/datafusion-cli/src/exec.rs b/datafusion-cli/src/exec.rs index 8c4161e48d07..467c1452fece 100644 --- a/datafusion-cli/src/exec.rs +++ b/datafusion-cli/src/exec.rs @@ -91,6 +91,14 @@ pub async fn exec_from_repl( ctx: &mut SessionContext, print_options: &mut PrintOptions, ) -> std::result::Result<(), ()> { + loop { + print!("> :"); + let mut query = String::new(); + std::io::stdin().read_line(&mut query).unwrap(); + println!("echo: {query}"); + exec_and_print(ctx, print_options, query).await; + } + Ok(()) } diff --git a/datafusion-cli/src/main.rs b/datafusion-cli/src/main.rs index 8ae172f89d9b..a91f05365e45 100644 --- a/datafusion-cli/src/main.rs +++ b/datafusion-cli/src/main.rs @@ -92,10 +92,10 @@ pub async fn main() -> Result<()> { println!("DataFusion CLI v{}", DATAFUSION_CLI_VERSION); } - if let Some(ref path) = args.data_path { - let p = Path::new(path); - env::set_current_dir(p).unwrap(); - }; + // if let Some(ref path) = args.data_path { + // let p = Path::new(path); + // env::set_current_dir(p).unwrap(); + // }; let mut session_config = SessionConfig::from_env()?.with_information_schema(true); @@ -118,6 +118,12 @@ pub async fn main() -> Result<()> { quiet: args.quiet, }; + println!("starting!"); + + exec::exec_from_repl(&mut ctx, &mut print_options) + .await + .unwrap(); + let files = args.file; let rc = match args.rc { Some(file) => file, @@ -151,11 +157,12 @@ pub async fn main() -> Result<()> { } fn create_runtime_env() -> Result { - let object_store_provider = DatafusionCliObjectStoreProvider {}; - let object_store_registry = - ObjectStoreRegistry::new_with_provider(Some(Arc::new(object_store_provider))); - let rn_config = - RuntimeConfig::new().with_object_store_registry(Arc::new(object_store_registry)); + // let object_store_provider = DatafusionCliObjectStoreProvider {}; + // let object_store_registry = + // ObjectStoreRegistry::new_with_provider(Some(Arc::new(object_store_provider))); + // let rn_config = + // RuntimeConfig::new().with_object_store_registry(Arc::new(object_store_registry)); + let rn_config = RuntimeConfig::default(); RuntimeEnv::new(rn_config) } diff --git a/datafusion/core/src/datasource/object_store.rs b/datafusion/core/src/datasource/object_store.rs index b315eae27aaa..483909ec3bee 100644 --- a/datafusion/core/src/datasource/object_store.rs +++ b/datafusion/core/src/datasource/object_store.rs @@ -163,13 +163,13 @@ impl ObjectStoreRegistry { /// may be explicity registered with calls to [`ObjectStoreRegistry::register_store`] or /// created lazily, on-demand by the provided [`ObjectStoreProvider`] pub fn new_with_provider(provider: Option>) -> Self { - // let object_stores: DashMap> = DashMap::new(); + let object_stores: DashMap> = DashMap::new(); // object_stores.insert("file://".to_string(), Arc::new(LocalFileSystem::new())); - // Self { - // object_stores, - // provider, - // } - todo!() + Self { + object_stores, + provider, + } + // todo!() } /// Adds a new store to this registry.