From 83a6872d1b81a750ba46f6adc16f2030f0115979 Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Thu, 17 Nov 2022 18:53:48 -0800 Subject: [PATCH] Include views in SQL autocomplete, refs #1897 --- datasette/views/database.py | 4 ++++ tests/test_permissions.py | 1 + 2 files changed, 5 insertions(+) diff --git a/datasette/views/database.py b/datasette/views/database.py index 521ff317..63da6992 100644 --- a/datasette/views/database.py +++ b/datasette/views/database.py @@ -703,6 +703,10 @@ async def _table_columns(datasette, database_name): table_columns = {} for row in result.rows: table_columns.setdefault(row["table_name"], []).append(row["name"]) + # Add views + db = datasette.get_database(database_name) + for view_name in await db.view_names(): + table_columns[view_name] = [] return table_columns diff --git a/tests/test_permissions.py b/tests/test_permissions.py index cce46082..4eb18cee 100644 --- a/tests/test_permissions.py +++ b/tests/test_permissions.py @@ -274,6 +274,7 @@ def test_execute_sql(metadata): schema_json = schema_re.search(response_text).group(1) schema = json.loads(schema_json) assert set(schema["attraction_characteristic"]) == {"name", "pk"} + assert schema["paginated_view"] == [] assert form_fragment in response_text query_response = client.get("/fixtures?sql=select+1", cookies=cookies) assert query_response.status == 200