{"record":{"id":"30d7a1d3f6ac9c9e","repo":"dbt-labs/dbt-core","slug":"list-relations-schemas-by-patterns-for-bigquery","errorCode":null,"errorMessage":"list_relations_schemas_by_patterns for BigQuery","messagePattern":"list_relations_schemas_by_patterns for BigQuery","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/dbt-adapter/src/metadata/bigquery/mod.rs","lineNumber":1376,"sourceCode":"            }\n        };\n        let reduce_f = |acc: &mut Acc,\n                        relation: Arc<dyn BaseRelation>,\n                        schema: AdapterResult<Arc<Schema>>|\n         -> Result<(), Cancellable<AdapterError>> {\n            acc.insert(relation.semantic_fqn(), schema);\n            Ok(())\n        };\n        let map_reduce = MapReduce::new(factory, Box::new(map_f), Box::new(reduce_f), node_id);\n        map_reduce.run(Arc::new(relations.to_vec()), token)\n    }\n\n    fn list_relations_schemas_by_patterns_inner(\n        &self,\n        _patterns: &[RelationPattern],\n        _token: CancellationToken,\n    ) -> AsyncAdapterResult<'_, Vec<(String, AdapterResult<RelationSchemaPair>)>> {\n        todo!(\"list_relations_schemas_by_patterns for BigQuery\")\n    }\n\n    fn freshness_inner(\n        &self,\n        relations: &[Arc<dyn BaseRelation>],\n        token: CancellationToken,\n    ) -> AsyncAdapterResult<'_, BTreeMap<String, MetadataFreshness>> {\n        let tasks = match bulk_freshness_tasks_from_relations(relations) {\n            Ok(tasks) => tasks,\n            Err(e) => {\n                let future = async move { Err(Cancellable::Error(e)) };\n                return Box::pin(future);\n            }\n        };\n        self.freshness_mapreduce(tasks, token)\n    }\n\n    /// Honors per-source `loaded_at_field` / `loaded_at_query` config. Mirrors the","sourceCodeStart":1358,"sourceCodeEnd":1394,"githubUrl":"https://github.com/dbt-labs/dbt-core/blob/0267ce9170576975b76b64ce856b2e5848e96617/crates/dbt-adapter/src/metadata/bigquery/mod.rs#L1358-L1394","documentation":"BigQuery's `list_relations_schemas_by_patterns_inner` is a `todo!()` stub in the metadata listing trait implementation. Invoking the pattern-based relation/schema listing API against BigQuery panics with 'not yet implemented'. The trait method is required but BigQuery support has not been written yet.","triggerScenarios":"Calling the metadata listing entry point (`list_relations_schemas_by_patterns`) with the BigQuery adapter, which dispatches into this unimplemented inner method.","commonSituations":"A BigQuery-configured project performs a bulk relations/schema lookup by patterns (e.g., cache warm-up or catalog refresh that uses the pattern-listing metadata API).","solutions":["Implement `list_relations_schemas_by_patterns_inner` for BigQuery using INFORMATION_SCHEMA queries filtered by the given RelationPattern","Use a metadata path that is implemented for BigQuery (e.g., single-relation lookups) instead of the pattern-based API","Track an upstream issue for BigQuery pattern-based metadata listing"],"exampleFix":"// before\nfn list_relations_schemas_by_patterns_inner(\n    &self,\n    _patterns: &[RelationPattern],\n    _token: CancellationToken,\n) -> AsyncAdapterResult<'_, Vec<(String, AdapterResult<RelationSchemaPair>)>> {\n    todo!(\"list_relations_schemas_by_patterns for BigQuery\")\n}\n// after\nfn list_relations_schemas_by_patterns_inner(\n    &self,\n    patterns: &[RelationPattern],\n    token: CancellationToken,\n) -> AsyncAdapterResult<'_, Vec<(String, AdapterResult<RelationSchemaPair>)>> {\n    // query INFORMATION_SCHEMA.TABLES/SCHEMAs filtered by patterns\n    self.query_relations_by_patterns(patterns, token)\n}","handlingStrategy":"validation","validationCode":"if adapter.name() == \"bigquery\" {\n    return Err(anyhow!(\"Pattern-based relation listing is not implemented for BigQuery\"));\n}","typeGuard":"fn supports_pattern_listing(adapter: &dyn Adapter) -> bool {\n    adapter.capabilities().list_relations_schemas_by_patterns\n}","tryCatchPattern":"match std::panic::catch_unwind(AssertUnwindSafe(|| adapter.list_relations_schemas_by_patterns(patterns))) {\n    Ok(res) => res,\n    Err(_) => per_relation_listing_fallback(patterns),\n}","preventionTips":["Consult adapter capability docs before using pattern-based metadata APIs","Check for a capabilities/feature flag on the adapter instance at runtime","Prefer per-relation listing APIs for adapters without pattern support","Track BigQuery implementation status upstream before enabling bulk refresh flows"],"tags":["rust","todo-panic","unimplemented","bigquery","metadata"],"backgroundTag":"method-not-implemented","analyzedSha":"0267ce9170576975b76b64ce856b2e5848e96617","analyzedAt":"2026-09-07T21:53:39.732Z","contentChangedAt":"2026-09-07T21:53:39.732Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}