@@ -10,11 +10,15 @@ use datafusion::{
1010/// Define the interface for retrieve catalog data for pg_catalog tables
1111#[ async_trait]
1212pub trait CatalogInfo : Clone + Send + Sync + Debug + ' static {
13- fn catalog_names ( & self ) -> Vec < String > ;
13+ fn catalog_names ( & self ) -> Result < Vec < String > , DataFusionError > ;
1414
15- fn schema_names ( & self , catalog_name : & str ) -> Option < Vec < String > > ;
15+ fn schema_names ( & self , catalog_name : & str ) -> Result < Option < Vec < String > > , DataFusionError > ;
1616
17- fn table_names ( & self , catalog_name : & str , schema_name : & str ) -> Option < Vec < String > > ;
17+ fn table_names (
18+ & self ,
19+ catalog_name : & str ,
20+ schema_name : & str ,
21+ ) -> Result < Option < Vec < String > > , DataFusionError > ;
1822
1923 async fn table_schema (
2024 & self ,
@@ -33,18 +37,23 @@ pub trait CatalogInfo: Clone + Send + Sync + Debug + 'static {
3337
3438#[ async_trait]
3539impl CatalogInfo for Arc < dyn CatalogProviderList > {
36- fn catalog_names ( & self ) -> Vec < String > {
37- CatalogProviderList :: catalog_names ( self . as_ref ( ) )
40+ fn catalog_names ( & self ) -> Result < Vec < String > , DataFusionError > {
41+ Ok ( CatalogProviderList :: catalog_names ( self . as_ref ( ) ) )
3842 }
3943
40- fn schema_names ( & self , catalog_name : & str ) -> Option < Vec < String > > {
41- self . catalog ( catalog_name) . map ( |c| c. schema_names ( ) )
44+ fn schema_names ( & self , catalog_name : & str ) -> Result < Option < Vec < String > > , DataFusionError > {
45+ Ok ( self . catalog ( catalog_name) . map ( |c| c. schema_names ( ) ) )
4246 }
4347
44- fn table_names ( & self , catalog_name : & str , schema_name : & str ) -> Option < Vec < String > > {
45- self . catalog ( catalog_name)
48+ fn table_names (
49+ & self ,
50+ catalog_name : & str ,
51+ schema_name : & str ,
52+ ) -> Result < Option < Vec < String > > , DataFusionError > {
53+ Ok ( self
54+ . catalog ( catalog_name)
4655 . and_then ( |c| c. schema ( schema_name) )
47- . map ( |s| s. table_names ( ) )
56+ . map ( |s| s. table_names ( ) ) )
4857 }
4958
5059 async fn table_schema (
0 commit comments