class MemoryError(SQLError):
'''
- Error raised when we run out of memory generating on-screen results
+ Error raised when we run out of memory
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=''):
+ def __init__(self, descr='', detail=''):
super().__init__('Webserver out of memory',
'', descr=descr, detail=detail)
if cur.statusmessage is None:
raise sql_ex.NoStatementsError(descr='No SQL statements executed')
- if self.uf['download']:
- try:
- self.make_download(cur)
- except csv.Error as ex:
- raise sql_ex.CSVError(descr=f'The csv module reports: {ex}')
- else:
- try:
+ try:
+ if self.uf['download']:
+ try:
+ self.make_download(cur)
+ except csv.Error as ex:
+ raise sql_ex.CSVError(
+ descr=f'The csv module reports: {ex}')
+ else:
self.make_sql_results(cur)
- except MemoryError:
- self.sql_results = []
- gc.collect()
+ except MemoryError:
+ self.sql_results = []
+ gc.collect()
+ if self.uf['download_as'] == MANY_FILES_VALUE:
raise sql_ex.MemoryError()
+ else:
+ raise sql_ex.MemoryError(
+ ("Can't collect results for on-screen display"
+ '-- try downloading instead'))
def factory(self, ue):
'''Make a db loader function from an UploadEngine.