Skip to main content

object_fingerprint

Function object_fingerprint 

Source
fn object_fingerprint(
    descriptor: &ObjectDescriptor,
    file_hashes: &BTreeMap<PathBuf, String>,
    variables: &BTreeMap<String, String>,
) -> Result<String, ProjectError>
Expand description

Compute a SHA-256 fingerprint for an object’s current compile inputs.

The fingerprint is a hex-encoded hash of:

  • the object’s logical key (db_name, schema_name, object_name)
  • every compile-time variable binding (name and value)
  • every file variant’s path, profile tag, and content hash

Two invocations produce the same fingerprint if and only if the object’s identity, variables, file paths, and file contents are all identical. This is the cache key: a matching fingerprint means the cached artifact is safe to reuse without recompilation.