athena_rs 3.22.1

Hyper performant polyglot Database driver
Documentation
//! Schema-catalog relation SQL query-selector facade.
//!
//! This module keeps a stable import surface for relation query selection while
//! raw SQL definitions are split by filter scope:
//! - `schema_filters` for schema-scoped filters
//! - `catalog_filters` for unscoped catalog scans

mod catalog_filters;
mod schema_filters;

/// Returns the relation query text matching the active filters.
pub(super) fn relations_query(
    schema_filter: Option<&str>,
    exclude_system_schemas: bool,
) -> &'static str {
    match (schema_filter.is_some(), exclude_system_schemas) {
        (true, _) => schema_filters::relations_for_schema_query(),
        (false, true) => catalog_filters::relations_excluding_system_query(),
        (false, false) => catalog_filters::relations_all_query(),
    }
}

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

    #[test]
    /// Selects schema-scoped relation query when schema filter is present.
    fn relations_query_uses_schema_variant() {
        let query = relations_query(Some("public"), false);
        assert!(query.contains("WHERE table_schema = $1"));
        assert!(query.contains("table_type IN ('BASE TABLE', 'VIEW')"));
    }

    #[test]
    /// Selects unscoped relation query with system-schema exclusion.
    fn relations_query_uses_catalog_excluding_system_variant() {
        let query = relations_query(None, true);
        assert!(query.contains("table_schema NOT IN ('information_schema', 'pg_catalog')"));
    }

    #[test]
    /// Selects unscoped all-schemas relation query when no filters are present.
    fn relations_query_uses_catalog_all_variant() {
        let query = relations_query(None, false);
        assert!(!query.contains("WHERE table_schema = $1"));
        assert!(!query.contains("table_schema NOT IN ('information_schema', 'pg_catalog')"));
    }
}