athena_rs 3.26.1

Hyper performant polyglot Database driver
Documentation
//! Final table-comparison payload assembly for `/debug/schema`.
//!
//! This module owns constructing `LoggingSchemaTableComparison` from relation
//! comparison results and computed column-delta lists.

use super::debug_table_comparison_contracts::LoggingSchemaTableComparison;

/// Builds one expected-vs-observed table comparison payload.
pub(super) fn build_logging_schema_table_comparison_output(
    relation_type_matches: bool,
    missing_columns: Vec<String>,
    unexpected_columns: Vec<String>,
) -> LoggingSchemaTableComparison {
    LoggingSchemaTableComparison {
        relation_type_matches,
        missing_columns,
        unexpected_columns,
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    /// Preserves relation and column-delta fields in table-comparison payload output.
    fn table_comparison_output_preserves_relation_and_column_deltas() {
        let comparison = build_logging_schema_table_comparison_output(
            false,
            vec!["status_code".to_string()],
            vec!["extra_col".to_string()],
        );

        assert!(!comparison.relation_type_matches);
        assert_eq!(comparison.missing_columns, vec!["status_code".to_string()]);
        assert_eq!(comparison.unexpected_columns, vec!["extra_col".to_string()]);
    }
}