@@ -30,7 +30,7 @@ use dbt_schemas::schemas::manifest::{
30
30
use dbt_schemas:: schemas:: project:: ModelConfig ;
31
31
use dbt_schemas:: schemas:: properties:: ModelConstraint ;
32
32
use dbt_schemas:: schemas:: relations:: base:: { BaseRelation , ComponentName } ;
33
- use dbt_schemas:: schemas:: { CommonAttributes , CommonAttributesWrapper , DbtModel } ;
33
+ use dbt_schemas:: schemas:: InternalDbtNodeWrapper ;
34
34
use dbt_xdbc:: Connection ;
35
35
use minijinja:: arg_utils:: { check_num_args, ArgParser } ;
36
36
use minijinja:: dispatch_object:: DispatchObject ;
@@ -927,18 +927,17 @@ impl BaseAdapter for BridgeAdapter {
927
927
)
928
928
} ) ?;
929
929
930
- let common_attr = CommonAttributes :: deserialize ( node) . map_err ( |e| {
930
+ let node_wrapper = InternalDbtNodeWrapper :: deserialize ( node) . map_err ( |e| {
931
931
MinijinjaError :: new (
932
932
MinijinjaErrorKind :: SerdeDeserializeError ,
933
- format ! ( "get_table_options: Failed to deserialize common attributes : {e}" ) ,
933
+ format ! ( "get_table_options: Failed to deserialize InternalDbtNodeWrapper : {e}" ) ,
934
934
)
935
935
} ) ?;
936
+ let node = node_wrapper. as_internal_node ( ) ;
936
937
937
- let options = self . typed_adapter . get_table_options (
938
- config,
939
- CommonAttributesWrapper ( common_attr) ,
940
- temporary,
941
- ) ?;
938
+ let options = self
939
+ . typed_adapter
940
+ . get_table_options ( config, node. common ( ) , temporary) ?;
942
941
Ok ( Value :: from_serialize ( options) )
943
942
}
944
943
@@ -957,16 +956,15 @@ impl BaseAdapter for BridgeAdapter {
957
956
)
958
957
} ) ?;
959
958
960
- let common_attr = CommonAttributes :: deserialize ( node) . map_err ( |e| {
959
+ let node_wrapper = InternalDbtNodeWrapper :: deserialize ( node) . map_err ( |e| {
961
960
MinijinjaError :: new (
962
961
MinijinjaErrorKind :: SerdeDeserializeError ,
963
- format ! ( "get_view_options : Failed to deserialize common attributes : {e}" ) ,
962
+ format ! ( "get_table_options : Failed to deserialize InternalDbtNodeWrapper : {e}" ) ,
964
963
)
965
964
} ) ?;
965
+ let node = node_wrapper. as_internal_node ( ) ;
966
966
967
- let options = self
968
- . typed_adapter
969
- . get_view_options ( config, CommonAttributesWrapper ( common_attr) ) ?;
967
+ let options = self . typed_adapter . get_view_options ( config, node. common ( ) ) ?;
970
968
Ok ( Value :: from_serialize ( options) )
971
969
}
972
970
@@ -1181,13 +1179,22 @@ impl BaseAdapter for BridgeAdapter {
1181
1179
let config = ModelConfig :: deserialize ( config) . map_err ( |e| {
1182
1180
MinijinjaError :: new ( MinijinjaErrorKind :: SerdeDeserializeError , e. to_string ( ) )
1183
1181
} ) ?;
1184
- let model = DbtModel :: deserialize ( model) . map_err ( |e| {
1185
- MinijinjaError :: new ( MinijinjaErrorKind :: SerdeDeserializeError , e. to_string ( ) )
1182
+
1183
+ let node = InternalDbtNodeWrapper :: deserialize ( model) . map_err ( |e| {
1184
+ MinijinjaError :: new (
1185
+ MinijinjaErrorKind :: SerdeDeserializeError ,
1186
+ format ! (
1187
+ "adapter.compute_external_path expected an InternalDbtNodeWrapper: {}" ,
1188
+ e
1189
+ ) ,
1190
+ )
1186
1191
} ) ?;
1187
1192
1188
- let result = self
1189
- . typed_adapter
1190
- . compute_external_path ( config, model, is_incremental) ?;
1193
+ let result = self . typed_adapter . compute_external_path (
1194
+ config,
1195
+ node. as_internal_node ( ) ,
1196
+ is_incremental,
1197
+ ) ?;
1191
1198
Ok ( Value :: from ( result) )
1192
1199
}
1193
1200
@@ -1348,12 +1355,27 @@ impl BaseAdapter for BridgeAdapter {
1348
1355
check_num_args ( current_function_name ! ( ) , & parser, 1 , 1 ) ?;
1349
1356
1350
1357
let model = parser. get :: < Value > ( "model" ) ?;
1351
- let model = DbtModel :: deserialize ( model) . map_err ( |e| {
1358
+
1359
+ let deserialized_node = InternalDbtNodeWrapper :: deserialize ( model) . map_err ( |e| {
1352
1360
MinijinjaError :: new (
1353
1361
MinijinjaErrorKind :: SerdeDeserializeError ,
1354
- format ! ( "adapter.get_config_from_model expected a DbtModel: {}" , e) ,
1362
+ format ! (
1363
+ "adapter.get_config_from_model expected an InternalDbtNodeWrapper: {}" ,
1364
+ e
1365
+ ) ,
1355
1366
)
1356
1367
} ) ?;
1368
+
1369
+ let model = match deserialized_node {
1370
+ InternalDbtNodeWrapper :: Model ( model) => model,
1371
+ _ => {
1372
+ return Err ( MinijinjaError :: new (
1373
+ MinijinjaErrorKind :: InvalidOperation ,
1374
+ "adapter.get_config_from_model expected a DbtModel node" . to_string ( ) ,
1375
+ ) )
1376
+ }
1377
+ } ;
1378
+
1357
1379
Ok ( self . typed_adapter . get_config_from_model ( & model) ?)
1358
1380
}
1359
1381
0 commit comments