File tree Expand file tree Collapse file tree
catalogs/iceberg-glue-catalog/src Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -20,7 +20,7 @@ use iceberg_rust::{
2020 identifier:: Identifier ,
2121 namespace:: Namespace ,
2222 tabular:: Tabular ,
23- Catalog ,
23+ Catalog , CatalogList ,
2424 } ,
2525 error:: Error as IcebergError ,
2626 materialized_view:: MaterializedView ,
@@ -948,6 +948,40 @@ impl Catalog for GlueCatalog {
948948 }
949949}
950950
951+ #[ derive( Debug , Clone ) ]
952+ pub struct GlueCatalogList {
953+ name : String ,
954+ config : SdkConfig ,
955+ object_store_builder : ObjectStoreBuilder ,
956+ }
957+
958+ impl GlueCatalogList {
959+ pub fn new ( name : & str , config : & SdkConfig , object_store_builder : ObjectStoreBuilder ) -> Self {
960+ Self {
961+ name : name. to_owned ( ) ,
962+ config : config. to_owned ( ) ,
963+ object_store_builder,
964+ }
965+ }
966+ }
967+
968+ #[ async_trait]
969+ impl CatalogList for GlueCatalogList {
970+ fn catalog ( & self , name : & str ) -> Option < Arc < dyn Catalog > > {
971+ if self . name == name {
972+ Some ( Arc :: new (
973+ GlueCatalog :: new ( & self . config , & self . name , self . object_store_builder . clone ( ) )
974+ . unwrap ( ) ,
975+ ) )
976+ } else {
977+ None
978+ }
979+ }
980+ async fn list_catalogs ( & self ) -> Vec < String > {
981+ vec ! [ self . name. clone( ) ]
982+ }
983+ }
984+
951985#[ cfg( test) ]
952986pub mod tests {
953987 use aws_config:: { BehaviorVersion , Region } ;
You can’t perform that action at this time.
0 commit comments