Skip to content

Commit b991617

Browse files
committed
Check types on schema provider to return
1 parent deb936f commit b991617

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/catalog.rs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -447,9 +447,19 @@ impl RustWrappedPyCatalogProvider {
447447

448448
Ok(Some(Arc::new(provider) as Arc<dyn SchemaProvider>))
449449
} else {
450-
let py_schema = RustWrappedPySchemaProvider::new(py_schema.into());
450+
if let Ok(inner_schema) = py_schema.getattr("schema") {
451+
if let Ok(inner_schema) = inner_schema.extract::<PySchema>() {
452+
return Ok(Some(inner_schema.schema));
453+
}
454+
}
455+
match py_schema.extract::<PySchema>() {
456+
Ok(inner_schema) => Ok(Some(inner_schema.schema)),
457+
Err(_) => {
458+
let py_schema = RustWrappedPySchemaProvider::new(py_schema.into());
451459

452-
Ok(Some(Arc::new(py_schema) as Arc<dyn SchemaProvider>))
460+
Ok(Some(Arc::new(py_schema) as Arc<dyn SchemaProvider>))
461+
}
462+
}
453463
}
454464
})
455465
}

0 commit comments

Comments
 (0)