Skip to content

Commit c22b6e3

Browse files
TIHanfa-assistant
authored andcommitted
Cache: Set correct original_file_path for DbtDocsMacro (#5780)
* Set correct original_file_path for a DbtDocsMacro. Handle package dependencies better for cache. * Added changelog * Code quality * Code quality GitOrigin-RevId: 251706e5cb77addd1e370177539c7a7b904ebcf4
1 parent 48c3a42 commit c22b6e3

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

crates/dbt-parser/src/resolve/resolve_macros.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
use dbt_common::ErrorCode;
22
use dbt_common::FsResult;
33
use dbt_common::io_args::IoArgs;
4-
use dbt_common::{err, fs_err, stdfs};
4+
use dbt_common::stdfs::diff_paths;
5+
use dbt_common::{err, fs_err};
56
use dbt_jinja_utils::phases::parse::sql_resource::SqlResource;
67
use dbt_schemas::schemas::macros::DbtDocsMacro;
78
use dbt_schemas::schemas::macros::DbtMacro;
@@ -16,6 +17,7 @@ use crate::utils::parse_macro_statements;
1617

1718
/// Resolve docs macros from a list of docs macro files
1819
pub fn resolve_docs_macros(
20+
io: &IoArgs,
1921
docs_macro_files: &[DbtAsset],
2022
) -> FsResult<BTreeMap<String, DbtDocsMacro>> {
2123
let mut docs_map: BTreeMap<String, DbtDocsMacro> = BTreeMap::new();
@@ -26,7 +28,8 @@ pub fn resolve_docs_macros(
2628
package_name,
2729
} in docs_macro_files
2830
{
29-
let docs_macro = fs::read_to_string(base_path.join(docs_file)).map_err(|e| {
31+
let docs_file_path = base_path.join(docs_file);
32+
let docs_macro = fs::read_to_string(&docs_file_path).map_err(|e| {
3033
fs_err!(
3134
ErrorCode::IoError,
3235
"Failed to read docs file '{}': {}",
@@ -35,7 +38,8 @@ pub fn resolve_docs_macros(
3538
)
3639
})?;
3740

38-
let resources = parse_macro_statements(&docs_macro, docs_file, &["docs"]);
41+
let relative_docs_file_path = &diff_paths(&docs_file_path, &io.in_dir)?;
42+
let resources = parse_macro_statements(&docs_macro, relative_docs_file_path, &["docs"]);
3943
match resources {
4044
Ok(resources) => {
4145
if resources.is_empty() {
@@ -62,7 +66,7 @@ pub fn resolve_docs_macros(
6266
name: name.clone(),
6367
package_name: package_name.clone(),
6468
path: docs_file.clone(),
65-
original_file_path: docs_file.clone(),
69+
original_file_path: relative_docs_file_path.clone(),
6670
unique_id,
6771
block_contents: part.to_string(),
6872
},
@@ -109,7 +113,7 @@ pub fn resolve_macros(
109113
"Failed to read macro file: {}", e
110114
)
111115
})?;
112-
let relative_macro_file_path = stdfs::diff_paths(&macro_file_path, &io.in_dir)?;
116+
let relative_macro_file_path = diff_paths(&macro_file_path, &io.in_dir)?;
113117
let resources = parse_macro_statements(
114118
&macro_sql,
115119
&relative_macro_file_path,

crates/dbt-parser/src/resolver.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ pub async fn resolve(
9595
let macro_files = package.macro_files.iter().chain(&package.snapshot_files);
9696
let resolved_macros = resolve_macros(&arg.io, macro_files.collect::<Vec<_>>().as_slice())?;
9797
macros.macros.extend(resolved_macros);
98-
let docs_macros = resolve_docs_macros(&package.docs_files)?;
98+
let docs_macros = resolve_docs_macros(&arg.io, &package.docs_files)?;
9999
macros.docs_macros.extend(docs_macros);
100100
}
101101

0 commit comments

Comments
 (0)