Don't count rows on homepage for DBs > 100MB (#688)

Closes #649.
This commit is contained in:
Simon Willison 2020-02-28 17:08:29 -08:00 committed by GitHub
commit 7f5a330377
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 4 deletions

View file

@ -11,8 +11,8 @@ from .base import BaseView
# Truncate table list on homepage at:
TRUNCATE_AT = 5
# Only attempt counts if less than this many tables:
COUNT_TABLE_LIMIT = 30
# Only attempt counts if database less than this size in bytes:
COUNT_DB_SIZE_LIMIT = 100 * 1024 * 1024
class IndexView(BaseView):
@ -29,7 +29,7 @@ class IndexView(BaseView):
views = await db.view_names()
# Perform counts only for immutable or DBS with <= COUNT_TABLE_LIMIT tables
table_counts = {}
if not db.is_mutable or len(table_names) <= COUNT_TABLE_LIMIT:
if not db.is_mutable or db.size < COUNT_DB_SIZE_LIMIT:
table_counts = await db.table_counts(10)
# If any of these are None it means at least one timed out - ignore them all
if any(v is None for v in table_counts.values()):

View file

@ -229,7 +229,7 @@ def app_client_with_cors():
@pytest.fixture(scope="session")
def app_client_immutable_and_inspect_file():
inspect_data = {'fixtures': {'tables': {'sortable': {'count': 100}}}}
inspect_data = {"fixtures": {"tables": {"sortable": {"count": 100}}}}
yield from make_app_client(is_immutable=True, inspect_data=inspect_data)