diff --git a/examples/official-site/sqlpage/migrations/77_facet.sql b/examples/official-site/sqlpage/migrations/77_facet.sql index e7333d95..c721d2ff 100644 --- a/examples/official-site/sqlpage/migrations/77_facet.sql +++ b/examples/official-site/sqlpage/migrations/77_facet.sql @@ -20,10 +20,11 @@ select ''facet'' as component, ''Category'' as description, sqlpage.link(sqlpage.path(), json_object(''category'', null)) as all_link, $category is null as all_active; -select distinct category as title, +select category as title, sqlpage.link(sqlpage.path(), json_object(''category'', category)) as link, category = $category as active from my_table +group by category order by category; ``` ', '0.46.0'); diff --git a/src/webserver/database/sql.rs b/src/webserver/database/sql.rs index 6c99b274..58891b3c 100644 --- a/src/webserver/database/sql.rs +++ b/src/webserver/database/sql.rs @@ -621,6 +621,17 @@ mod tests { assert!(query.must_buffer_rows()); } + #[test] + fn documented_facet_query_is_accepted() { + let stmt = one("select category as title, \ + sqlpage.link(sqlpage.path(), json_object('category', category)) as link, \ + category = $category as active from my_table group by category order by category"); + assert!( + !matches!(stmt, FileStatement::Error(_)), + "the documented facet query must parse" + ); + } + #[test] fn static_simple_select_has_no_database_query() { let FileStatement::Query(Query {