From: Karl O. Pinc Date: Mon, 30 Sep 2024 00:39:08 +0000 (-0500) Subject: Suggest downloading when server is out of ram X-Git-Url: https://papio.biology.duke.edu/gitweb/?a=commitdiff_plain;h=1e3716a3030b564f7d21b5ebab08d8f2289e2e5e;p=pgwui_sql Suggest downloading when server is out of ram --- diff --git a/src/pgwui_sql/exceptions.py b/src/pgwui_sql/exceptions.py index 3a8d532..310a76e 100644 --- a/src/pgwui_sql/exceptions.py +++ b/src/pgwui_sql/exceptions.py @@ -82,3 +82,18 @@ class CSVError(SQLError): def __init__(self, descr='', detail=''): super().__init__('Error while formatting the download', '', descr=descr, detail=detail) + + +class MemoryError(SQLError): + ''' + Error raised when we run out of memory generating on-screen results + + descr More description of the error + detail Extra HTML describing the error + ''' + def __init__(self, + descr=("Can't collect results for on-screen display" + '-- try downloading instead'), + detail=''): + super().__init__('Webserver out of memory', + '', descr=descr, detail=detail) diff --git a/src/pgwui_sql/views/sql.py b/src/pgwui_sql/views/sql.py index c39fc34..fc02e53 100644 --- a/src/pgwui_sql/views/sql.py +++ b/src/pgwui_sql/views/sql.py @@ -339,7 +339,11 @@ class SQLResultsHandler(pgwui_core.core.SessionDBHandler): except csv.Error as ex: raise sql_ex.CSVError(descr=f'The csv module reports: {ex}') else: - self.make_sql_results(cur) + try: + self.make_sql_results(cur) + except MemoryError: + self.sql_results = [] + raise sql_ex.MemoryError() def factory(self, ue): '''Make a db loader function from an UploadEngine.