{"record":{"id":"bedc2a3e6d030152","repo":"dbt-labs/dbt-core","slug":"object","errorCode":null,"errorMessage":"object","messagePattern":"object","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/dbt-adapter/src/time_machine/event_replay.rs","lineNumber":2597,"sourceCode":"    /// Serialized `RelationObject` in the shape `serializable_impls.rs` writes, so these tests\n    /// exercise the real recorded payload rather than a hand-trimmed subset.\n    fn relation_args(extra: serde_json::Value) -> serde_json::Value {\n        let mut relation = serde_json::json!({\n            \"__type__\": \"RelationObject\",\n            \"adapter_type\": \"snowflake\",\n            \"database\": \"CERTIFIED_UAT\",\n            \"schema\": \"common\",\n            \"identifier\": \"dim_opportunity\",\n            \"is_cte\": false,\n            \"is_delta\": false,\n            \"is_dynamic_table\": false,\n            \"is_materialized_view\": false,\n            \"is_streaming_table\": false,\n            \"is_table\": false,\n            \"is_view\": false,\n            \"quote_policy\": { \"database\": false, \"identifier\": false, \"schema\": false },\n        });\n        let map = relation.as_object_mut().expect(\"object\");\n        for (key, value) in extra.as_object().expect(\"object\") {\n            map.insert(key.clone(), value.clone());\n        }\n        serde_json::json!([relation])\n    }\n\n    /// A cross-project (Mesh) `ref` to a public node with no materialization records as\n    /// `relation_type: None` and replays as `View`. The relation name is identical, so the\n    /// recorded columns are a valid answer and the match must succeed.\n    #[test]\n    fn test_get_columns_in_relation_ignores_relation_type_flags() {\n        let recorded = relation_args(serde_json::json!({}));\n        // `is_interactive_table` is absent from recordings predating that materialization.\n        let actual = relation_args(serde_json::json!({\n            \"is_view\": true,\n            \"is_interactive_table\": false,\n        }));\n","sourceCodeStart":2579,"sourceCodeEnd":2615,"githubUrl":"https://github.com/dbt-labs/dbt-core/blob/0267ce9170576975b76b64ce856b2e5848e96617/crates/dbt-adapter/src/time_machine/event_replay.rs#L2579-L2615","documentation":"Test-helper assertion in event_replay tests (relation_args): the serialized RelationObject JSON payload is expected to be a JSON object (a map) so extra keys can be merged into it. Fires only if serializable_impls.rs changes the recorded payload shape away from a JSON object.","triggerScenarios":"Thrown at crates/dbt-adapter/src/time_machine/event_replay.rs:2597 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Keep RelationObject serialization emitting a JSON object at the top level","Update the test helper if the payload shape legitimately changes","Treat failure as a signal that recorded payloads no longer match the test fixtures"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0267ce9170576975b76b64ce856b2e5848e96617","analyzedAt":"2026-09-07T21:53:39.732Z","contentChangedAt":"2026-09-07T21:53:39.732Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}