From e7888c5265afd1bb19450a8db5e69faad2de3413 Mon Sep 17 00:00:00 2001 From: Anil Sahoo Date: Thu, 30 Jan 2025 11:10:25 +0530 Subject: [PATCH] Fixed an issue where the server without a saved password did not persist the user's latest filter dialog input after disconnection. #6044 --- web/pgadmin/tools/sqleditor/__init__.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/web/pgadmin/tools/sqleditor/__init__.py b/web/pgadmin/tools/sqleditor/__init__.py index e4694653e2e..25001091a71 100644 --- a/web/pgadmin/tools/sqleditor/__init__.py +++ b/web/pgadmin/tools/sqleditor/__init__.py @@ -258,6 +258,18 @@ def initialize_viewdata(trans_id, cmd_type, obj_type, sgid, sid, did, obj_id): else: sql_grid_data = session['gridData'] + # if server disconnected and server password not saved, once re-connected + # it will check for the old transaction object and restore the filter_sql + # and data_sorting keys of the filter dialog into the + # newly created command object. + if str(trans_id) in sql_grid_data: + old_trans_obj = pickle.loads( + sql_grid_data[str(trans_id)]['command_obj']) + if old_trans_obj.did == did and old_trans_obj.obj_id == obj_id: + command_obj.set_filter(old_trans_obj._row_filter) + command_obj.set_data_sorting( + dict(data_sorting=old_trans_obj._data_sorting), True) + # Use pickle to store the command object which will be used later by the # sql grid module. sql_grid_data[str(trans_id)] = {