Skip to content

Commit 11ef663

Browse files
authored
Merge pull request JanKaul#151 from JanKaul/refactor/remove-objectstore-from-view
remove object_store from view
2 parents cde5cf1 + 0753844 commit 11ef663

8 files changed

Lines changed: 38 additions & 238 deletions

File tree

catalogs/iceberg-file-catalog/src/lib.rs

Lines changed: 6 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -180,22 +180,10 @@ impl Catalog for FileCatalog {
180180
.await?,
181181
)),
182182
TabularMetadata::View(metadata) => Ok(Tabular::View(
183-
View::new(
184-
identifier.clone(),
185-
self.clone(),
186-
object_store.clone(),
187-
metadata,
188-
)
189-
.await?,
183+
View::new(identifier.clone(), self.clone(), metadata).await?,
190184
)),
191185
TabularMetadata::MaterializedView(metadata) => Ok(Tabular::MaterializedView(
192-
MaterializedView::new(
193-
identifier.clone(),
194-
self.clone(),
195-
object_store.clone(),
196-
metadata,
197-
)
198-
.await?,
186+
MaterializedView::new(identifier.clone(), self.clone(), metadata).await?,
199187
)),
200188
}
201189
}
@@ -274,13 +262,7 @@ impl Catalog for FileCatalog {
274262
identifier.clone(),
275263
(metadata_location.clone(), metadata.clone().into()),
276264
);
277-
Ok(View::new(
278-
identifier.clone(),
279-
self.clone(),
280-
object_store.clone(),
281-
metadata,
282-
)
283-
.await?)
265+
Ok(View::new(identifier.clone(), self.clone(), metadata).await?)
284266
}
285267

286268
async fn create_materialized_view(
@@ -331,13 +313,7 @@ impl Catalog for FileCatalog {
331313
(metadata_location.clone(), metadata.clone().into()),
332314
);
333315

334-
Ok(MaterializedView::new(
335-
identifier.clone(),
336-
self.clone(),
337-
object_store.clone(),
338-
metadata,
339-
)
340-
.await?)
316+
Ok(MaterializedView::new(identifier.clone(), self.clone(), metadata).await?)
341317
}
342318

343319
async fn update_table(self: Arc<Self>, commit: CommitTable) -> Result<Table, IcebergError> {
@@ -456,13 +432,7 @@ impl Catalog for FileCatalog {
456432
(metadata_location.clone(), metadata.clone()),
457433
);
458434
if let TabularMetadata::View(metadata) = metadata {
459-
Ok(View::new(
460-
identifier.clone(),
461-
self.clone(),
462-
object_store.clone(),
463-
metadata,
464-
)
465-
.await?)
435+
Ok(View::new(identifier.clone(), self.clone(), metadata).await?)
466436
} else {
467437
Err(IcebergError::InvalidFormat(
468438
"Entity is not a view".to_owned(),
@@ -523,13 +493,7 @@ impl Catalog for FileCatalog {
523493
(metadata_location.clone(), metadata.clone()),
524494
);
525495
if let TabularMetadata::MaterializedView(metadata) = metadata {
526-
Ok(MaterializedView::new(
527-
identifier.clone(),
528-
self.clone(),
529-
object_store.clone(),
530-
metadata,
531-
)
532-
.await?)
496+
Ok(MaterializedView::new(identifier.clone(), self.clone(), metadata).await?)
533497
} else {
534498
Err(IcebergError::InvalidFormat(
535499
"Entity is not a materialized view".to_owned(),

catalogs/iceberg-glue-catalog/src/lib.rs

Lines changed: 6 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -285,22 +285,10 @@ impl Catalog for GlueCatalog {
285285
.await?,
286286
)),
287287
TabularMetadata::View(metadata) => Ok(Tabular::View(
288-
View::new(
289-
identifier.clone(),
290-
self.clone(),
291-
object_store.clone(),
292-
metadata,
293-
)
294-
.await?,
288+
View::new(identifier.clone(), self.clone(), metadata).await?,
295289
)),
296290
TabularMetadata::MaterializedView(metadata) => Ok(Tabular::MaterializedView(
297-
MaterializedView::new(
298-
identifier.clone(),
299-
self.clone(),
300-
object_store.clone(),
301-
metadata,
302-
)
303-
.await?,
291+
MaterializedView::new(identifier.clone(), self.clone(), metadata).await?,
304292
)),
305293
}
306294
}
@@ -448,13 +436,7 @@ impl Catalog for GlueCatalog {
448436
metadata.clone().into(),
449437
),
450438
);
451-
Ok(View::new(
452-
identifier.clone(),
453-
self.clone(),
454-
object_store.clone(),
455-
metadata,
456-
)
457-
.await?)
439+
Ok(View::new(identifier.clone(), self.clone(), metadata).await?)
458440
}
459441

460442
async fn create_materialized_view(
@@ -557,13 +539,7 @@ impl Catalog for GlueCatalog {
557539
metadata.clone().into(),
558540
),
559541
);
560-
Ok(MaterializedView::new(
561-
identifier.clone(),
562-
self.clone(),
563-
object_store.clone(),
564-
metadata,
565-
)
566-
.await?)
542+
Ok(MaterializedView::new(identifier.clone(), self.clone(), metadata).await?)
567543
}
568544

569545
async fn update_table(self: Arc<Self>, commit: CommitTable) -> Result<Table, IcebergError> {
@@ -783,13 +759,7 @@ impl Catalog for GlueCatalog {
783759
.insert(identifier.clone(), (version_id, metadata.clone()));
784760

785761
if let TabularMetadata::View(metadata) = metadata {
786-
Ok(View::new(
787-
identifier.clone(),
788-
self.clone(),
789-
object_store.clone(),
790-
metadata,
791-
)
792-
.await?)
762+
Ok(View::new(identifier.clone(), self.clone(), metadata).await?)
793763
} else {
794764
Err(IcebergError::InvalidFormat(
795765
"Entity is not a view".to_owned(),
@@ -897,13 +867,7 @@ impl Catalog for GlueCatalog {
897867
.unwrap()
898868
.insert(identifier.clone(), (version_id, metadata.clone()));
899869
if let TabularMetadata::MaterializedView(metadata) = metadata {
900-
Ok(MaterializedView::new(
901-
identifier.clone(),
902-
self.clone(),
903-
object_store.clone(),
904-
metadata,
905-
)
906-
.await?)
870+
Ok(MaterializedView::new(identifier.clone(), self.clone(), metadata).await?)
907871
} else {
908872
Err(IcebergError::InvalidFormat(
909873
"Entity is not a materialized view".to_owned(),

catalogs/iceberg-rest-catalog/src/catalog.rs

Lines changed: 10 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -268,23 +268,12 @@ impl Catalog for RestCatalog {
268268
.await
269269
.map(|x| x.metadata);
270270
match tabular_metadata {
271-
Ok(TabularMetadata::View(view)) => {
272-
let object_store = self
273-
.object_store_builder
274-
.build(Bucket::from_path(&view.location)?)?;
275-
Ok(Tabular::View(
276-
View::new(identifier.clone(), self.clone(), object_store, view).await?,
277-
))
278-
}
279-
Ok(TabularMetadata::MaterializedView(matview)) => {
280-
let object_store = self
281-
.object_store_builder
282-
.build(Bucket::from_path(&matview.location)?)?;
283-
Ok(Tabular::MaterializedView(
284-
MaterializedView::new(identifier.clone(), self.clone(), object_store, matview)
285-
.await?,
286-
))
287-
}
271+
Ok(TabularMetadata::View(view)) => Ok(Tabular::View(
272+
View::new(identifier.clone(), self.clone(), view).await?,
273+
)),
274+
Ok(TabularMetadata::MaterializedView(matview)) => Ok(Tabular::MaterializedView(
275+
MaterializedView::new(identifier.clone(), self.clone(), matview).await?,
276+
)),
288277
Err(apis::Error::ResponseError(content)) => {
289278
if content.status == 404 {
290279
let table_metadata = catalog_api_api::load_table(
@@ -387,11 +376,7 @@ impl Catalog for RestCatalog {
387376
let clone = self.clone();
388377
async move {
389378
if let TabularMetadata::View(metadata) = response.metadata {
390-
let object_store = clone
391-
.object_store_builder
392-
.build(Bucket::from_path(&metadata.location)?)?;
393-
394-
View::new(identifier.clone(), clone, object_store, metadata).await
379+
View::new(identifier.clone(), clone, metadata).await
395380
} else {
396381
Err(Error::InvalidFormat(
397382
"Create view didn't return view metadata.".to_owned(),
@@ -416,10 +401,7 @@ impl Catalog for RestCatalog {
416401
let identifier = identifier.clone();
417402
async move {
418403
if let TabularMetadata::View(metadata) = response.metadata {
419-
let object_store = clone
420-
.object_store_builder
421-
.build(Bucket::from_path(&metadata.location)?)?;
422-
View::new(identifier.clone(), clone, object_store, metadata).await
404+
View::new(identifier.clone(), clone, metadata).await
423405
} else {
424406
Err(Error::InvalidFormat(
425407
"Create view didn't return view metadata.".to_owned(),
@@ -456,10 +438,7 @@ impl Catalog for RestCatalog {
456438
let clone = self.clone();
457439
async move {
458440
if let TabularMetadata::MaterializedView(metadata) = response.metadata {
459-
let object_store = clone
460-
.object_store_builder
461-
.build(Bucket::from_path(&metadata.location)?)?;
462-
MaterializedView::new(identifier.clone(), clone, object_store, metadata).await
441+
MaterializedView::new(identifier.clone(), clone, metadata).await
463442
} else {
464443
Err(Error::InvalidFormat(
465444
"Create materialzied view didn't return materialized view metadata."
@@ -488,10 +467,7 @@ impl Catalog for RestCatalog {
488467
let identifier = identifier.clone();
489468
async move {
490469
if let TabularMetadata::MaterializedView(metadata) = response.metadata {
491-
let object_store = clone
492-
.object_store_builder
493-
.build(Bucket::from_path(&metadata.location)?)?;
494-
MaterializedView::new(identifier.clone(), clone, object_store, metadata).await
470+
MaterializedView::new(identifier.clone(), clone, metadata).await
495471
} else {
496472
Err(Error::InvalidFormat(
497473
"Create materialzied view didn't return materialized view metadata."

catalogs/iceberg-s3tables-catalog/src/lib.rs

Lines changed: 6 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -271,22 +271,10 @@ impl Catalog for S3TablesCatalog {
271271
.await?,
272272
)),
273273
TabularMetadata::View(metadata) => Ok(Tabular::View(
274-
View::new(
275-
identifier.clone(),
276-
self.clone(),
277-
object_store.clone(),
278-
metadata,
279-
)
280-
.await?,
274+
View::new(identifier.clone(), self.clone(), metadata).await?,
281275
)),
282276
TabularMetadata::MaterializedView(metadata) => Ok(Tabular::MaterializedView(
283-
MaterializedView::new(
284-
identifier.clone(),
285-
self.clone(),
286-
object_store.clone(),
287-
metadata,
288-
)
289-
.await?,
277+
MaterializedView::new(identifier.clone(), self.clone(), metadata).await?,
290278
)),
291279
}
292280
}
@@ -417,13 +405,7 @@ impl Catalog for S3TablesCatalog {
417405
identifier.clone(),
418406
(table.version_token, metadata.clone().into()),
419407
);
420-
Ok(View::new(
421-
identifier.clone(),
422-
self.clone(),
423-
object_store.clone(),
424-
metadata,
425-
)
426-
.await?)
408+
Ok(View::new(identifier.clone(), self.clone(), metadata).await?)
427409
}
428410

429411
async fn create_materialized_view(
@@ -542,13 +524,7 @@ impl Catalog for S3TablesCatalog {
542524
identifier.clone(),
543525
(view.version_token, metadata.clone().into()),
544526
);
545-
Ok(MaterializedView::new(
546-
identifier.clone(),
547-
self.clone(),
548-
object_store.clone(),
549-
metadata,
550-
)
551-
.await?)
527+
Ok(MaterializedView::new(identifier.clone(), self.clone(), metadata).await?)
552528
}
553529

554530
async fn update_table(self: Arc<Self>, commit: CommitTable) -> Result<Table, IcebergError> {
@@ -702,13 +678,7 @@ impl Catalog for S3TablesCatalog {
702678
.insert(identifier.clone(), (version_token, metadata.clone()));
703679

704680
if let TabularMetadata::View(metadata) = metadata {
705-
Ok(View::new(
706-
identifier.clone(),
707-
self.clone(),
708-
object_store.clone(),
709-
metadata,
710-
)
711-
.await?)
681+
Ok(View::new(identifier.clone(), self.clone(), metadata).await?)
712682
} else {
713683
Err(IcebergError::InvalidFormat(
714684
"Entity is not a view".to_owned(),
@@ -785,13 +755,7 @@ impl Catalog for S3TablesCatalog {
785755
.unwrap()
786756
.insert(identifier.clone(), (version_token, metadata.clone()));
787757
if let TabularMetadata::MaterializedView(metadata) = metadata {
788-
Ok(MaterializedView::new(
789-
identifier.clone(),
790-
self.clone(),
791-
object_store.clone(),
792-
metadata,
793-
)
794-
.await?)
758+
Ok(MaterializedView::new(identifier.clone(), self.clone(), metadata).await?)
795759
} else {
796760
Err(IcebergError::InvalidFormat(
797761
"Entity is not a materialized view".to_owned(),

0 commit comments

Comments
 (0)