diff --git a/datasette/default_jump_items.py b/datasette/default_jump_items.py index 74d8a87f..bacc3649 100644 --- a/datasette/default_jump_items.py +++ b/datasette/default_jump_items.py @@ -2,33 +2,6 @@ from datasette import hookimpl from datasette.jump import JumpSQL -async def _query_display_names_sql(datasette, actor): - selects = [] - params = {} - for database_name in datasette.databases.keys(): - queries = await datasette.get_canned_queries(database_name, actor) - for query_name, query in queries.items(): - display_name = query.get("title") if isinstance(query, dict) else None - if not display_name: - continue - index = len(selects) - params[f"display_database_{index}"] = database_name - params[f"display_query_{index}"] = query_name - params[f"display_name_{index}"] = str(display_name) - selects.append(f""" - SELECT - :display_database_{index} AS database_name, - :display_query_{index} AS query_name, - :display_name_{index} AS display_name - """) - if not selects: - return ( - "SELECT NULL AS database_name, NULL AS query_name, NULL AS display_name WHERE 0", - {}, - ) - return " UNION ALL ".join(selects), params - - @hookimpl def jump_items_sql(datasette, actor, request): async def inner(): @@ -41,9 +14,6 @@ def jump_items_sql(datasette, actor, request): query_sql, query_params = await datasette.allowed_resources_sql( action="view-query", actor=actor ) - query_display_names_sql, query_display_names_params = ( - await _query_display_names_sql(datasette, actor) - ) return [ JumpSQL( sql=f""" @@ -92,9 +62,6 @@ def jump_items_sql(datasette, actor, request): sql=f""" WITH allowed_queries AS ( {query_sql} - ), - query_display_names AS ( - {query_display_names_sql} ) SELECT 'query' AS type, @@ -103,16 +70,13 @@ def jump_items_sql(datasette, actor, request): NULL AS url, allowed_queries.parent AS database_name, allowed_queries.child AS resource_name, - allowed_queries.parent || ' ' || allowed_queries.child || ' ' || COALESCE(query_display_names.display_name, '') AS search_text, + allowed_queries.parent || ' ' || allowed_queries.child AS search_text, 30 AS sort_key, 'datasette' AS source, - query_display_names.display_name AS display_name + NULL AS display_name FROM allowed_queries - LEFT JOIN query_display_names - ON query_display_names.database_name = allowed_queries.parent - AND query_display_names.query_name = allowed_queries.child """, - params={**query_params, **query_display_names_params}, + params=query_params, ), ] diff --git a/docs/introspection.rst b/docs/introspection.rst index a5a9753a..b6ee1690 100644 --- a/docs/introspection.rst +++ b/docs/introspection.rst @@ -152,10 +152,8 @@ Shows currently attached databases. `Databases example `_: @@ -177,7 +175,6 @@ column. }, { "name": "fixtures: recent_releases", - "display_name": "Recent Datasette releases", "url": "/fixtures/recent_releases", "type": "query", "description": "Canned query" diff --git a/tests/test_jump.py b/tests/test_jump.py index acffe4a9..27238695 100644 --- a/tests/test_jump.py +++ b/tests/test_jump.py @@ -89,10 +89,6 @@ async def test_jump_searches_tables_databases_views_and_canned_queries(ds_for_ju assert ("view", "content: comment_summary") in matches_by_type_and_name assert ("query", "content: recent_comments") in matches_by_type_and_name assert matches_by_type_and_name[("database", "content")]["url"] == "/content" - assert ( - matches_by_type_and_name[("query", "content: recent_comments")]["display_name"] - == "Recent comments" - ) assert ( matches_by_type_and_name[("query", "content: recent_comments")]["url"] == "/content/recent_comments" @@ -100,17 +96,20 @@ async def test_jump_searches_tables_databases_views_and_canned_queries(ds_for_ju @pytest.mark.asyncio -async def test_jump_searches_and_displays_canned_query_titles(ds_for_jump): +async def test_jump_uses_canned_query_names_not_titles(ds_for_jump): response = await ds_for_jump.client.get( "/-/jump.json?q=datasette", actor={"id": "user"} ) assert response.status_code == 200 - data = response.json() + assert response.json()["matches"] == [] - assert data["matches"] == [ + response = await ds_for_jump.client.get( + "/-/jump.json?q=release", actor={"id": "user"} + ) + assert response.status_code == 200 + assert response.json()["matches"] == [ { "name": "content: release_notes", - "display_name": "Recent Datasette releases", "url": "/content/release_notes", "type": "query", "description": "Canned query",