athena_rs 3.26.4

Hyper performant polyglot Database driver
Documentation
//! Snapshot-query row contract assembly for `/debug/schema`.
//!
//! This module owns constructing `LoggingSchemaSnapshotRows` from fetched
//! relation and column rows.

use super::debug_snapshot_contracts::LoggingSchemaSnapshotRows;
use super::debug_snapshot_queries_output_input_contracts::LoggingSchemaSnapshotRowsOutputInput;

/// Builds snapshot row-contract output from fetched relation and column rows.
pub(super) fn build_logging_schema_snapshot_rows_output(
    input: LoggingSchemaSnapshotRowsOutputInput,
) -> LoggingSchemaSnapshotRows {
    let LoggingSchemaSnapshotRowsOutputInput { relations, columns } = input;

    LoggingSchemaSnapshotRows { relations, columns }
}

#[cfg(test)]
mod tests {
    use super::*;
    use crate::api::schema::debug_snapshot_queries_test_helpers::{
        assert_snapshot_rows_output_for_tests,
        build_successful_snapshot_rows_output_input_for_tests,
    };

    #[test]
    /// Preserves fetched relation and column rows in snapshot row-contract output.
    fn output_assembly_preserves_snapshot_rows() {
        let rows = build_logging_schema_snapshot_rows_output(
            build_successful_snapshot_rows_output_input_for_tests(),
        );
        assert_snapshot_rows_output_for_tests(rows, "snapshot queries output assembly");
    }
}