Skip to content

latent.scores.sql

SQL evaluation scoring functions.

Functions

result_set_match_extended

result_set_match_extended(actual_sets: list[list[dict]], expected_sets: list[list[dict]], numeric_tolerance: float = 0.0, confidence_level: float = 0.95, n_resamples: int = 10000, seed: int | None = None) -> dict[str, MetricResult]

Extended result set matching with fuzzy numerics and row-level F1.

Args: actual_sets: List of actual result sets (each a list of row dicts). expected_sets: List of expected result sets (same length). numeric_tolerance: Absolute tolerance for numeric comparisons. 0.0 means exact match (default). confidence_level: CI confidence level. n_resamples: Bootstrap resamples. seed: Random seed.

Returns: Dict with metrics: - "exact_match": Binary exact set match (using existing result_set_match logic) - "row_f1": Per-query F1 score (how many expected rows found in actual)

sql_validity

sql_validity(queries: list[str], dialect: str = 'ansi', connection: Any | None = None, confidence_level: float = 0.95) -> dict[str, MetricResult]

Check SQL validity: parse check + optional execution check.

Args: queries: List of SQL query strings to validate. dialect: SQL dialect for parsing (default "ansi"). Passed to sqlglot. connection: Optional DB-API 2.0 connection for execution validation. Each query is executed inside a savepoint that is rolled back, so no data is mutated. confidence_level: Confidence level for Wilson CI.

Returns: Dict with "sql_parse_valid" MetricResult, and optionally "sql_exec_valid" if connection is provided.