risingwavelabs/risingwave · error
not yet implemented
Error message
not yet implemented
What it means
MockCatalog's CatalogV2::list_namespaces is a test stub implemented with todo!(); calling it always panics with 'not yet implemented'. It exists only so test code can construct the trait object; namespace listing is intentionally unimplemented in the mock. Any test path that reaches it is using the wrong mock method or needs the stub fleshed out.
Solutions
- Do not call namespace-listing APIs on MockCatalog; back the test with a real catalog implementation if listing is exercised
- Extend MockCatalog to return a canned Vec<NamespaceIdent> for tests
- Ensure production code paths use a real catalog, not the mock
Example fix
// before let namespaces = catalog.list_namespaces(None).await?; // after (in test setup with MockCatalog) // assert only table-level APIs, or use a real catalog for namespace tests
Defensive patterns
Strategy: fallback
Validate before calling
// Do not exercise namespace listing against MockCatalog in tests
fn mock_supports_namespace_listing() -> bool { false } Type guard
fn is_mock_catalog(c: &dyn Any) -> bool { c.is::<MockCatalog>() } Try / catch
// list_namespaces panics (todo!()); guard BEFORE calling
if is_mock_catalog(&catalog) {
return Ok(vec![]); // or skip the test section
}
let namespaces = catalog.list_namespaces(parent).await?; Prevention
- Keep MockCatalog tests to table-level APIs only
- Back namespace-listing tests with a real catalog
- Extend MockCatalog with canned namespace data if needed
When it happens
Trigger: Calling list_namespaces on the MockCatalog — e.g. a test or tooling path that enumerates namespaces of an Iceberg catalog wired to MockCatalog.
Common situations: Unit tests exercising generic CatalogV2 namespace APIs against the mock; accidentally shipping test/mock configuration into a code path that lists namespaces.
Related errors
- register_table is not supported by JniCatalog
- `catalog.type` must be set
- commit iceberg pk-index sink transaction
- commit iceberg transaction
- create iceberg catalog for pk-index sink
AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11).
Data as JSON: /api/errors/7805263ac5b27781.
Report an issue: GitHub.
Appendix: source
Thrown at src/connector/src/connector_common/iceberg/mock_catalog.rs:169
field_id: Some(8),
name: "f4".to_owned(),
transform: Transform::Hour,
},
])
.unwrap()
.build(),
)
}
}
#[async_trait]
impl CatalogV2 for MockCatalog {
/// List namespaces from table.
async fn list_namespaces(
&self,
_parent: Option<&NamespaceIdent>,
) -> iceberg::Result<Vec<NamespaceIdent>> {
todo!()
}
/// Create a new namespace inside the catalog.
async fn create_namespace(
&self,
_namespace: &iceberg::NamespaceIdent,
_properties: HashMap<String, String>,
) -> iceberg::Result<iceberg::Namespace> {
todo!()
}
/// Get a namespace information from the catalog.
async fn get_namespace(&self, _namespace: &NamespaceIdent) -> iceberg::Result<Namespace> {
todo!()
}
/// Check if namespace exists in catalog.
async fn namespace_exists(&self, _namespace: &NamespaceIdent) -> iceberg::Result<bool> {View on GitHub (pinned to 6469eb736d)