diff --git a/.changes/0.7.0.md b/.changes/0.7.0.md new file mode 100644 index 0000000..f698f08 --- /dev/null +++ b/.changes/0.7.0.md @@ -0,0 +1,3 @@ +## 0.7.0 - 2026-07-13 +### Added +* BigQuery platform adapter: run SQL evals and data checks on BigQuery. Install `evaldata[bigquery]`. diff --git a/.changes/unreleased/Added-20260713-091055.yaml b/.changes/unreleased/Added-20260713-091055.yaml deleted file mode 100644 index f43c0ee..0000000 --- a/.changes/unreleased/Added-20260713-091055.yaml +++ /dev/null @@ -1,3 +0,0 @@ -kind: Added -body: 'BigQuery platform adapter: run SQL evals and data checks on BigQuery. Install `evaldata[bigquery]`.' -time: 2026-07-13T09:10:55.428494+10:00 diff --git a/CHANGELOG.md b/CHANGELOG.md index a532e91..b2a0b61 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), and is generated by [Changie](https://github.com/miniscruff/changie). +## 0.7.0 - 2026-07-13 +### Added +* BigQuery platform adapter: run SQL evals and data checks on BigQuery. Install `evaldata[bigquery]`. + ## 0.6.0 - 2026-07-09 ### Added * Snowflake Cortex Analyst solver: evaluate a deployed Cortex Analyst through the usual scoring cascade. `CortexAnalystSolver` sends a natural-language question to the Cortex Analyst REST endpoint (reusing your Snowflake connection's session token) and returns the SQL it generates, which evaldata runs and scores against a gold query. Install the `cortex` extra. diff --git a/pyproject.toml b/pyproject.toml index ebf2636..434d5c6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "evaldata" -version = "0.6.0" +version = "0.7.0" description = "Evaluate AI-generated SQL and text-to-SQL systems with pytest." readme = "README.md" license = "Apache-2.0" diff --git a/tests/platforms/conftest.py b/tests/platforms/conftest.py index cac341b..bb28396 100644 --- a/tests/platforms/conftest.py +++ b/tests/platforms/conftest.py @@ -170,7 +170,7 @@ class BigQueryFixtures: BigQuery's driver reports precise result-column types directly, so `reports_types` is `True` with no probe needed. `UNNEST` supplies the row-list form GoogleSQL lacks as `VALUES ... AS - t(n)`; the `slow_query` counts a large generated array, which scans ~0 bytes yet runs long + t(n)`; the `slow_query` aggregates a large generated array, which scans ~0 bytes yet runs long enough to overrun a sub-second budget. """ @@ -183,7 +183,7 @@ class BigQueryFixtures: duplicate_column_names: str = "SELECT 1 AS x, 2 AS x" references_missing_table: str = "SELECT * FROM does_not_exist_xyz" parse_error: str = "SLECT 1" - slow_query: str = "SELECT COUNT(*) AS n FROM UNNEST(GENERATE_ARRAY(1, 100000000))" + slow_query: str = "SELECT SUM(n) AS n FROM UNNEST(GENERATE_ARRAY(1, 10000000)) AS n" reports_types: bool = True renames_duplicate_columns: bool = True diff --git a/uv.lock b/uv.lock index a8c22e9..c20e7ad 100644 --- a/uv.lock +++ b/uv.lock @@ -899,7 +899,7 @@ wheels = [ [[package]] name = "evaldata" -version = "0.6.0" +version = "0.7.0" source = { editable = "." } dependencies = [ { name = "duckdb" },