westonpace commented on code in PR #13582: URL: https://github.com/apache/datafusion/pull/13582#discussion_r1861142683
########## datafusion/catalog/src/catalog.rs: ########## @@ -102,24 +103,25 @@ use datafusion_common::Result; /// /// [`TableProvider`]: crate::TableProvider +#[async_trait] pub trait CatalogProvider: Debug + Sync + Send { /// Returns the catalog provider as [`Any`] /// so that it can be downcast to a specific implementation. fn as_any(&self) -> &dyn Any; /// Retrieves the list of available schema names in this catalog. - fn schema_names(&self) -> Vec<String>; + async fn schema_names(&self) -> Vec<String>; Review Comment: Ok. How about we retreat to: ``` async fn schema_names(&self) -> Result<Box<dyn Iterator<Item = String>>>; ``` with the rationale that real world implementations should be caching results anyways. Note there is once again an implicit `'_` bound on the result but since we're returning a future and not a stream it's easily removed if needed. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org For additional commands, e-mail: github-h...@datafusion.apache.org