Skip to content

Commit 7344f4e

Browse files
committed
feature: more progress?
1 parent d2efe8c commit 7344f4e

File tree

3 files changed

+16
-6
lines changed

3 files changed

+16
-6
lines changed

Cargo.lock

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+6-4
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,18 @@ path = "src/lib.rs"
2020
aws-config = "1"
2121
aws-sdk-glue = "1"
2222
aws-types = "1"
23+
dashmap = "5"
2324
datafusion = { version = "36", features = ["avro"] }
25+
iceberg-rust = { version = "0.3", optional = true }
2426
object_store = { version = "0.9", features = ["aws"] }
2527
pest = "2"
2628
pest_derive = "2"
29+
serde = { version = "^1.0", optional = true }
30+
serde_derive = { version = "^1.0", optional = true }
31+
serde_json = { version = "^1.0", optional = true }
2732
tokio = { version = "1", features = ["macros", "rt", "rt-multi-thread", "sync", "fs"] }
2833
url = "2"
29-
dashmap = "5"
30-
iceberg-rust = { version = "0.3", optional = true }
31-
serde_json = { version = "1.0.116", optional = true }
3234

3335
[features]
3436
default = ["iceberg"]
35-
iceberg = ["iceberg-rust", "serde_json"]
37+
iceberg = ["iceberg-rust", "serde", "serde_derive", "serde_json"]

src/catalog_provider/glue.rs

+8-2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ use datafusion::datasource::object_store::ObjectStoreRegistry;
2727
use iceberg_rust::catalog::Catalog;
2828
use iceberg_rust::error::Error::TableMetadataBuilder;
2929
use iceberg_rust::spec::table_metadata::TableMetadata;
30+
use iceberg_rust::spec::tabular::TabularMetadata;
3031
use iceberg_rust::table::table_builder::TableBuilder;
3132
use iceberg_rust::util;
3233
use iceberg_rust::util::strip_prefix;
@@ -258,12 +259,17 @@ impl GlueCatalogProvider {
258259

259260
let metadata_location = table_parameters.get("metadata_location").ok_or(GlueError::AWS(format!("Did not find metadata_location property in glue catalog")))?;
260261
let path = Path::parse(&strip_prefix(metadata_location)).map_err(|_| GlueError::Other(format!("Failed to parse {} as path", metadata_location)))?;
261-
let metadata: TableMetadata = serde_json::from_slice(&object_store.get(&path)
262+
263+
let bytes = object_store.get(&path)
262264
.await.map_err(|e| GlueError::Other(format!("Failed to fetch {e:?} at {path}")))?
263265
.bytes()
264-
.await.map_err(|e|GlueError::Other(format!("Failed to get bytes from {e:?} at {path}")))?)
266+
.await.map_err(|e|GlueError::Other(format!("Failed to get bytes from {e:?} at {path}")))?;
267+
//println!("bytes are as following: {bytes:?}");
268+
269+
let metadata: TableMetadata = serde_json::from_slice(&bytes)
265270
.map_err(|e|GlueError::Other(format!("Failed to read metadata from {e:?} at {path}")))?;
266271

272+
267273
println!("metadata: {metadata:?}");
268274

269275

0 commit comments

Comments
 (0)