Subject: [GSoC] Finalized First Patch

From: Yosry Muhammad <[email-masked]>
Date: Mon, 1 Jul 2019 21:19:36 +0200

Dear all,

This is a final version of the patch I have been working on since the
beginning of the GSoC project with tests and documentation.

This patch includes:

Features:
- Implementeing the first version detecting updatable resultsets. Saving
edited data works the same way as View Data mode (with small changes). A
resultset is updatable if:
    - All columns belong to the same table.
    - All primary keys are selected.
    - No duplicate columns.

- Adding the new Save Data icon and its shortcut in preferences. The old
Save icon is used exclusively for Saving files now.
- Integrating saving data changes into the ongoing transaction (if any).
The user is notified that they need to commit the changes if auto-commit is
off.
- A failed save of data changes rolls back the data changes only, does not
rollback previous queries in the same transaction.
- Alerting the user when Execute/Explain is clicked with unsaved changes in
the grid.
- Modified/New cells are now highlighted.
- Alerting the user when exiting with uncommited transactions.
- Re-implementing the on tab close event of the query tool as multiple
dialogs may be required for: unsaved data changes, unsaved file changes &
uncommited transactions (they can all be enabled/disabled in preferences).
- Hiding queries generated by pgAdmin from query history (until they are
substituted by a mogrified version and have a checkbox added to
enable/disable them).

Bug fixes:
- Fixed a bug where exit on save would exit even if the save was not
successful.
- Fixed a bug where alertify confirm dialogs had midword break wrapping.

Tests:
- Python tests:
    - test_is_query_resultset_updatable: Tests that updatable resultsets
are detected correctly.
    - test_save_changed_data: Tests that additions, deletions & updates are
performed correctly on updatable resultsets.
- Feature tests:
    - query_tool_journey_test (existing - extended): Test that when the
query resultset is updatable the user can modify cells and add new rows
(and vice versa).
    - Updated other feature tests to match the new icon.
- JS tests:
    -  Updated call_render_after_poll_specs.js &
keyboard_shortcuts_specs.js to test updates in related parts of the code.

I could not add JS tests to test that the new Save Data button is enabled
when the user edits a cell as I cannot mimic the actions of editing the
grid. However, the new button is now used in View/Edit data feature tests
and it works correctly.
I also could not add JS tests to check that when the resultset is updatable
the grid should be editable as the current code in sqleditor.js is not
testable and it will required a lot of refactoring of this file, but again,
this is covered by feature tests.

Documentation:
- Updated editgrid.rst, query_tool.rst, query_tool_shortcuts.rst,
preferences.rst & keyboard_shortcuts.rst to match the new changes.
- Updated the following screenshots: query_output_data.png, query_tool.png
& query_toolbar.png

The patch passes all tests performed by "make check" command.

Please review, looking forward to any comments or feedback.

Thanks !

-- 
*Yosry Muhammad Yosry*

Computer Engineering student,
The Faculty of Engineering,
Cairo University (2021).
Class representative of CMP 2021.
https://www.linkedin.com/in/yosrym93/
diff --git a/docs/en_US/editgrid.rst b/docs/en_US/editgrid.rst
index 1854274d..b697449d 100644
--- a/docs/en_US/editgrid.rst
+++ b/docs/en_US/editgrid.rst
@@ -42,13 +42,15 @@ The top row of the data grid displays the name of each column, the data type,
 and if applicable, the number of characters allowed. A column that is part of
 the primary key will additionally be marked with [PK].
 
+.. _modifying-data-grid:
+
 To modify the displayed data:
 
 * To change a numeric value within the grid, double-click the value to select
   the field.  Modify the content in the square in which it is displayed.
 * To change a non-numeric value within the grid, double-click the content to
   access the edit bubble.  After modifying the contentof the edit bubble, click
-  the *Save* button to display your changes in the data grid, or *Cancel* to
+  the *Ok* button to display your changes in the data grid, or *Cancel* to
   exit the edit bubble without saving.
 
 To enter a newline character, click Ctrl-Enter or Shift-Enter.  Newline
@@ -70,9 +72,7 @@ quotes to the table, you need to escape these quotes, by typing \'\'
 To delete a row, press the *Delete* toolbar button.  A popup will open, asking
 you to confirm the deletion.
 
-To commit the changes to the server, select the *Save* toolbar button.
-Modifications to a row are written to the server automatically when you select
-a different row.
+To commit the changes to the server, select the *Save Data* toolbar button.
 
 **Geometry Data Viewer**
 
diff --git a/docs/en_US/images/query_output_data.png b/docs/en_US/images/query_output_data.png
old mode 100755
new mode 100644
index 8eec7087..6f6f0dc1
Binary files a/docs/en_US/images/query_output_data.png and b/docs/en_US/images/query_output_data.png differ
diff --git a/docs/en_US/images/query_tool.png b/docs/en_US/images/query_tool.png
old mode 100755
new mode 100644
index b9d165ef..6f6f0dc1
Binary files a/docs/en_US/images/query_tool.png and b/docs/en_US/images/query_tool.png differ
diff --git a/docs/en_US/images/query_toolbar.png b/docs/en_US/images/query_toolbar.png
index 9ae9cef1..b87c0d72 100644
Binary files a/docs/en_US/images/query_toolbar.png and b/docs/en_US/images/query_toolbar.png differ
diff --git a/docs/en_US/keyboard_shortcuts.rst b/docs/en_US/keyboard_shortcuts.rst
index 360efb32..42aee2aa 100644
--- a/docs/en_US/keyboard_shortcuts.rst
+++ b/docs/en_US/keyboard_shortcuts.rst
@@ -131,6 +131,8 @@ When using the Query Tool, the following shortcuts are available:
    +==========================+====================+===================================+
    | F5                       | F5                 | Execute query                     |
    +--------------------------+--------------------+-----------------------------------+
+   | F6                       | F6                 | Save data changes                 |
+   +--------------------------+--------------------+-----------------------------------+
    | F7                       | F7                 | EXPLAIN query                     |
    +--------------------------+--------------------+-----------------------------------+
    | Shift + F7               | Shift + F7         | EXPLAIN ANALYZE query             |
diff --git a/docs/en_US/preferences.rst b/docs/en_US/preferences.rst
index 28ecb6ab..0e07ebc5 100644
--- a/docs/en_US/preferences.rst
+++ b/docs/en_US/preferences.rst
@@ -294,6 +294,10 @@ a graphical EXPLAIN.
 
 Use the fields on the *Options* panel to manage editor preferences.
 
+* When the *Alert on uncommited transactions?* switch is set to *True*, the
+  Query Tool will alert the user when exiting while the current transaction
+  is not commited.
+
 * When the *Auto-Commit?* switch is set to *True*, each successful query is
   committed after execution.
 
diff --git a/docs/en_US/query_tool.rst b/docs/en_US/query_tool.rst
index 2f7000e3..07fcaa62 100644
--- a/docs/en_US/query_tool.rst
+++ b/docs/en_US/query_tool.rst
@@ -12,11 +12,13 @@ allows you to:
 
 * Issue ad-hoc SQL queries.
 * Execute arbitrary SQL commands.
+* Edit the result set of a SELECT query if it is :ref:`updatable <updatable-result-set>`.
 * Displays current connection and transaction status as configured by the user.
 * Save the data displayed in the output panel to a CSV file.
 * Review the execution plan of a SQL statement in either a text or a graphical format.
 * View analytical information about a SQL statement.
 
+
 .. image:: images/query_tool.png
     :alt: Query tool window
     :align: center
@@ -120,6 +122,25 @@ You can:
   set query execution options.
 * Use the *Download as CSV* icon to download the content of the *Data Output*
   tab as a comma-delimited file.
+* Edit the data in the result set of a SELECT query if it is updatable.
+
+.. _updatable-result-set:
+
+A result set is updatable if:
+
+* All the columns belong to the same table.
+* All the primary keys of the table are selected.
+* No columns are duplicated.
+
+An updatable result set can be modified just like in :ref:`View/Edit Data <modifying-data-grid>` mode.
+
+If Auto-commit is off, the data changes are made as part of the ongoing transaction, if
+no transaction is ongoing a new one is initiated. The data changes are not commited to 
+the database unless the transaction is commited.
+If any errors occur during saving (for example, trying to save NULL into a column 
+with NOT NULL constraint) the data changes are rolled back, however, any previously executed 
+queries in the ongoing transaction are not rolled back.
+
 
 All rowsets from previous queries or commands that are displayed in the *Data
 Output* panel will be discarded when you invoke another query; open another
diff --git a/docs/en_US/query_tool_toolbar.rst b/docs/en_US/query_tool_toolbar.rst
index 3ce9deeb..2a2b5bea 100644
--- a/docs/en_US/query_tool_toolbar.rst
+++ b/docs/en_US/query_tool_toolbar.rst
@@ -31,7 +31,7 @@ File Options
    +======================+===================================================================================================+================+
    | *Open File*          | Click the *Open File* icon to display a previously saved query in the SQL Editor.                 | Accesskey + O  |
    +----------------------+---------------------------------------------------------------------------------------------------+----------------+
-   | *Save*               | Click the *Save* icon to perform a quick-save of a previously saved query, or to access the       | Accesskey + S  |
+   | *Save File*          | Click the *Save* icon to perform a quick-save of a previously saved query, or to access the       | Accesskey + S  |
    |                      | *Save* menu:                                                                                      |                |
    |                      |                                                                                                   |                |
    |                      |  * Select *Save* to save the selected content of the SQL Editor panel in a  file.                 |                |
@@ -50,6 +50,8 @@ Editing Options
    +----------------------+---------------------------------------------------------------------------------------------------+----------------+
    | Icon                 | Behavior                                                                                          | Shortcut       |
    +======================+===================================================================================================+================+
+   | *Save Data*          | Click the *Save Data* icon to save data changes in the Data Output Panel to the server.           | F6             |
+   +----------------------+---------------------------------------------------------------------------------------------------+----------------+
    | *Find*               | Use the *Find* menu to search, replace, or navigate the code displayed in the SQL Editor:         |                |
    |                      +---------------------------------------------------------------------------------------------------+----------------+
    |                      | Select *Find* to provide a search target, and search the SQL Editor contents.                     | Cmd+F          |
@@ -67,11 +69,10 @@ Editing Options
    |                      | Select *Jump* to navigate to the next occurrence of the search target.                            | Alt+G          |
    +----------------------+---------------------------------------------------------------------------------------------------+----------------+
    | *Copy*               | Click the *Copy* icon to copy the content that is currently highlighted in the Data Output panel. | Accesskey + C  |
-   |                      | when in View/Edit data mode.                                                                      |                |
    +----------------------+---------------------------------------------------------------------------------------------------+----------------+
-   | *Paste*              | Click the *Paste* icon to paste a previously row into a new row when in View/Edit data mode.      | Accesskey + P  |
+   | *Paste*              | Click the *Paste* icon to paste a previously row into a new row.                                  | Accesskey + P  |
    +----------------------+---------------------------------------------------------------------------------------------------+----------------+
-   | *Delete*             | Click the *Delete* icon to delete the selected rows when in View/Edit data mode.                  | Accesskey + D  |
+   | *Delete*             | Click the *Delete* icon to delete the selected rows.                                              | Accesskey + D  |
    +----------------------+---------------------------------------------------------------------------------------------------+----------------+
    | *Edit*               | Use options on the *Edit* menu to access text editing tools; the options operate on the text      |                |
    |                      | displayed in the SQL Editor panel when in Query Tool mode:                                        |                |
diff --git a/web/pgadmin/feature_tests/file_manager_test.py b/web/pgadmin/feature_tests/file_manager_test.py
index 1c74d40b..b6b35c04 100644
--- a/web/pgadmin/feature_tests/file_manager_test.py
+++ b/web/pgadmin/feature_tests/file_manager_test.py
@@ -65,7 +65,8 @@ class CheckFileManagerFeatureTest(BaseFeatureTest):
         self.page.open_query_tool()
 
     def _create_new_file(self):
-        self.page.find_by_css_selector(QueryToolLocatorsCss.btn_save).click()
+        self.page.find_by_css_selector(QueryToolLocatorsCss.btn_save_file)\
+            .click()
         # Set the XSS value in input
         self.page.find_by_css_selector('.change_file_types')
         self.page.fill_input_by_css_selector("input#file-input-path",
diff --git a/web/pgadmin/feature_tests/locators.py b/web/pgadmin/feature_tests/locators.py
index 46673f10..30ec1efb 100644
--- a/web/pgadmin/feature_tests/locators.py
+++ b/web/pgadmin/feature_tests/locators.py
@@ -1,5 +1,5 @@
 class QueryToolLocatorsCss:
-    btn_save = "#btn-save"
+    btn_save_file = "#btn-save-file"
     btn_execute_query = "#btn-flash"
     btn_query_dropdown = "#btn-query-dropdown"
     btn_auto_rollback = "#btn-auto-rollback"
diff --git a/web/pgadmin/feature_tests/query_tool_journey_test.py b/web/pgadmin/feature_tests/query_tool_journey_test.py
index 79f6b7db..3cbf6f48 100644
--- a/web/pgadmin/feature_tests/query_tool_journey_test.py
+++ b/web/pgadmin/feature_tests/query_tool_journey_test.py
@@ -7,6 +7,7 @@
 #
 ##########################################################################
 
+import sys
 import pyperclip
 import random
 
@@ -28,11 +29,24 @@ class QueryToolJourneyTest(BaseFeatureTest):
     ]
 
     test_table_name = ""
+    test_editable_table_name = ""
 
     def before(self):
         self.test_table_name = "test_table" + str(random.randint(1000, 3000))
         test_utils.create_table(
             self.server, self.test_db, self.test_table_name)
+
+        self.test_editable_table_name = "test_editable_table" + \
+                                        str(random.randint(1000, 3000))
+        create_sql = '''
+                             CREATE TABLE "%s" (
+                                 pk_column NUMERIC PRIMARY KEY,
+                                 normal_column NUMERIC
+                             );
+                             ''' % self.test_editable_table_name
+        test_utils.create_table_with_query(
+            self.server, self.test_db, create_sql)
+
         self.page.add_server(self.server)
 
     def runTest(self):
@@ -40,9 +54,21 @@ class QueryToolJourneyTest(BaseFeatureTest):
         self._execute_query(
             "SELECT * FROM %s ORDER BY value " % self.test_table_name)
 
+        print("Copy rows...", file=sys.stderr, end="")
         self._test_copies_rows()
+        print(" OK.", file=sys.stderr)
+
+        print("Copy columns...", file=sys.stderr, end="")
         self._test_copies_columns()
+        print(" OK.", file=sys.stderr)
+
+        print("History tab...", file=sys.stderr, end="")
         self._test_history_tab()
+        print(" OK.", file=sys.stderr)
+
+        print("Updatable resultsets...", file=sys.stderr, end="")
+        self._test_editable_resultset()
+        print(" OK.", file=sys.stderr)
 
     def _test_copies_rows(self):
         pyperclip.copy("old clipboard contents")
@@ -162,6 +188,27 @@ class QueryToolJourneyTest(BaseFeatureTest):
                 .perform()
         self._assert_clickable(query_we_need_to_scroll_to)
 
+    def _test_editable_resultset(self):
+        self.page.click_tab("Query Editor")
+
+        # Insert data into test table
+        self.__clear_query_tool()
+        self._execute_query(
+            "INSERT INTO %s VALUES (1, 1), (2, 2);"
+            % self.test_editable_table_name
+        )
+
+        # Select all data (contains the primary key -> should be editable)
+        self.__clear_query_tool()
+        query = "SELECT pk_column, normal_column FROM %s" \
+                % self.test_editable_table_name
+        self._check_query_results_editable(query, True)
+
+        # Select data without primary keys -> should not be editable
+        self.__clear_query_tool()
+        query = "SELECT normal_column FROM %s" % self.test_editable_table_name
+        self._check_query_results_editable(query, False)
+
     def __clear_query_tool(self):
         self.page.click_element(
             self.page.find_by_xpath("//*[@id='btn-clear-dropdown']")
@@ -188,6 +235,31 @@ class QueryToolJourneyTest(BaseFeatureTest):
     def _assert_clickable(self, element):
         self.page.click_element(element)
 
+    def _check_query_results_editable(self, query, should_be_editable):
+        self._execute_query(query)
+        self.page.wait_for_spinner_to_disappear()
+
+        # Check if the first cell in the first row is editable
+        is_editable = self._check_cell_editable(1)
+        self.assertEqual(is_editable, should_be_editable)
+        # Check that new rows cannot be added
+        can_add_rows = self._check_can_add_row()
+        self.assertEqual(can_add_rows, should_be_editable)
+
+    def _check_cell_editable(self, cell_index):
+        xpath = '//div[contains(@class, "slick-cell") and ' \
+                'contains(@class, "r' + str(cell_index) + '")]'
+        cell_el = self.page.find_by_xpath(xpath)
+        ActionChains(self.driver).double_click(cell_el).perform()
+        xpath = '//div[contains(@class, "slick-cell") and ' \
+                'contains(@class, "r' + str(cell_index) + '") ' \
+                'and contains(@class, "editable")]'
+        return self.page.check_if_element_exist_by_xpath(xpath)
+
+    def _check_can_add_row(self):
+        return self.page.check_if_element_exist_by_xpath(
+            '//div[contains(@class, "new-row")]')
+
     def after(self):
         self.page.close_query_tool()
         self.page.remove_server(self.server)
diff --git a/web/pgadmin/feature_tests/view_data_dml_queries.py b/web/pgadmin/feature_tests/view_data_dml_queries.py
index 8e69ffc5..888cf716 100644
--- a/web/pgadmin/feature_tests/view_data_dml_queries.py
+++ b/web/pgadmin/feature_tests/view_data_dml_queries.py
@@ -262,7 +262,7 @@ CREATE TABLE public.defaults_{0}
         # reset cell value to previous one
         self._update_cell(row1_cell2_xpath, ["1", "", "int"])
 
-        self.page.find_by_id("btn-save").click()  # Save data
+        self.page.find_by_id("btn-save-data").click()  # Save data
         # There should be some delay after save button is clicked, as it
         # takes some time to complete save ajax call otherwise discard unsaved
         # changes dialog will appear if we try to execute query before previous
@@ -279,7 +279,7 @@ CREATE TABLE public.defaults_{0}
             )
             time.sleep(0.2)
             self._update_cell(cell_xpath, config_data[str(idx)])
-        self.page.find_by_id("btn-save").click()  # Save data
+        self.page.find_by_id("btn-save-data").click()  # Save data
         # There should be some delay after save button is clicked, as it
         # takes some time to complete save ajax call otherwise discard unsaved
         # changes dialog will appear if we try to execute query before previous
diff --git a/web/pgadmin/static/js/keyboard_shortcuts.js b/web/pgadmin/static/js/keyboard_shortcuts.js
index c565b862..5dd2384b 100644
--- a/web/pgadmin/static/js/keyboard_shortcuts.js
+++ b/web/pgadmin/static/js/keyboard_shortcuts.js
@@ -205,6 +205,7 @@ function keyboardShortcutsQueryTool(
   let toggleCaseKeys = sqlEditorController.preferences.toggle_case;
   let commitKeys = sqlEditorController.preferences.commit_transaction;
   let rollbackKeys = sqlEditorController.preferences.rollback_transaction;
+  let saveDataKeys = sqlEditorController.preferences.save_data;
 
   if (this.validateShortcutKeys(executeKeys, event)) {
     this._stopEventPropagation(event);
@@ -233,6 +234,9 @@ function keyboardShortcutsQueryTool(
       this._stopEventPropagation(event);
       queryToolActions.executeRollback(sqlEditorController);
     }
+  } else if (this.validateShortcutKeys(saveDataKeys, event)) {
+    this._stopEventPropagation(event);
+    queryToolActions.saveDataChanges(sqlEditorController);
   } else if ((
     (this.isMac() && event.metaKey) ||
      (!this.isMac() && event.ctrlKey)
diff --git a/web/pgadmin/static/js/sqleditor/call_render_after_poll.js b/web/pgadmin/static/js/sqleditor/call_render_after_poll.js
index 3f32d571..57d60537 100644
--- a/web/pgadmin/static/js/sqleditor/call_render_after_poll.js
+++ b/web/pgadmin/static/js/sqleditor/call_render_after_poll.js
@@ -37,7 +37,8 @@ export function callRenderAfterPoll(sqlEditor, alertify, res) {
     const msg = sprintf(
       gettext('Query returned successfully in %s.'), sqlEditor.total_time);
     res.result += '\n\n' + msg;
-    sqlEditor.update_msg_history(true, res.result, false);
+    sqlEditor.update_msg_history(true, res.result, true);
+    sqlEditor.reset_data_store();
     if (isNotificationEnabled(sqlEditor)) {
       alertify.success(msg, sqlEditor.info_notifier_timeout);
     }
diff --git a/web/pgadmin/static/js/sqleditor/query_tool_actions.js b/web/pgadmin/static/js/sqleditor/query_tool_actions.js
index 7739e9b5..e5cf8a36 100644
--- a/web/pgadmin/static/js/sqleditor/query_tool_actions.js
+++ b/web/pgadmin/static/js/sqleditor/query_tool_actions.js
@@ -153,6 +153,11 @@ let queryToolActions = {
     sqlEditorController.special_sql = 'ROLLBACK;';
     self.executeQuery(sqlEditorController);
   },
+
+  saveDataChanges: function (sqlEditorController) {
+    sqlEditorController.close_on_save = false;
+    sqlEditorController.save_data();
+  },
 };
 
 module.exports = queryToolActions;
diff --git a/web/pgadmin/static/js/sqleditor/query_tool_preferences.js b/web/pgadmin/static/js/sqleditor/query_tool_preferences.js
index c3906aaa..abceb099 100644
--- a/web/pgadmin/static/js/sqleditor/query_tool_preferences.js
+++ b/web/pgadmin/static/js/sqleditor/query_tool_preferences.js
@@ -29,7 +29,7 @@ function updateUIPreferences(sqlEditor) {
     .attr('title', shortcut_accesskey_title('Open File',preferences.btn_open_file))
     .attr('accesskey', shortcut_key(preferences.btn_open_file));
 
-  $el.find('#btn-save')
+  $el.find('#btn-save-file')
     .attr('title', shortcut_accesskey_title('Save File',preferences.btn_save_file))
     .attr('accesskey', shortcut_key(preferences.btn_save_file));
 
@@ -97,6 +97,10 @@ function updateUIPreferences(sqlEditor) {
     .attr('title',
       shortcut_title('Download as CSV',preferences.download_csv));
 
+  $el.find('#btn-save-data')
+    .attr('title',
+      shortcut_title('Save Data Changes',preferences.save_data));
+
   $el.find('#btn-commit')
     .attr('title',
       shortcut_title('Commit',preferences.commit_transaction));
diff --git a/web/pgadmin/static/scss/_alertify.overrides.scss b/web/pgadmin/static/scss/_alertify.overrides.scss
index 413e09e7..d43becd5 100644
--- a/web/pgadmin/static/scss/_alertify.overrides.scss
+++ b/web/pgadmin/static/scss/_alertify.overrides.scss
@@ -56,7 +56,7 @@
     bottom: $footer-height-calc !important;
   }
   .ajs-wrap-text {
-    word-break: break-all;
+    word-break: normal;
     word-wrap: break-word;
   }
   /* Removes padding from alertify footer */
diff --git a/web/pgadmin/tools/datagrid/templates/datagrid/index.html b/web/pgadmin/tools/datagrid/templates/datagrid/index.html
index f138b9a4..9468eb3e 100644
--- a/web/pgadmin/tools/datagrid/templates/datagrid/index.html
+++ b/web/pgadmin/tools/datagrid/templates/datagrid/index.html
@@ -21,7 +21,7 @@
                         tabindex="0">
                     <i class="fa fa-folder-open-o sql-icon-lg" aria-hidden="true"></i>
                 </button>
-                <button id="btn-save" type="button" class="btn btn-sm btn-secondary"
+                <button id="btn-save-file" type="button" class="btn btn-sm btn-secondary"
                         title=""
                         accesskey=""
                         disabled>
@@ -44,6 +44,14 @@
                     </li>
                 </ul>
             </div>
+            <div class="btn-group mr-1" role="group" aria-label="">
+                <button id="btn-save-data" type="button" class="btn btn-sm btn-secondary"
+                        title=""
+                        accesskey=""
+                        tabindex="0" disabled>
+                    <i class="icon-save-data-changes sql-icon-lg" aria-hidden="true"></i>
+                </button>
+            </div>
             <div class="btn-group mr-1" role="group" aria-label="">
                 <button id="btn-find" type="button" class="btn btn-sm btn-secondary" title="{{ _('Find (Ctrl/Cmd+F)') }}">
                     <i class="fa fa-search sql-icon-lg" aria-hidden="true" tabindex="0"></i>
diff --git a/web/pgadmin/tools/sqleditor/__init__.py b/web/pgadmin/tools/sqleditor/__init__.py
index ac923a55..067bff7b 100644
--- a/web/pgadmin/tools/sqleditor/__init__.py
+++ b/web/pgadmin/tools/sqleditor/__init__.py
@@ -385,6 +385,8 @@ def poll(trans_id):
     rset = None
     has_oids = False
     oids = None
+    additional_messages = None
+    notifies = None
 
     # Check the transaction and connection status
     status, error_msg, conn, trans_obj, session_obj = \
@@ -423,6 +425,22 @@ def poll(trans_id):
 
             st, result = conn.async_fetchmany_2darray(ON_DEMAND_RECORD_COUNT)
 
+            # There may be additional messages even if result is present
+            # eg: Function can provide result as well as RAISE messages
+            messages = conn.messages()
+            if messages:
+                additional_messages = ''.join(messages)
+            notifies = conn.get_notifies()
+
+            # Procedure/Function output may comes in the form of Notices
+            # from the database server, so we need to append those outputs
+            # with the original result.
+            if result is None:
+                result = conn.status_message()
+                if (result != 'SELECT 1' or result != 'SELECT 0') and \
+                   result is not None and additional_messages:
+                    result = additional_messages + result
+
             if st:
                 if 'primary_keys' in session_obj:
                     primary_keys = session_obj['primary_keys']
@@ -439,10 +457,22 @@ def poll(trans_id):
                 )
                 session_obj['client_primary_key'] = client_primary_key
 
-                if columns_info is not None:
+                # If trans_obj is a QueryToolCommand then check for updatable
+                # resultsets and primary keys
+                if isinstance(trans_obj, QueryToolCommand):
+                    trans_obj.check_updatable_results_pkeys()
+                    pk_names, primary_keys = trans_obj.get_primary_keys()
+                    # If primary_keys exist, add them to the session_obj to
+                    # allow for saving any changes to the data
+                    if primary_keys is not None:
+                        session_obj['primary_keys'] = primary_keys
 
-                    command_obj = pickle.loads(session_obj['command_obj'])
-                    if hasattr(command_obj, 'obj_id'):
+                if columns_info is not None:
+                    # If it is a QueryToolCommand that has obj_id attribute
+                    # then it should also be editable
+                    if hasattr(trans_obj, 'obj_id') and \
+                        (not isinstance(trans_obj, QueryToolCommand) or
+                         trans_obj.can_edit()):
                         # Get the template path for the column
                         template_path = 'columns/sql/#{0}#'.format(
                             conn.manager.version
@@ -450,7 +480,7 @@ def poll(trans_id):
 
                         SQL = render_template(
                             "/".join([template_path, 'nodes.sql']),
-                            tid=command_obj.obj_id,
+                            tid=trans_obj.obj_id,
                             has_oids=True
                         )
                         # rows with attribute not_null
@@ -525,26 +555,8 @@ def poll(trans_id):
         status = 'NotConnected'
         result = error_msg
 
-    # There may be additional messages even if result is present
-    # eg: Function can provide result as well as RAISE messages
-    additional_messages = None
-    notifies = None
-    if status == 'Success':
-        messages = conn.messages()
-        if messages:
-            additional_messages = ''.join(messages)
-        notifies = conn.get_notifies()
-
-    # Procedure/Function output may comes in the form of Notices from the
-    # database server, so we need to append those outputs with the
-    # original result.
-    if status == 'Success' and result is None:
-        result = conn.status_message()
-        if (result != 'SELECT 1' or result != 'SELECT 0') and \
-           result is not None and additional_messages:
-            result = additional_messages + result
-
     transaction_status = conn.transaction_status()
+
     return make_json_response(
         data={
             'status': status, 'result': result,
@@ -733,7 +745,8 @@ def save(trans_id):
        trans_obj is not None and session_obj is not None:
 
         # If there is no primary key found then return from the function.
-        if (len(session_obj['primary_keys']) <= 0 or
+        if ('primary_keys' not in session_obj or
+           len(session_obj['primary_keys']) <= 0 or
            len(changed_data) <= 0) and \
            'has_oids' not in session_obj:
             return make_json_response(
@@ -746,32 +759,38 @@ def save(trans_id):
 
         manager = get_driver(
             PG_DEFAULT_DRIVER).connection_manager(trans_obj.sid)
-        default_conn = manager.connection(did=trans_obj.did)
+        if hasattr(trans_obj, 'conn_id'):
+            conn = manager.connection(did=trans_obj.did,
+                                      conn_id=trans_obj.conn_id)
+        else:
+            conn = manager.connection(did=trans_obj.did)  # default connection
 
         # Connect to the Server if not connected.
-        if not default_conn.connected():
-            status, msg = default_conn.connect()
+        if not conn.connected():
+            status, msg = conn.connect()
             if not status:
                 return make_json_response(
                     data={'status': status, 'result': u"{}".format(msg)}
                 )
-
-        status, res, query_res, _rowid = trans_obj.save(
+        status, res, query_res, _rowid, is_commit_required = trans_obj.save(
             changed_data,
             session_obj['columns_info'],
             session_obj['client_primary_key'],
-            default_conn)
+            conn)
     else:
         status = False
         res = error_msg
         query_res = None
+        _rowid = None
+        is_commit_required = None
 
     return make_json_response(
         data={
             'status': status,
             'result': res,
             'query_result': query_res,
-            '_rowid': _rowid
+            '_rowid': _rowid,
+            'is_commit_required': is_commit_required
         }
     )
 
diff --git a/web/pgadmin/tools/sqleditor/command.py b/web/pgadmin/tools/sqleditor/command.py
index a06c2c7f..08f02310 100644
--- a/web/pgadmin/tools/sqleditor/command.py
+++ b/web/pgadmin/tools/sqleditor/command.py
@@ -19,6 +19,10 @@ from flask import render_template
 from flask_babelex import gettext
 from pgadmin.utils.ajax import forbidden
 from pgadmin.utils.driver import get_driver
+from pgadmin.tools.sqleditor.utils.constant_definition import ASYNC_OK
+from pgadmin.tools.sqleditor.utils.is_query_resultset_updatable \
+    import is_query_resultset_updatable
+from pgadmin.tools.sqleditor.utils.save_changed_data import save_changed_data
 
 from config import PG_DEFAULT_DRIVER
 
@@ -668,269 +672,11 @@ class TableCommand(GridCommand):
         else:
             conn = default_conn
 
-        status = False
-        res = None
-        query_res = dict()
-        count = 0
-        list_of_rowid = []
-        operations = ('added', 'updated', 'deleted')
-        list_of_sql = {}
-        _rowid = None
-
-        pgadmin_alias = {
-            col_name: col_info['pgadmin_alias']
-            for col_name, col_info in columns_info
-            .items()
-        }
-        if conn.connected():
-
-            # Start the transaction
-            conn.execute_void('BEGIN;')
-
-            # Iterate total number of records to be updated/inserted
-            for of_type in changed_data:
-                # No need to go further if its not add/update/delete operation
-                if of_type not in operations:
-                    continue
-                # if no data to be save then continue
-                if len(changed_data[of_type]) < 1:
-                    continue
-
-                column_type = {}
-                column_data = {}
-                for each_col in columns_info:
-                    if (
-                        columns_info[each_col]['not_null'] and
-                        not columns_info[each_col]['has_default_val']
-                    ):
-                        column_data[each_col] = None
-                        column_type[each_col] =\
-                            columns_info[each_col]['type_name']
-                    else:
-                        column_type[each_col] = \
-                            columns_info[each_col]['type_name']
-
-                # For newly added rows
-                if of_type == 'added':
-                    # Python dict does not honour the inserted item order
-                    # So to insert data in the order, we need to make ordered
-                    # list of added index We don't need this mechanism in
-                    # updated/deleted rows as it does not matter in
-                    # those operations
-                    added_index = OrderedDict(
-                        sorted(
-                            changed_data['added_index'].items(),
-                            key=lambda x: int(x[0])
-                        )
-                    )
-                    list_of_sql[of_type] = []
-
-                    # When new rows are added, only changed columns data is
-                    # sent from client side. But if column is not_null and has
-                    # no_default_value, set column to blank, instead
-                    # of not null which is set by default.
-                    column_data = {}
-                    pk_names, primary_keys = self.get_primary_keys()
-                    has_oids = 'oid' in column_type
-
-                    for each_row in added_index:
-                        # Get the row index to match with the added rows
-                        # dict key
-                        tmp_row_index = added_index[each_row]
-                        data = changed_data[of_type][tmp_row_index]['data']
-                        # Remove our unique tracking key
-                        data.pop(client_primary_key, None)
-                        data.pop('is_row_copied', None)
-                        list_of_rowid.append(data.get(client_primary_key))
-
-                        # Update columns value with columns having
-                        # not_null=False and has no default value
-                        column_data.update(data)
-
-                        sql = render_template(
-                            "/".join([self.sql_path, 'insert.sql']),
-                            data_to_be_saved=column_data,
-                            pgadmin_alias=pgadmin_alias,
-                            primary_keys=None,
-                            object_name=self.object_name,
-                            nsp_name=self.nsp_name,
-                            data_type=column_type,
-                            pk_names=pk_names,
-                            has_oids=has_oids
-                        )
-
-                        select_sql = render_template(
-                            "/".join([self.sql_path, 'select.sql']),
-                            object_name=self.object_name,
-                            nsp_name=self.nsp_name,
-                            primary_keys=primary_keys,
-                            has_oids=has_oids
-                        )
-
-                        list_of_sql[of_type].append({
-                            'sql': sql, 'data': data,
-                            'client_row': tmp_row_index,
-                            'select_sql': select_sql
-                        })
-                        # Reset column data
-                        column_data = {}
-
-                # For updated rows
-                elif of_type == 'updated':
-                    list_of_sql[of_type] = []
-                    for each_row in changed_data[of_type]:
-                        data = changed_data[of_type][each_row]['data']
-                        pk_escaped = {
-                            pk: pk_val.replace('%', '%%') if hasattr(
-                                pk_val, 'replace') else pk_val
-                            for pk, pk_val in
-                            changed_data[of_type][each_row]['primary_keys']
-                            .items()
-                        }
-                        sql = render_template(
-                            "/".join([self.sql_path, 'update.sql']),
-                            data_to_be_saved=data,
-                            pgadmin_alias=pgadmin_alias,
-                            primary_keys=pk_escaped,
-                            object_name=self.object_name,
-                            nsp_name=self.nsp_name,
-                            data_type=column_type
-                        )
-                        list_of_sql[of_type].append({'sql': sql, 'data': data})
-                        list_of_rowid.append(data.get(client_primary_key))
-
-                # For deleted rows
-                elif of_type == 'deleted':
-                    list_of_sql[of_type] = []
-                    is_first = True
-                    rows_to_delete = []
-                    keys = None
-                    no_of_keys = None
-                    for each_row in changed_data[of_type]:
-                        rows_to_delete.append(changed_data[of_type][each_row])
-                        # Fetch the keys for SQL generation
-                        if is_first:
-                            # We need to covert dict_keys to normal list in
-                            # Python3
-                            # In Python2, it's already a list & We will also
-                            # fetch column names using index
-                            keys = list(
-                                changed_data[of_type][each_row].keys()
-                            )
-                            no_of_keys = len(keys)
-                            is_first = False
-                    # Map index with column name for each row
-                    for row in rows_to_delete:
-                        for k, v in row.items():
-                            # Set primary key with label & delete index based
-                            # mapped key
-                            try:
-                                row[changed_data['columns']
-                                    [int(k)]['name']] = v
-                            except ValueError:
-                                continue
-                            del row[k]
-
-                    sql = render_template(
-                        "/".join([self.sql_path, 'delete.sql']),
-                        data=rows_to_delete,
-                        primary_key_labels=keys,
-                        no_of_keys=no_of_keys,
-                        object_name=self.object_name,
-                        nsp_name=self.nsp_name
-                    )
-                    list_of_sql[of_type].append({'sql': sql, 'data': {}})
-
-            for opr, sqls in list_of_sql.items():
-                for item in sqls:
-                    if item['sql']:
-                        item['data'] = {
-                            pgadmin_alias[k] if k in pgadmin_alias else k: v
-                            for k, v in item['data'].items()
-                        }
-
-                        row_added = None
-
-                        def failure_handle():
-                            conn.execute_void('ROLLBACK;')
-                            # If we roll backed every thing then update the
-                            # message for each sql query.
-                            for val in query_res:
-                                if query_res[val]['status']:
-                                    query_res[val]['result'] = \
-                                        'Transaction ROLLBACK'
-
-                            # If list is empty set rowid to 1
-                            try:
-                                if list_of_rowid:
-                                    _rowid = list_of_rowid[count]
-                                else:
-                                    _rowid = 1
-                            except Exception:
-                                _rowid = 0
-
-                            return status, res, query_res, _rowid
-
-                        try:
-                            # Fetch oids/primary keys
-                            if 'select_sql' in item and item['select_sql']:
-                                status, res = conn.execute_dict(
-                                    item['sql'], item['data'])
-                            else:
-                                status, res = conn.execute_void(
-                                    item['sql'], item['data'])
-                        except Exception as _:
-                            failure_handle()
-                            raise
-
-                        if not status:
-                            return failure_handle()
-
-                        # Select added row from the table
-                        if 'select_sql' in item:
-                            status, sel_res = conn.execute_dict(
-                                item['select_sql'], res['rows'][0])
-
-                            if not status:
-                                conn.execute_void('ROLLBACK;')
-                                # If we roll backed every thing then update
-                                # the message for each sql query.
-                                for val in query_res:
-                                    if query_res[val]['status']:
-                                        query_res[val]['result'] = \
-                                            'Transaction ROLLBACK'
-
-                                # If list is empty set rowid to 1
-                                try:
-                                    if list_of_rowid:
-                                        _rowid = list_of_rowid[count]
-                                    else:
-                                        _rowid = 1
-                                except Exception:
-                                    _rowid = 0
-
-                                return status, sel_res, query_res, _rowid
-
-                            if 'rows' in sel_res and len(sel_res['rows']) > 0:
-                                row_added = {
-                                    item['client_row']: sel_res['rows'][0]}
-
-                        rows_affected = conn.rows_affected()
-
-                        # store the result of each query in dictionary
-                        query_res[count] = {
-                            'status': status,
-                            'result': None if row_added else res,
-                            'sql': sql, 'rows_affected': rows_affected,
-                            'row_added': row_added
-                        }
-
-                        count += 1
-
-            # Commit the transaction if there is no error found
-            conn.execute_void('COMMIT;')
-
-        return status, res, query_res, _rowid
+        return save_changed_data(changed_data=changed_data,
+                                 columns_info=columns_info,
+                                 command_obj=self,
+                                 client_primary_key=client_primary_key,
+                                 conn=conn)

 class ViewCommand(GridCommand):
@@ -1114,18 +860,88 @@ class QueryToolCommand(BaseCommand, FetchedRowTracker):
         self.auto_rollback = False
         self.auto_commit = True
 
+        # Attributes needed to be able to edit updatable resultselts
+        self.is_updatable_resultset = False
+        self.primary_keys = None
+        self.pk_names = None
+
     def get_sql(self, default_conn=None):
         return None
 
     def get_all_columns_with_order(self, default_conn=None):
         return None
 
+    def get_primary_keys(self):
+        return self.pk_names, self.primary_keys
+
     def can_edit(self):
-        return False
+        return self.is_updatable_resultset
 
     def can_filter(self):
         return False
 
+    def check_updatable_results_pkeys(self):
+        """
+            This function is used to check whether the last successful query
+            produced updatable results and sets the necessary flags and
+            attributes accordingly
+        """
+        # Fetch the connection object
+        driver = get_driver(PG_DEFAULT_DRIVER)
+        manager = driver.connection_manager(self.sid)
+        conn = manager.connection(did=self.did, conn_id=self.conn_id)
+
+        # Check that the query results are ready first
+        status, result = conn.poll(
+            formatted_exception_msg=True, no_result=True)
+        if status != ASYNC_OK:
+            return
+
+        # Get the path to the sql templates
+        sql_path = 'sqleditor/sql/#{0}#'.format(manager.version)
+
+        self.is_updatable_resultset, self.primary_keys, pk_names, table_oid = \
+            is_query_resultset_updatable(conn, sql_path)
+
+        # Create pk_names attribute in the required format
+        if pk_names is not None:
+            self.pk_names = ''
+
+            for pk_name in pk_names:
+                self.pk_names += driver.qtIdent(conn, pk_name) + ','
+
+            if self.pk_names != '':
+                # Remove last character from the string
+                self.pk_names = self.pk_names[:-1]
+
+        # Add attributes required to be able to update table data
+        if self.is_updatable_resultset:
+            self.__set_updatable_results_attrs(sql_path=sql_path,
+                                               table_oid=table_oid,
+                                               conn=conn)
+
+    def save(self,
+             changed_data,
+             columns_info,
+             client_primary_key='__temp_PK',
+             default_conn=None):
+        if not self.is_updatable_resultset:
+            return False, gettext('Resultset is not updatable.'), None, None
+        else:
+            driver = get_driver(PG_DEFAULT_DRIVER)
+            if default_conn is None:
+                manager = driver.connection_manager(self.sid)
+                conn = manager.connection(did=self.did, conn_id=self.conn_id)
+            else:
+                conn = default_conn
+
+            return save_changed_data(changed_data=changed_data,
+                                     columns_info=columns_info,
+                                     conn=conn,
+                                     command_obj=self,
+                                     client_primary_key=client_primary_key,
+                                     auto_commit=self.auto_commit)
+
     def set_connection_id(self, conn_id):
         self.conn_id = conn_id
 
@@ -1134,3 +950,28 @@ class QueryToolCommand(BaseCommand, FetchedRowTracker):
 
     def set_auto_commit(self, auto_commit):
         self.auto_commit = auto_commit
+
+    def __set_updatable_results_attrs(self, sql_path,
+                                      table_oid, conn):
+        # Set template path for sql scripts and the table object id
+        self.sql_path = sql_path
+        self.obj_id = table_oid
+
+        if conn.connected():
+            # Fetch the Namespace Name and object Name
+            query = render_template(
+                "/".join([self.sql_path, 'objectname.sql']),
+                obj_id=self.obj_id
+            )
+
+            status, result = conn.execute_dict(query)
+            if not status:
+                raise Exception(result)
+
+            self.nsp_name = result['rows'][0]['nspname']
+            self.object_name = result['rows'][0]['relname']
+        else:
+            raise Exception(gettext(
+                'Not connected to server or connection with the server '
+                'has been closed.')
+            )
diff --git a/web/pgadmin/tools/sqleditor/static/css/sqleditor.css b/web/pgadmin/tools/sqleditor/static/css/sqleditor.css
index 86d3defc..21448327 100644
--- a/web/pgadmin/tools/sqleditor/static/css/sqleditor.css
+++ b/web/pgadmin/tools/sqleditor/static/css/sqleditor.css
@@ -291,7 +291,7 @@ input.editor-checkbox:focus {
   background-image: url('../img/disconnect.svg');
 }
 
-.icon-commit, .icon-rollback {
+.icon-commit, .icon-rollback, .icon-save-data-changes {
   display: inline-block;
   align-content: center;
   vertical-align: middle;
@@ -311,6 +311,10 @@ input.editor-checkbox:focus {
   background-image: url('../img/rollback.svg') !important;
 }
 
+.icon-save-data-changes {
+  background-image: url('../img/save_data_changes.svg') !important;
+}
+
 .ajs-body .warn-header {
   font-size: 13px;
   font-weight: bold;
diff --git a/web/pgadmin/tools/sqleditor/static/img/save_data_changes.svg b/web/pgadmin/tools/sqleditor/static/img/save_data_changes.svg
new file mode 100644
index 00000000..09ead928
--- /dev/null
+++ b/web/pgadmin/tools/sqleditor/static/img/save_data_changes.svg
@@ -0,0 +1,12 @@
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="enable-background:new 0 0 1792 1792;" xml:space="preserve" width="1792" height="1792"><rect id="backgroundrect" width="100%" height="100%" x="0" y="0" fill="none" stroke="none"/>
+<style type="text/css">
+	.st0{fill:#222222;}
+	.st1{fill:#FFFFFF;}
+</style>
+<title>save_data_changes</title>
+
+
+<g class="currentLayer" style=""><title>Layer 1</title><path class="st0 selected" d="M614.0211181640625,1381.039882183075 v-170.18182373046875 c0,-8.243182182312012 -2.6703295707702637,-15.068181991577148 -8.01098918914795,-20.386363983154297 s-12.19450569152832,-7.9772725105285645 -20.4725284576416,-7.9772725105285645 H300.70343017578125 c-8.278021812438965,0 -15.131868362426758,2.659090995788574 -20.4725284576416,7.9772725105285645 s-8.01098918914795,12.143181800842285 -8.01098918914795,20.386363983154297 v170.18182373046875 c0,8.243182182312012 2.6703295707702637,15.068181991577148 8.01098918914795,20.386363983154297 s12.19450569152832,7.9772725105285645 20.4725284576416,7.9772725105285645 h284.8351745605469 c8.278021812438965,0 15.131868362426758,-2.659090995788574 20.4725284576416,-7.9772725105285645 S614.0211181640625,1389.2831683158875 614.0211181640625,1381.039882183075 zM614.0211181640625,1040.6748919487 V870.49276304245 c0,-8.243182182312012 -2.6703295707702637,-15.068181991577148 -8.01098918914795,-20.386363983154297 s-12.19450569152832,-7.9772725105285645 -20.4725284576416,-7.9772725105285645 H300.70343017578125 c-8.278021812438965,0 -15.131868362426758,2.659090995788574 -20.4725284576416,7.9772725105285645 s-8.01098918914795,12.143181800842285 -8.01098918914795,20.386363983154297 v170.18182373046875 c0,8.243182182312012 2.6703295707702637,15.068181991577148 8.01098918914795,20.386363983154297 s12.19450569152832,7.9772725105285645 20.4725284576416,7.9772725105285645 h284.8351745605469 c8.278021812438965,0 15.131868362426758,-2.659090995788574 20.4725284576416,-7.9772725105285645 S614.0211181640625,1048.918300151825 614.0211181640625,1040.6748919487 zM1069.7584228515625,1381.039882183075 v-170.18182373046875 c0,-8.243182182312012 -2.6703295707702637,-15.068181991577148 -8.01098918914795,-20.386363983154297 s-12.19450569152832,-7.9772725105285645 -20.4725284576416,-7.9772725105285645 H756.438720703125 c-8.278021812438965,0 -15.131868362426758,2.659090995788574 -20.4725284576416,7.9772725105285645 s-8.01098918914795,12.143181800842285 -8.01098918914795,20.386363983154297 v170.18182373046875 c0,8.243182182312012 2.6703295707702637,15.068181991577148 8.01098918914795,20.386363983154297 s12.19450569152832,7.9772725105285645 20.4725284576416,7.9772725105285645 h284.8351745605469 c8.278021812438965,0 15.131868362426758,-2.659090995788574 20.4725284576416,-7.9772725105285645 S1069.7584228515625,1389.2831683158875 1069.7584228515625,1381.039882183075 zM614.0211181640625,700.3109393119812 V530.1298480033875 c0,-8.243182182312012 -2.6703295707702637,-15.068181991577148 -8.01098918914795,-20.386363983154297 s-12.19450569152832,-7.9772725105285645 -20.4725284576416,-7.9772725105285645 H300.70343017578125 c-8.278021812438965,0 -15.131868362426758,2.659090995788574 -20.4725284576416,7.9772725105285645 s-8.01098918914795,12.143181800842285 -8.01098918914795,20.386363983154297 v170.18182373046875 c0,8.243182182312012 2.6703295707702637,15.068181991577148 8.01098918914795,20.386363983154297 s12.19450569152832,7.9772725105285645 20.4725284576416,7.9772725105285645 h284.8351745605469 c8.278021812438965,0 15.131868362426758,-2.659090995788574 20.4725284576416,-7.9772725105285645 S614.0211181640625,708.5541033744812 614.0211181640625,700.3109393119812 zM1069.7584228515625,1040.6748919487 V870.49276304245 c0,-8.243182182312012 -2.6703295707702637,-15.068181991577148 -8.01098918914795,-20.386363983154297 s-12.19450569152832,-7.9772725105285645 -20.4725284576416,-7.9772725105285645 H756.438720703125 c-8.278021812438965,0 -15.131868362426758,2.659090995788574 -20.4725284576416,7.9772725105285645 s-8.01098918914795,12.143181800842285 -8.01098918914795,20.386363983154297 v170.18182373046875 c0,8.243182182312012 2.6703295707702637,15.068181991577148 8.01098918914795,20.386363983154297 s12.19450569152832,7.9772725105285645 20.4725284576416,7.9772725105285645 h284.8351745605469 c8.278021812438965,0 15.131868362426758,-2.659090995788574 20.4725284576416,-7.9772725105285645 S1069.7584228515625,1048.918300151825 1069.7584228515625,1040.6748919487 zM1525.49560546875,1381.039882183075 v-170.18182373046875 c0,-8.243182182312012 -2.6703295707702637,-15.068181991577148 -8.01098918914795,-20.386363983154297 s-12.19450569152832,-7.9772725105285645 -20.4725284576416,-7.9772725105285645 h-284.8351745605469 c-8.278021812438965,0 -15.131868362426758,2.659090995788574 -20.4725284576416,7.9772725105285645 s-8.01098918914795,12.143181800842285 -8.01098918914795,20.386363983154297 v170.18182373046875 c0,8.243182182312012 2.6703295707702637,15.068181991577148 8.01098918914795,20.386363983154297 s12.19450569152832,7.9772725105285645 20.4725284576416,7.9772725105285645 h284.8351745605469 c8.278021812438965,0 15.131868362426758,-2.659090995788574 20.4725284576416,-7.9772725105285645 S1525.49560546875,1389.2831683158875 1525.49560546875,1381.039882183075 zM1069.7584228515625,700.3109393119812 V530.1298480033875 c0,-8.243182182312012 -2.6703295707702637,-15.068181991577148 -8.01098918914795,-20.386363983154297 s-12.19450569152832,-7.9772725105285645 -20.4725284576416,-7.9772725105285645 H756.438720703125 c-8.278021812438965,0 -15.131868362426758,2.659090995788574 -20.4725284576416,7.9772725105285645 s-8.01098918914795,12.143181800842285 -8.01098918914795,20.386363983154297 v170.18182373046875 c0,8.243182182312012 2.6703295707702637,15.068181991577148 8.01098918914795,20.386363983154297 s12.19450569152832,7.9772725105285645 20.4725284576416,7.9772725105285645 h284.8351745605469 c8.278021812438965,0 15.131868362426758,-2.659090995788574 20.4725284576416,-7.9772725105285645 S1069.7584228515625,708.5541033744812 1069.7584228515625,700.3109393119812 zM1525.49560546875,1040.6748919487 V870.49276304245 c0,-8.243182182312012 -2.6703295707702637,-15.068181991577148 -8.01098918914795,-20.386363983154297 s-12.19450569152832,-7.9772725105285645 -20.4725284576416,-7.9772725105285645 h-284.8351745605469 c-8.278021812438965,0 -15.131868362426758,2.659090995788574 -20.4725284576416,7.9772725105285645 s-8.01098918914795,12.143181800842285 -8.01098918914795,20.386363983154297 v170.18182373046875 c0,8.243182182312012 2.6703295707702637,15.068181991577148 8.01098918914795,20.386363983154297 s12.19450569152832,7.9772725105285645 20.4725284576416,7.9772725105285645 h284.8351745605469 c8.278021812438965,0 15.131868362426758,-2.659090995788574 20.4725284576416,-7.9772725105285645 S1525.49560546875,1048.918300151825 1525.49560546875,1040.6748919487 zM1525.49560546875,700.3109393119812 V530.1298480033875 c0,-8.243182182312012 -2.6703295707702637,-15.068181991577148 -8.01098918914795,-20.386363983154297 s-12.19450569152832,-7.9772725105285645 -20.4725284576416,-7.9772725105285645 h-284.8351745605469 c-8.278021812438965,0 -15.131868362426758,2.659090995788574 -20.4725284576416,7.9772725105285645 s-8.01098918914795,12.143181800842285 -8.01098918914795,20.386363983154297 v170.18182373046875 c0,8.243182182312012 2.6703295707702637,15.068181991577148 8.01098918914795,20.386363983154297 s12.19450569152832,7.9772725105285645 20.4725284576416,7.9772725105285645 h284.8351745605469 c8.278021812438965,0 15.131868362426758,-2.659090995788574 20.4725284576416,-7.9772725105285645 S1525.49560546875,708.5541033744812 1525.49560546875,700.3109393119812 zM1639.4296875,416.6754412651062 v964.3636474609375 c0,39 -13.974724769592285,72.41590881347656 -41.835166931152344,100.15908813476562 s-61.41758346557617,41.65909194946289 -100.5824203491211,41.65909194946289 H300.70343017578125 c-39.16483688354492,0 -72.72197723388672,-13.915908813476562 -100.5824203491211,-41.65909194946289 s-41.835166931152344,-61.15909194946289 -41.835166931152344,-100.15908813476562 V416.6754412651062 c0,-39 13.974724769592285,-72.41590881347656 41.835166931152344,-100.15908813476562 s61.41758346557617,-41.65909194946289 100.5824203491211,-41.65909194946289 h1196.3077392578125 c39.16483688354492,0 72.72197723388672,13.915908813476562 100.5824203491211,41.65909194946289 S1639.4296875,377.6754412651062 1639.4296875,416.6754412651062 z" id="svg_1"/><g id="svg_2" class="selected">
+	<path class="st0" d="M898.8562622070312,1342.7491106987 c-22.69780158996582,0 -43.081321716308594,-8.331817626953125 -58.92527389526367,-24.19772720336914 l-289.4637451171875,-288.6886291503906 c-16.378021240234375,-15.51136302947998 -25.012088775634766,-35.897727966308594 -25.012088775634766,-58.943180084228516 c0,-22.868181228637695 8.278021812438965,-42.72272872924805 24.656044006347656,-59.03181457519531 l32.84505844116211,-33.150001525878906 c0.17802198231220245,-0.1772727221250534 0.44505494832992554,-0.4431818127632141 0.6230769157409668,-0.6204545497894287 c16.46703338623047,-15.51136302947998 36.761539459228516,-23.665908813476562 58.83626174926758,-23.665908813476562 c22.69780158996582,0 43.081321716308594,8.331817626953125 58.92527389526367,24.19772720336914 l85.27252960205078,84.91363525390625 V715.5564227104187 c0,-22.247726440429688 8.545055389404297,-42.54545593261719 24.745054244995117,-58.677268981933594 s36.58351516723633,-24.640907287597656 58.92527389526367,-24.640907287597656 h56.96703338623047 c22.341758728027344,0 42.72527313232422,8.5090913772583 58.92527389526367,24.640907287597656 s24.745054244995117,36.429542541503906 24.745054244995117,58.677268981933594 v247.8272705078125 l85.27252960205078,-84.91363525390625 c15.932967185974121,-15.8659086227417 36.227474212646484,-24.19772720336914 58.92527389526367,-24.19772720336914 c22.074724197387695,0 42.45824432373047,8.154544830322266 58.83626174926758,23.665908813476562 c0.17802198231220245,0.1772727221250534 0.3560439646244049,0.3545454442501068 0.5340659618377686,0.5318182110786438 l33.379119873046875,33.2386360168457 c0.17802198231220245,0.1772727221250534 0.3560439646244049,0.3545454442501068 0.5340659618377686,0.5318182110786438 c15.576923370361328,16.397727966308594 23.765933990478516,36.606815338134766 23.765933990478516,58.5886344909668 c0,22.602272033691406 -8.367033004760742,42.900001525878906 -24.299999237060547,58.677268981933594 l-289.73077392578125,288.95452880859375 c-0.17802198231220245,0.1772727221250534 -0.3560439646244049,0.3545454442501068 -0.5340659618377686,0.5318182110786438 C941.3145141601562,1334.5058245658875 920.9309692382812,1342.7491106987 898.8562622070312,1342.7491106987 z" id="svg_3"/>
+	<path class="st1" d="M927.3397827148438,658.8291277885437 c15.398900985717773,0 28.75054931640625,5.5840911865234375 40.05494689941406,16.84090805053711 s16.91208839416504,24.55227279663086 16.91208839416504,39.8863639831543 v312 l130.84616088867188,-130.2954559326172 c10.948351860046387,-10.902273178100586 24.299999237060547,-16.397727966308594 40.05494689941406,-16.397727966308594 c15.398900985717773,0 28.928571701049805,5.49545431137085 40.5,16.397727966308594 l33.379119873046875,33.2386360168457 c10.948351860046387,11.522727012634277 16.46703338623047,24.995454788208008 16.46703338623047,40.32954406738281 c0,15.688636779785156 -5.518681049346924,28.98409080505371 -16.46703338623047,39.8863639831543 l-289.73077392578125,288.95452880859375 c-11.571428298950195,10.902273178100586 -25.101099014282227,16.397727966308594 -40.5,16.397727966308594 c-15.754945755004883,0 -29.10659408569336,-5.49545431137085 -40.05494689941406,-16.397727966308594 l-289.73077392578125,-288.95452880859375 c-11.30439567565918,-10.636363983154297 -16.91208839416504,-23.93181800842285 -16.91208839416504,-39.8863639831543 c0,-15.688636779785156 5.607692718505859,-29.072725296020508 16.91208839416504,-40.32954406738281 l32.93406677246094,-33.2386360168457 c11.571428298950195,-10.902273178100586 25.101099014282227,-16.397727966308594 40.5,-16.397727966308594 c15.754945755004883,0 29.10659408569336,5.49545431137085 40.05494689941406,16.397727966308594 l130.84616088867188,130.2954559326172 v-312 c0,-15.334090232849121 5.607692718505859,-28.629545211791992 16.91208839416504,-39.8863639831543 s24.656044006347656,-16.84090805053711 40.05494689941406,-16.84090805053711 L927.3397827148438,658.8291277885437 M927.3397827148438,605.647304058075 h-56.96703338623047 c-29.64065933227539,0 -56.52198028564453,11.168182373046875 -77.79560852050781,32.4409065246582 c-21.36263656616211,21.272727966308594 -32.57802200317383,48.04090881347656 -32.57802200317383,77.46818542480469 v183.56591796875 l-39.69889831542969,-39.53181457519531 c-21.006593704223633,-20.918182373046875 -47.88791275024414,-31.997726440429688 -77.79560852050781,-31.997726440429688 c-29.017581939697266,0 -55.72087860107422,10.725000381469727 -77.17252349853516,30.934091567993164 c-0.44505494832992554,0.4431818127632141 -0.8901098966598511,0.8863636255264282 -1.3351647853851318,1.2409090995788574 l-32.84505844116211,33.150001525878906 c-21.184614181518555,21.18408966064453 -32.400001525878906,48.04090881347656 -32.400001525878906,77.8227310180664 c0,30.402271270751953 11.393406867980957,57.259090423583984 33.023075103759766,77.91136169433594 l289.28570556640625,288.5113525390625 c21.006593704223633,20.918182373046875 47.976924896240234,31.997726440429688 77.88461303710938,31.997726440429688 c29.017581939697266,0 55.72087860107422,-10.725000381469727 77.17252349853516,-30.934091567993164 c0.3560439646244049,-0.3545454442501068 0.7120879292488098,-0.7090908885002136 1.068131923675537,-1.0636364221572876 l289.73077392578125,-288.95452880859375 c21.006593704223633,-20.918182373046875 32.0439567565918,-47.686363220214844 32.0439567565918,-77.46818542480469 c0,-28.89545249938965 -10.770330429077148,-55.48636245727539 -31.064836502075195,-76.84772491455078 c-0.3560439646244049,-0.3545454442501068 -0.7120879292488098,-0.7090908885002136 -1.068131923675537,-1.0636364221572876 l-33.379119873046875,-33.2386360168457 c-0.3560439646244049,-0.3545454442501068 -0.7120879292488098,-0.7090908885002136 -1.068131923675537,-1.0636364221572876 c-21.451648712158203,-20.209089279174805 -48.154945373535156,-30.934091567993164 -77.17252349853516,-30.934091567993164 c-29.907691955566406,0 -56.78900909423828,11.079545021057129 -77.79560852050781,31.997726440429688 l-39.69889831542969,39.53181457519531 V715.5564227104187 c0,-29.515907287597656 -11.215385437011719,-56.28409194946289 -32.57802200317383,-77.46818542480469 C983.8617553710938,616.904139995575 956.98046875,605.647304058075 927.3397827148438,605.647304058075 L927.3397827148438,605.647304058075 z" id="svg_4"/>
+</g></g></svg>
\ No newline at end of file
diff --git a/web/pgadmin/tools/sqleditor/static/js/sqleditor.js b/web/pgadmin/tools/sqleditor/static/js/sqleditor.js
index 8bf041f6..f8110ed6 100644
--- a/web/pgadmin/tools/sqleditor/static/js/sqleditor.js
+++ b/web/pgadmin/tools/sqleditor/static/js/sqleditor.js
@@ -86,8 +86,8 @@ define('tools.querytool', [
     // Bind all the events
     events: {
       'click .btn-load-file': 'on_file_load',
-      'click #btn-save': 'on_save',
-      'click #btn-file-menu-save': 'on_save',
+      'click #btn-save-file': 'on_save_file',
+      'click #btn-file-menu-save': 'on_save_file',
       'click #btn-file-menu-save-as': 'on_save_as',
       'click #btn-find': 'on_find',
       'click #btn-find-menu-find': 'on_find',
@@ -98,6 +98,7 @@ define('tools.querytool', [
       'click #btn-find-menu-find-persistent': 'on_find_persistent',
       'click #btn-find-menu-jump': 'on_jump',
       'click #btn-delete-row': 'on_delete',
+      'click #btn-save-data': 'on_save_data',
       'click #btn-filter': 'on_show_filter',
       'click #btn-filter-menu': 'on_show_filter',
       'click #btn-include-filter': 'on_include_filter',
@@ -375,26 +376,7 @@ define('tools.querytool', [
         _.each(window.top.pgAdmin.Browser.docker.findPanels('frm_datagrid'), function(p) {
           if (p.isVisible()) {
             p.on(wcDocker.EVENT.CLOSING, function() {
-              // Only if we can edit data then perform this check
-              var notify = false,
-                msg;
-              if (self.handler.can_edit
-                  && self.preferences.prompt_save_data_changes) {
-                var data_store = self.handler.data_store;
-                if (data_store && (_.size(data_store.added) ||
-                    _.size(data_store.updated))) {
-                  msg = gettext('The data has changed. Do you want to save changes?');
-                  notify = true;
-                }
-              } else if (self.handler.is_query_tool && self.handler.is_query_changed
-                         && self.preferences.prompt_save_query_changes) {
-                msg = gettext('The text has changed. Do you want to save changes?');
-                notify = true;
-              }
-              if (notify) {
-                return self.user_confirmation(p, msg);
-              }
-              return true;
+              return self.handler.check_needed_confirmations_before_closing_panel(true);
             });
 
             // Set focus on query tool of active panel
@@ -638,62 +620,6 @@ define('tools.querytool', [
       }
     },
 
-    /* To prompt user for unsaved changes */
-    user_confirmation: function(panel, msg) {
-      // If there is anything to save then prompt user
-      var that = this;
-
-      alertify.confirmSave || alertify.dialog('confirmSave', function() {
-        return {
-          main: function(title, message) {
-            this.setHeader(title);
-            this.setContent(message);
-          },
-          setup: function() {
-            return {
-              buttons: [{
-                text: gettext('Cancel'),
-                key: 27, // ESC
-                invokeOnClose: true,
-                className: 'btn btn-secondary fa fa-lg fa-times pg-alertify-button',
-              }, {
-                text: gettext('Don\'t save'),
-                className: 'btn btn-secondary fa fa-lg fa-trash-o pg-alertify-button',
-              }, {
-                text: gettext('Save'),
-                className: 'btn btn-primary fa fa-lg fa-save pg-alertify-button',
-              }],
-              focus: {
-                element: 0,
-                select: false,
-              },
-              options: {
-                maximizable: false,
-                resizable: false,
-              },
-            };
-          },
-          callback: function(closeEvent) {
-            switch (closeEvent.index) {
-            case 0: // Cancel
-              //Do nothing.
-              break;
-            case 1: // Don't Save
-              that.handler.close_on_save = false;
-              that.handler.close();
-              break;
-            case 2: //Save
-              that.handler.close_on_save = true;
-              that.handler._save(that, that.handler);
-              break;
-            }
-          },
-        };
-      });
-      alertify.confirmSave(gettext('Save changes?'), msg);
-      return false;
-    },
-
     /* Regarding SlickGrid usage in render_grid function.
 
      SlickGrid Plugins:
@@ -757,16 +683,16 @@ define('tools.querytool', [
     render_grid: function(collection, columns, is_editable, client_primary_key, rows_affected) {
       var self = this;
 
-      // This will work as data store and holds all the
-      // inserted/updated/deleted data from grid
-      self.handler.data_store = {
-        updated: {},
-        added: {},
-        staged_rows: {},
-        deleted: {},
-        updated_index: {},
-        added_index: {},
-      };
+      self.handler.numberOfModifiedCells = 0;
+
+      self.handler.reset_data_store();
+
+      // keep track of newly added rows
+      self.handler.rows_to_disable = new Array();
+      // Temporarily hold new rows added
+      self.handler.temp_new_rows = new Array();
+      self.handler.has_more_rows = false;
+      self.handler.fetching_rows = false;
 
       // To store primary keys before they gets changed
       self.handler.primary_keys_data = {};
@@ -873,7 +799,7 @@ define('tools.querytool', [
       }
 
       var grid_options = {
-        editable: true,
+        editable: is_editable,
         enableAddRow: is_editable,
         enableCellNavigation: true,
         enableColumnReorder: false,
@@ -1090,6 +1016,14 @@ define('tools.querytool', [
           _pk = args.item[self.client_primary_key] || null, // Unique key to identify row
           column_data = {};
 
+        // Highlight the changed cell
+        self.handler.numberOfModifiedCells++;
+        args.grid.addCellCssStyles(self.handler.numberOfModifiedCells, {
+          [args.row] : {
+            [changed_column]: 'highlighted_grid_cells',
+          },
+        });
+
         // Access to row/cell value after a cell is changed.
         // The purpose is to remove row_id from temp_new_row
         // if new row has primary key instead of [default_value]
@@ -1145,7 +1079,7 @@ define('tools.querytool', [
           }
         }
         // Enable save button
-        $('#btn-save').prop('disabled', false);
+        $('#btn-save-data').prop('disabled', false);
       }.bind(editor_data));
 
       // Listener function which will be called when user adds new rows
@@ -1173,6 +1107,7 @@ define('tools.querytool', [
           'data': item,
         };
         self.handler.data_store.added_index[data_length] = _key;
+
         // Fetch data type & add it for the column
         var temp = {};
         temp[column.name] = _.where(this.columns, {
@@ -1181,8 +1116,17 @@ define('tools.querytool', [
         grid.updateRowCount();
         grid.render();
 
+        // Highlight the first added cell of the new row
+        var row = dataView.getRowByItem(item);
+        self.handler.numberOfModifiedCells++;
+        args.grid.addCellCssStyles(self.handler.numberOfModifiedCells, {
+          [row] : {
+            [column.field]: 'highlighted_grid_cells',
+          },
+        });
+
         // Enable save button
-        $('#btn-save').prop('disabled', false);
+        $('#btn-save-data').prop('disabled', false);
       }.bind(editor_data));
 
       // Listen grid viewportChanged event to load next chunk of data.
@@ -1231,9 +1175,11 @@ define('tools.querytool', [
       }
       dataView.setItems(collection, self.client_primary_key);
     },
+
     fetch_next_all: function(cb) {
       this.fetch_next(true, cb);
     },
+
     fetch_next: function(fetch_all, cb) {
       var self = this,
         url = '';
@@ -1433,7 +1379,7 @@ define('tools.querytool', [
     },
 
     // Callback function for Save button click.
-    on_save: function(ev) {
+    on_save_file: function(ev) {
       var self = this;
 
       this._stopEventPropogation(ev);
@@ -1442,9 +1388,7 @@ define('tools.querytool', [
       self.handler.close_on_save = false;
       // Trigger the save signal to the SqlEditorController class
       self.handler.trigger(
-        'pgadmin-sqleditor:button:save',
-        self,
-        self.handler
+        'pgadmin-sqleditor:button:save_file'
       );
     },
 
@@ -1458,7 +1402,7 @@ define('tools.querytool', [
       self.handler.close_on_save = false;
       // Trigger the save signal to the SqlEditorController class
       self.handler.trigger(
-        'pgadmin-sqleditor:button:save',
+        'pgadmin-sqleditor:button:save_file',
         self,
         self.handler,
         true
@@ -1631,6 +1575,11 @@ define('tools.querytool', [
       );
     },
 
+    // Callback function for Save Data Changes button click.
+    on_save_data: function() {
+      queryToolActions.saveDataChanges(this.handler);
+    },
+
     // Callback function for the flash button click.
     on_flash: function() {
       queryToolActions.executeQuery(this.handler);
@@ -2217,7 +2166,7 @@ define('tools.querytool', [
 
         // Listen on events come from SQLEditorView for the button clicked.
         self.on('pgadmin-sqleditor:button:load_file', self._load_file, self);
-        self.on('pgadmin-sqleditor:button:save', self._save, self);
+        self.on('pgadmin-sqleditor:button:save_file', self._save_file, self);
         self.on('pgadmin-sqleditor:button:deleterow', self._delete, self);
         self.on('pgadmin-sqleditor:button:show_filter', self._show_filter, self);
         self.on('pgadmin-sqleditor:button:include_filter', self._include_filter, self);
@@ -2278,12 +2227,6 @@ define('tools.querytool', [
         self.query_start_time = new Date();
         self.rows_affected = 0;
         self._init_polling_flags();
-        // keep track of newly added rows
-        self.rows_to_disable = new Array();
-        // Temporarily hold new rows added
-        self.temp_new_rows = new Array();
-        self.has_more_rows = false;
-        self.fetching_rows = false;
 
         self.trigger(
           'pgadmin-sqleditor:loading-icon:show',
@@ -2332,8 +2275,7 @@ define('tools.querytool', [
                 $('#btn-filter').addClass('btn-secondary');
                 $('#btn-filter-dropdown').addClass('btn-secondary');
               }
-              $('#btn-save').prop('disabled', true);
-              $('#btn-file-menu-dropdown').prop('disabled', true);
+
               $('#btn-copy-row').prop('disabled', true);
               $('#btn-paste-row').prop('disabled', true);
 
@@ -2409,13 +2351,12 @@ define('tools.querytool', [
           $('#btn-filter-dropdown').prop('disabled', false);
         }
 
+        // No data to save initially
+        $('#btn-save-data').prop('disabled', true);
+
         // Initial settings for delete row, copy row and paste row buttons.
         $('#btn-delete-row').prop('disabled', true);
-        // Do not disable save button in query tool
-        if (!self.is_query_tool && !self.can_edit) {
-          $('#btn-save').prop('disabled', true);
-          $('#btn-file-menu-dropdown').prop('disabled', true);
-        }
+
         if (!self.can_edit) {
           $('#btn-delete-row').prop('disabled', true);
           $('#btn-copy-row').prop('disabled', true);
@@ -2799,9 +2740,9 @@ define('tools.querytool', [
           if (_.size(self.data_store.added) || is_updated) {
             // Do not disable save button if there are
             // any other changes present in grid data
-            $('#btn-save').prop('disabled', false);
+            $('#btn-save-data').prop('disabled', false);
           } else {
-            $('#btn-save').prop('disabled', true);
+            $('#btn-save-data').prop('disabled', true);
           }
           alertify.success(gettext('Row(s) deleted.'));
         } else {
@@ -2830,41 +2771,42 @@ define('tools.querytool', [
           if (_.size(self.data_store.added) || is_updated || _.size(self.data_store.deleted)) {
             // Do not disable save button if there are
             // any other changes present in grid data
-            $('#btn-save').prop('disabled', false);
+            $('#btn-save-data').prop('disabled', false);
           } else {
-            $('#btn-save').prop('disabled', true);
+            $('#btn-save-data').prop('disabled', true);
           }
         }
       },
 
+      /// This function will open save file dialog conditionally.
+
+      _save_file: function(save_as=false) {
+        var self = this;
+
+        var current_file = self.gridView.current_file;
+        if (!_.isUndefined(current_file) && !save_as) {
+          self._save_file_handler(current_file);
+        } else {
+          // provide custom option to save file dialog
+          var params = {
+            'supported_types': ['*', 'sql'],
+            'dialog_type': 'create_file',
+            'dialog_title': 'Save File',
+            'btn_primary': 'Save',
+          };
+          pgAdmin.FileManager.init();
+          pgAdmin.FileManager.show_dialog(params);
+        }
+      },
+
       /* This function will fetch the list of changed models and make
        * the ajax call to save the data into the database server.
-       * and will open save file dialog conditionally.
        */
-      _save: function(view, controller, save_as) {
-        var self = this,
-          save_data = true;
+      save_data: function() {
+        var self = this;
 
-        // Open save file dialog if query tool
-        if (self.is_query_tool) {
-          var current_file = self.gridView.current_file;
-          if (!_.isUndefined(current_file) && !save_as) {
-            self._save_file_handler(current_file);
-          } else {
-            // provide custom option to save file dialog
-            var params = {
-              'supported_types': ['*', 'sql'],
-              'dialog_type': 'create_file',
-              'dialog_title': 'Save File',
-              'btn_primary': 'Save',
-            };
-            pgAdmin.FileManager.init();
-            pgAdmin.FileManager.show_dialog(params);
-          }
+        if(!self.can_edit)
           return;
-        }
-        $('#btn-save').prop('disabled', true);
-        $('#btn-file-menu-dropdown').prop('disabled', true);
 
         var is_added = _.size(self.data_store.added),
           is_updated = _.size(self.data_store.updated),
@@ -2874,154 +2816,188 @@ define('tools.querytool', [
           return; // Nothing to save here
         }
 
-        if (save_data) {
+        self.trigger(
+          'pgadmin-sqleditor:loading-icon:show',
+          gettext('Saving the updated data...')
+        );
 
-          self.trigger(
-            'pgadmin-sqleditor:loading-icon:show',
-            gettext('Saving the updated data...')
-          );
+        // Add the columns to the data so the server can remap the data
+        var req_data = self.data_store, view = self.gridView;
+        req_data.columns = view ? view.handler.columns : self.columns;
 
-          // Add the columns to the data so the server can remap the data
-          var req_data = self.data_store;
-          req_data.columns = view ? view.handler.columns : self.columns;
+        var save_successful = false;
 
-          // Make ajax call to save the data
-          $.ajax({
-            url: url_for('sqleditor.save', {
-              'trans_id': self.transId,
-            }),
-            method: 'POST',
-            contentType: 'application/json',
-            data: JSON.stringify(req_data),
-          })
-            .done(function(res) {
-              var grid = self.slickgrid,
-                dataView = grid.getData(),
-                data_length = dataView.getLength(),
-                data = [];
-
-              if (res.data.status) {
-                if(is_added) {
-                // Update the rows in a grid after addition
-                  dataView.beginUpdate();
-                  _.each(res.data.query_result, function(r) {
-                    if (!_.isNull(r.row_added)) {
-                    // Fetch temp_id returned by server after addition
-                      var row_id = Object.keys(r.row_added)[0];
-                      _.each(req_data.added_index, function(v, k) {
-                        if (v == row_id) {
-                        // Fetch item data through row index
-                          var item = grid.getDataItem(k);
-                          _.extend(item, r.row_added[row_id]);
-                        }
-                      });
-                    }
-                  });
-                  dataView.endUpdate();
-                }
-                // Remove flag is_row_copied from copied rows
-                _.each(data, function(row) {
-                  if (row.is_row_copied) {
-                    delete row.is_row_copied;
+        // Make ajax call to save the data
+        $.ajax({
+          url: url_for('sqleditor.save', {
+            'trans_id': self.transId,
+          }),
+          method: 'POST',
+          contentType: 'application/json',
+          data: JSON.stringify(req_data),
+        })
+          .done(function(res) {
+            var grid = self.slickgrid,
+              dataView = grid.getData(),
+              data_length = dataView.getLength(),
+              data = [];
+
+            if (res.data.status) {
+              // Disable Save Data Changes button
+              $('#btn-save-data').prop('disabled', true);
+
+              save_successful = true;
+
+              // Remove highlighted cells styling
+              for (let i = 1; i <= self.numberOfModifiedCells; i++)
+                grid.removeCellCssStyles(i);
+
+              self.numberOfModifiedCells = 0;
+
+              if(is_added) {
+              // Update the rows in a grid after addition
+                dataView.beginUpdate();
+                _.each(res.data.query_result, function(r) {
+                  if (!_.isNull(r.row_added)) {
+                  // Fetch temp_id returned by server after addition
+                    var row_id = Object.keys(r.row_added)[0];
+                    _.each(req_data.added_index, function(v, k) {
+                      if (v == row_id) {
+                      // Fetch item data through row index
+                        var item = grid.getDataItem(k);
+                        _.extend(item, r.row_added[row_id]);
+                      }
+                    });
                   }
                 });
-
-                // Remove 2d copied_rows array
-                if (grid.copied_rows) {
-                  delete grid.copied_rows;
+                dataView.endUpdate();
+              }
+              // Remove flag is_row_copied from copied rows
+              _.each(data, function(row) {
+                if (row.is_row_copied) {
+                  delete row.is_row_copied;
                 }
+              });
+
+              // Remove 2d copied_rows array
+              if (grid.copied_rows) {
+                delete grid.copied_rows;
+              }
 
-                // Remove deleted rows from client as well
-                if (is_deleted) {
-                  var rows = _.keys(self.data_store.deleted);
-                  if (data_length == rows.length) {
-                  // This means all the rows are selected, clear all data
-                    data = [];
-                    dataView.setItems(data, self.client_primary_key);
-                  } else {
-                    dataView.beginUpdate();
-                    for (var i = 0; i < rows.length; i++) {
-                      var item = grid.getDataItem(rows[i]);
-                      data.push(item);
-                      dataView.deleteItem(item[self.client_primary_key]);
-                    }
-                    dataView.endUpdate();
+              // Remove deleted rows from client as well
+              if (is_deleted) {
+                var rows = _.keys(self.data_store.deleted);
+                if (data_length == rows.length) {
+                // This means all the rows are selected, clear all data
+                  data = [];
+                  dataView.setItems(data, self.client_primary_key);
+                } else {
+                  dataView.beginUpdate();
+                  for (var i = 0; i < rows.length; i++) {
+                    var item = grid.getDataItem(rows[i]);
+                    data.push(item);
+                    dataView.deleteItem(item[self.client_primary_key]);
                   }
-                  self.rows_to_delete.apply(self, [data]);
-                  grid.setSelectedRows([]);
+                  dataView.endUpdate();
                 }
-
+                self.rows_to_delete.apply(self, [data]);
                 grid.setSelectedRows([]);
+              }
 
-                // Reset data store
-                self.data_store = {
-                  'added': {},
-                  'updated': {},
-                  'deleted': {},
-                  'added_index': {},
-                  'updated_index': {},
-                };
+              grid.setSelectedRows([]);
 
-                // Reset old primary key data now
-                self.primary_keys_data = {};
+              // Reset data store
+              self.reset_data_store();
 
-                // Clear msgs after successful save
-                self.set_sql_message('');
+              // Reset old primary key data now
+              self.primary_keys_data = {};
 
-                alertify.success(gettext('Data saved successfully.'));
-              } else {
-              // Something went wrong while saving data on the db server
-                $('#btn-flash').prop('disabled', false);
-                $('#btn-download').prop('disabled', false);
-                self.set_sql_message(res.data.result);
-                var err_msg = S(gettext('%s.')).sprintf(res.data.result).value();
-                alertify.error(err_msg, 20);
-                grid.setSelectedRows([]);
-                // To highlight the row at fault
-                if (_.has(res.data, '_rowid') &&
-                (!_.isUndefined(res.data._rowid) || !_.isNull(res.data._rowid))) {
-                  var _row_index = self._find_rowindex(res.data._rowid);
-                  if (_row_index in self.data_store.added_index) {
-                  // Remove new row index from temp_list if save operation
-                  // fails
-                    var index = self.handler.temp_new_rows.indexOf(res.data._rowid);
-                    if (index > -1) {
-                      self.handler.temp_new_rows.splice(index, 1);
-                    }
-                    self.data_store.added[self.data_store.added_index[_row_index]].err = true;
-                  } else if (_row_index in self.data_store.updated_index) {
-                    self.data_store.updated[self.data_store.updated_index[_row_index]].err = true;
+              // Clear msgs after successful save
+              self.set_sql_message('');
+
+              var msg, is_commit_required = _.has(res.data, 'is_commit_required') &&
+                                            !_.isNull(res.data.is_commit_required) &&
+                                            res.data.is_commit_required;
+
+              if(is_commit_required) {
+                msg = gettext('Data saved successfully, you still need to commit changes to the database.');
+                self.disable_transaction_buttons(false);
+              }
+              else
+                msg = gettext('Data saved successfully.');
+
+              alertify.success(msg);
+            } else {
+            // Something went wrong while saving data on the db server
+              self.set_sql_message(res.data.result);
+              var err_msg = S(gettext('%s.')).sprintf(res.data.result).value();
+              alertify.error(err_msg, 20);
+              grid.setSelectedRows([]);
+              // To highlight the row at fault
+              if (_.has(res.data, '_rowid') &&
+              (!_.isUndefined(res.data._rowid) || !_.isNull(res.data._rowid))) {
+                var _row_index = self._find_rowindex(res.data._rowid);
+                if (_row_index in self.data_store.added_index) {
+                // Remove new row index from temp_list if save operation
+                // fails
+                  var index = self.handler.temp_new_rows.indexOf(res.data._rowid);
+                  if (index > -1) {
+                    self.handler.temp_new_rows.splice(index, 1);
                   }
+                  self.data_store.added[self.data_store.added_index[_row_index]].err = true;
+                } else if (_row_index in self.data_store.updated_index) {
+                  self.data_store.updated[self.data_store.updated_index[_row_index]].err = true;
                 }
-                grid.gotoCell(_row_index, 1);
               }
+              grid.gotoCell(_row_index, 1);
+            }
 
-              // Update the sql results in history tab
-              _.each(res.data.query_result, function(r) {
-                self.gridView.history_collection.add({
-                  'status': r.status,
-                  'start_time': self.query_start_time,
-                  'query': r.sql,
-                  'row_affected': r.rows_affected,
-                  'total_time': self.total_time,
-                  'message': r.result,
-                });
+            // Update the sql results in history tab
+            /*
+            _.each(res.data.query_result, function(r) {
+              self.gridView.history_collection.add({
+                'status': r.status,
+                'start_time': self.query_start_time,
+                'query': r.sql,
+                'row_affected': r.rows_affected,
+                'total_time': self.total_time,
+                'message': r.result,
               });
-              self.trigger('pgadmin-sqleditor:loading-icon:hide');
+            });
+            */
+            self.trigger('pgadmin-sqleditor:loading-icon:hide');
 
-              grid.invalidate();
-              if (self.close_on_save) {
-                self.close();
+            grid.invalidate();
+            if (self.close_on_save) {
+              if(save_successful) {
+                // Check for any other needed confirmations before closing
+                self.check_needed_confirmations_before_closing_panel();
               }
-            })
-            .fail(function(e) {
-              let stateParams = [view, controller, save_as];
-              let msg = httpErrorHandler.handleQueryToolAjaxError(
-                pgAdmin, self, e, '_save', stateParams, true
-              );
-              self.update_msg_history(false, msg);
-            });
-        }
+              else {
+                self.close_on_save = false;
+              }
+            }
+          })
+          .fail(function(e) {
+            let stateParams = [view];
+            let msg = httpErrorHandler.handleQueryToolAjaxError(
+              pgAdmin, self, e, 'save_data', stateParams, true
+            );
+            self.update_msg_history(false, msg);
+          });
+      },
+
+      reset_data_store: function() {
+        var self = this;
+        // This holds all the inserted/updated/deleted data from grid
+        self.data_store = {
+          updated: {},
+          added: {},
+          staged_rows: {},
+          deleted: {},
+          updated_index: {},
+          added_index: {},
+        };
       },
 
       // Find index of row at fault from grid data
@@ -3065,7 +3041,7 @@ define('tools.querytool', [
 
       // Save as
       _save_as: function() {
-        return this._save(true);
+        return this._save_file(true);
       },
 
       // Set panel title.
@@ -3152,7 +3128,7 @@ define('tools.querytool', [
             $busy_icon_div.removeClass('show_progress');
 
             // disable save button on file save
-            $('#btn-save').prop('disabled', true);
+            $('#btn-save-file').prop('disabled', true);
             $('#btn-file-menu-save').css('display', 'none');
 
             // Update the flag as new content is just loaded.
@@ -3197,7 +3173,7 @@ define('tools.querytool', [
               self.gridView.current_file = e;
               self.setTitle(self.gridView.current_file.replace(/^.*[\\\/]/g, ''), true);
               // disable save button on file save
-              $('#btn-save').prop('disabled', true);
+              $('#btn-save-file').prop('disabled', true);
               $('#btn-file-menu-save').css('display', 'none');
 
               // Update the flag as query is already saved.
@@ -3206,7 +3182,8 @@ define('tools.querytool', [
             }
             self.trigger('pgadmin-sqleditor:loading-icon:hide');
             if (self.close_on_save) {
-              self.close();
+              // Check for any other needed confirmations before closing
+              self.check_needed_confirmations_before_closing_panel();
             }
           })
           .fail(function(e) {
@@ -3246,7 +3223,7 @@ define('tools.querytool', [
             self.setTitle(title);
           }
 
-          $('#btn-save').prop('disabled', false);
+          $('#btn-save-file').prop('disabled', false);
           $('#btn-file-menu-save').css('display', 'block');
           $('#btn-file-menu-dropdown').prop('disabled', false);
         }
@@ -3480,7 +3457,7 @@ define('tools.querytool', [
         if (copied_rows.length > 0) {
           // Enable save button so that user can
           // save newly pasted rows on server
-          $('#btn-save').prop('disabled', false);
+          $('#btn-save-data').prop('disabled', false);
 
           var arr_to_object = function(arr) {
             var obj = {};
@@ -3583,10 +3560,11 @@ define('tools.querytool', [
         $('#btn-explain-options-dropdown').prop('disabled', mode_disabled);
         $('#btn-edit-dropdown').prop('disabled', mode_disabled);
         $('#btn-load-file').prop('disabled', mode_disabled);
-        $('#btn-save').prop('disabled', mode_disabled);
+        $('#btn-save-file').prop('disabled', mode_disabled);
         $('#btn-file-menu-dropdown').prop('disabled', mode_disabled);
         $('#btn-find').prop('disabled', mode_disabled);
         $('#btn-find-menu-dropdown').prop('disabled', mode_disabled);
+
         if (this.is_query_tool) {
           // Cancel query tool needs opposite behaviour
           $('#btn-cancel-query').prop('disabled', !disabled);
@@ -3612,8 +3590,36 @@ define('tools.querytool', [
       // This function will fetch the sql query from the text box
       // and execute the query.
       execute: function(explain_prefix, shouldReconnect=false) {
-        var self = this,
-          sql = '';
+        var self = this;
+
+        // Check if the data grid has any changes before running query
+        // Check if the data grid has any changes before running query
+        if (self.can_edit && _.has(self, 'data_store') &&
+          (_.size(self.data_store.added) ||
+            _.size(self.data_store.updated) ||
+            _.size(self.data_store.deleted))
+        ) {
+          alertify.confirm(gettext('Unsaved changes'),
+            gettext('The data has been modified, but not saved. Are you sure you wish to discard the changes?'),
+            function() {
+              // Do nothing as user do not want to save, just continue
+              self._execute_sql_query(explain_prefix, shouldReconnect);
+            },
+            function() {
+              // Stop, User wants to save
+              return true;
+            }
+          ).set('labels', {
+            ok: gettext('Yes'),
+            cancel: gettext('No'),
+          });
+        } else {
+          self._execute_sql_query(explain_prefix, shouldReconnect);
+        }
+      },
+
+      _execute_sql_query: function(explain_prefix, shouldReconnect) {
+        var self = this, sql = '';
 
         self.has_more_rows = false;
         self.fetching_rows = false;
@@ -3622,8 +3628,8 @@ define('tools.querytool', [
           sql = self.special_sql;
         } else {
           /* If code is selected in the code mirror then execute
-           * the selected part else execute the complete code.
-           */
+          * the selected part else execute the complete code.
+          */
           var selected_code = self.gridView.query_tool_obj.getSelection();
           if (selected_code.length > 0)
             sql = selected_code;
@@ -4018,6 +4024,146 @@ define('tools.querytool', [
         is_query_running = value;
       },
 
+      /* Checks if there is any unsaved data changes, unsaved changes in the query
+      or uncommited transactions before closing a panel */
+      check_needed_confirmations_before_closing_panel: function(is_close_event_call = false) {
+        var self = this, msg;
+
+        /*
+         is_close_event_call = true only when the function is called when the
+         close panel event is triggered, otherwise it is false
+        */
+        if(!self.ignore_on_close || is_close_event_call)
+          self.ignore_on_close = {
+            unsaved_data: false,
+            unsaved_query: false,
+            uncommited_transaction: false,
+          };
+
+        var ignore_unsaved_data = self.ignore_on_close.unsaved_data,
+          ignore_unsaved_query = self.ignore_on_close.unsaved_query,
+          ignore_uncommited_transaction = self.ignore_on_close.uncommited_transaction;
+
+        // If there is unsaved data changes in the grid
+        if (!ignore_unsaved_data && self.can_edit
+            && self.preferences.prompt_save_data_changes &&
+            self.data_store &&
+             (_.size(self.data_store.added) ||
+              _.size(self.data_store.updated) ||
+              _.size(self.data_store.deleted))) {
+          msg = gettext('The data has changed. Do you want to save changes?');
+          self.unsaved_changes_user_confirmation(msg, true);
+        } // If there is unsaved query changes in the query editor
+        else if (!ignore_unsaved_query && self.is_query_tool
+                   && self.is_query_changed
+                   && self.preferences.prompt_save_query_changes) {
+          msg = gettext('The text has changed. Do you want to save changes?');
+          self.unsaved_changes_user_confirmation(msg, false);
+        } // If a transaction is currently ongoing
+        else if (!ignore_uncommited_transaction
+                 && self.preferences.alert_uncommited_transaction
+                 && SqlEditorUtils.previousStatus != 0) {
+          self.uncommited_transaction_user_confirmation();
+        }
+        else {
+          // No other function should call close() except through this function
+          // in order to perform necessary checks
+          self.ignore_on_close = undefined;
+          self.close();
+        }
+        // Return false so that the panel does not close unless close()
+        // is called explicitly (when all needed prompts are issued).
+        return false;
+      },
+
+      /* To prompt the user for uncommited transaction */
+      uncommited_transaction_user_confirmation: function() {
+        var self = this;
+
+        alertify.confirm(
+          gettext('Uncommited transaction'),
+          gettext(`The current transaction was not commited to the database.
+           Are you sure you wish to discard the current transaction?`),
+          function() {
+            // Go back to check for any other needed confirmations before closing
+            self.ignore_on_close.uncommited_transaction = true;
+            self.check_needed_confirmations_before_closing_panel();
+          },
+          function() {
+            return;
+          }
+        ).set('labels', {
+          ok: gettext('Yes'),
+          cancel: gettext('No'),
+        });
+      },
+
+      /* To prompt user for unsaved changes */
+      unsaved_changes_user_confirmation: function(msg, is_unsaved_data) {
+        // If there is anything to save then prompt user
+        var self = this;
+
+        alertify.confirmSave || alertify.dialog('confirmSave', function() {
+          return {
+            main: function(title, message, is_unsaved_data) {
+              this.is_unsaved_data = is_unsaved_data;
+              this.setHeader(title);
+              this.setContent(message);
+            },
+            setup: function() {
+              return {
+                buttons: [{
+                  text: gettext('Cancel'),
+                  key: 27, // ESC
+                  invokeOnClose: true,
+                  className: 'btn btn-secondary fa fa-lg fa-times pg-alertify-button',
+                }, {
+                  text: gettext('Don\'t save'),
+                  className: 'btn btn-secondary fa fa-lg fa-trash-o pg-alertify-button',
+                }, {
+                  text: gettext('Save'),
+                  className: 'btn btn-primary fa fa-lg fa-save pg-alertify-button',
+                }],
+                focus: {
+                  element: 0,
+                  select: false,
+                },
+                options: {
+                  maximizable: false,
+                  resizable: false,
+                },
+              };
+            },
+            callback: function(closeEvent) {
+              switch (closeEvent.index) {
+              case 0: // Cancel
+                //Do nothing.
+                break;
+              case 1: // Don't Save
+                self.close_on_save = false;
+                if(this.is_unsaved_data)
+                  self.ignore_on_close.unsaved_data = true;
+                else
+                  self.ignore_on_close.unsaved_query = true;
+                // Go back to check for any other needed confirmations before closing
+                self.check_needed_confirmations_before_closing_panel();
+                break;
+              case 2: //Save
+                self.close_on_save = true;
+                if(this.is_unsaved_data) {
+                  self.save_data();
+                }
+                else {
+                  self._save_file();
+                }
+                break;
+              }
+            },
+          };
+        });
+        alertify.confirmSave(gettext('Save changes?'), msg, is_unsaved_data);
+      },
+
       close: function() {
         var self = this;
 
diff --git a/web/pgadmin/tools/sqleditor/static/scss/_sqleditor.scss b/web/pgadmin/tools/sqleditor/static/scss/_sqleditor.scss
index ebf5b180..2742f320 100644
--- a/web/pgadmin/tools/sqleditor/static/scss/_sqleditor.scss
+++ b/web/pgadmin/tools/sqleditor/static/scss/_sqleditor.scss
@@ -209,6 +209,13 @@ li.CodeMirror-hint-active {
   color: $text-muted;
 }
 
+/* Highlighted (modified or new) cell */
+.grid-canvas .highlighted_grid_cells {
+  background: $color-gray-lighter;
+  font-weight: bold;
+}
+
+
 /* Override selected row color */
 #datagrid .slick-row .slick-cell.selected {
     background-color: $table-bg-selected;
diff --git a/web/pgadmin/tools/sqleditor/templates/sqleditor/sql/11_plus/primary_keys.sql b/web/pgadmin/tools/sqleditor/templates/sqleditor/sql/11_plus/primary_keys.sql
index 1dfb094f..459977e9 100644
--- a/web/pgadmin/tools/sqleditor/templates/sqleditor/sql/11_plus/primary_keys.sql
+++ b/web/pgadmin/tools/sqleditor/templates/sqleditor/sql/11_plus/primary_keys.sql
@@ -1,6 +1,6 @@
 {# ============= Fetch the primary keys for given object id ============= #}
 {% if obj_id %}
-SELECT at.attname, ty.typname
+SELECT at.attname, at.attnum, ty.typname
 FROM pg_attribute at LEFT JOIN pg_type ty ON (ty.oid = at.atttypid)
 WHERE attrelid={{obj_id}}::oid AND attnum = ANY (
     (SELECT con.conkey FROM pg_class rel LEFT OUTER JOIN pg_constraint con ON con.conrelid=rel.oid
diff --git a/web/pgadmin/tools/sqleditor/templates/sqleditor/sql/default/primary_keys.sql b/web/pgadmin/tools/sqleditor/templates/sqleditor/sql/default/primary_keys.sql
index 60d0e56f..a96c928f 100644
--- a/web/pgadmin/tools/sqleditor/templates/sqleditor/sql/default/primary_keys.sql
+++ b/web/pgadmin/tools/sqleditor/templates/sqleditor/sql/default/primary_keys.sql
@@ -1,8 +1,8 @@
 {# ============= Fetch the primary keys for given object id ============= #}
 {% if obj_id %}
-SELECT at.attname, ty.typname
+SELECT at.attname, at.attnum, ty.typname
 FROM pg_attribute at LEFT JOIN pg_type ty ON (ty.oid = at.atttypid)
 WHERE attrelid={{obj_id}}::oid AND attnum = ANY (
     (SELECT con.conkey FROM pg_class rel LEFT OUTER JOIN pg_constraint con ON con.conrelid=rel.oid
     AND con.contype='p' WHERE rel.relkind IN ('r','s','t') AND rel.oid = {{obj_id}}::oid)::oid[])
-{% endif %}
\ No newline at end of file
+{% endif %}
diff --git a/web/pgadmin/tools/sqleditor/tests/execute_query_utils.py b/web/pgadmin/tools/sqleditor/tests/execute_query_utils.py
new file mode 100644
index 00000000..c3cf89b3
--- /dev/null
+++ b/web/pgadmin/tools/sqleditor/tests/execute_query_utils.py
@@ -0,0 +1,28 @@
+import json
+
+
+def execute_query(tester, query, start_query_tool_url, poll_url):
+    # Start query tool and execute sql
+    response = tester.post(start_query_tool_url,
+                           data=json.dumps({"sql": query}),
+                           content_type='html/json')
+
+    if response.status_code != 200:
+        return False, None
+
+    # Poll for results
+    return poll_for_query_results(tester=tester, poll_url=poll_url)
+
+
+def poll_for_query_results(tester, poll_url):
+    # Poll for results until they are successful
+    while True:
+        response = tester.get(poll_url)
+        if response.status_code != 200:
+            return False, None
+        response_data = json.loads(response.data.decode('utf-8'))
+        status = response_data['data']['status']
+        if status == 'Success':
+            return True, response_data
+        elif status == 'NotConnected' or status == 'Cancel':
+            return False, None
diff --git a/web/pgadmin/tools/sqleditor/tests/test_is_query_resultset_updatable.py b/web/pgadmin/tools/sqleditor/tests/test_is_query_resultset_updatable.py
new file mode 100644
index 00000000..d7e75c78
--- /dev/null
+++ b/web/pgadmin/tools/sqleditor/tests/test_is_query_resultset_updatable.py
@@ -0,0 +1,125 @@
+##########################################################################
+#
+# pgAdmin 4 - PostgreSQL Tools
+#
+# Copyright (C) 2013 - 2019, The pgAdmin Development Team
+# This software is released under the PostgreSQL Licence
+#
+##########################################################################
+
+import json
+
+from pgadmin.browser.server_groups.servers.databases.tests import utils as \
+    database_utils
+from pgadmin.utils.route import BaseTestGenerator
+from regression import parent_node_dict
+from regression.python_test_utils import test_utils as utils
+from .execute_query_utils import execute_query
+
+
+class TestQueryUpdatableResultset(BaseTestGenerator):
+    """ This class will test the detection of whether the query
+        result-set is updatable. """
+    scenarios = [
+        ('When selecting all columns of the table', dict(
+            sql='SELECT * FROM test_for_updatable_resultset;',
+            primary_keys={
+                'pk_col1': 'int4',
+                'pk_col2': 'int4'
+            }
+        )),
+        ('When selecting all primary keys of the table', dict(
+            sql='SELECT pk_col1, pk_col2 FROM test_for_updatable_resultset;',
+            primary_keys={
+                'pk_col1': 'int4',
+                'pk_col2': 'int4'
+            }
+        )),
+        ('When selecting some of the primary keys of the table', dict(
+            sql='SELECT pk_col2 FROM test_for_updatable_resultset;',
+            primary_keys=None
+        )),
+        ('When selecting none of the primary keys of the table', dict(
+            sql='SELECT normal_col1 FROM test_for_updatable_resultset;',
+            primary_keys=None
+        )),
+        ('When renaming a primary key', dict(
+            sql='SELECT pk_col1 as some_col, '
+                'pk_col2 FROM test_for_updatable_resultset;',
+            primary_keys=None
+        )),
+        ('When renaming a column to a primary key name', dict(
+            sql='SELECT pk_col1, pk_col2, normal_col1 as pk_col1 '
+                'FROM test_for_updatable_resultset;',
+            primary_keys=None
+        ))
+    ]
+
+    def setUp(self):
+        self._initialize_database_connection()
+        self._initialize_query_tool()
+        self._initialize_urls()
+        self._create_test_table()
+
+    def runTest(self):
+        is_success, response_data = \
+            execute_query(tester=self.tester,
+                          query=self.sql,
+                          poll_url=self.poll_url,
+                          start_query_tool_url=self.start_query_tool_url)
+        self.assertEquals(is_success, True)
+
+        # Check primary keys
+        primary_keys = response_data['data']['primary_keys']
+        self.assertEquals(primary_keys, self.primary_keys)
+
+    def tearDown(self):
+        # Disconnect the database
+        database_utils.disconnect_database(self, self.server_id, self.db_id)
+
+    def _initialize_database_connection(self):
+        database_info = parent_node_dict["database"][-1]
+        self.server_id = database_info["server_id"]
+
+        self.db_id = database_info["db_id"]
+        db_con = database_utils.connect_database(self,
+                                                 utils.SERVER_GROUP,
+                                                 self.server_id,
+                                                 self.db_id)
+        if not db_con["info"] == "Database connected.":
+            raise Exception("Could not connect to the database.")
+
+    def _initialize_query_tool(self):
+        url = '/datagrid/initialize/query_tool/{0}/{1}/{2}'.format(
+            utils.SERVER_GROUP, self.server_id, self.db_id)
+        response = self.tester.post(url)
+        self.assertEquals(response.status_code, 200)
+
+        response_data = json.loads(response.data.decode('utf-8'))
+        self.trans_id = response_data['data']['gridTransId']
+
+    def _initialize_urls(self):
+        self.start_query_tool_url = \
+            '/sqleditor/query_tool/start/{0}'.format(self.trans_id)
+
+        self.poll_url = '/sqleditor/poll/{0}'.format(self.trans_id)
+
+    def _create_test_table(self):
+        create_sql = """
+                            DROP TABLE IF EXISTS test_for_updatable_resultset;
+
+                            CREATE TABLE test_for_updatable_resultset(
+                                pk_col1	SERIAL,
+                                pk_col2 SERIAL,
+                                normal_col1 VARCHAR,
+                                normal_col2 VARCHAR,
+                                PRIMARY KEY(pk_col1, pk_col2)
+                            );
+                      """
+
+        is_success, _ = \
+            execute_query(tester=self.tester,
+                          query=create_sql,
+                          start_query_tool_url=self.start_query_tool_url,
+                          poll_url=self.poll_url)
+        self.assertEquals(is_success, True)
diff --git a/web/pgadmin/tools/sqleditor/tests/test_save_changed_data.py b/web/pgadmin/tools/sqleditor/tests/test_save_changed_data.py
new file mode 100644
index 00000000..01795d29
--- /dev/null
+++ b/web/pgadmin/tools/sqleditor/tests/test_save_changed_data.py
@@ -0,0 +1,347 @@
+##########################################################################
+#
+# pgAdmin 4 - PostgreSQL Tools
+#
+# Copyright (C) 2013 - 2019, The pgAdmin Development Team
+# This software is released under the PostgreSQL Licence
+#
+##########################################################################
+
+import json
+
+from pgadmin.browser.server_groups.servers.databases.tests import utils as \
+    database_utils
+from pgadmin.utils.route import BaseTestGenerator
+from regression import parent_node_dict
+from regression.python_test_utils import test_utils as utils
+from .execute_query_utils import execute_query
+
+
+class TestSaveChangedData(BaseTestGenerator):
+    """ This class tests saving data changes in the grid to the database """
+    scenarios = [
+        ('When inserting new valid row', dict(
+            save_payload={
+                "updated": {},
+                "added": {
+                    "2": {
+                        "err": False,
+                        "data": {
+                            "pk_col": "3",
+                            "__temp_PK": "2",
+                            "normal_col": "three"
+                        }
+                    }
+                },
+                "staged_rows": {},
+                "deleted": {},
+                "updated_index": {},
+                "added_index": {"2": "2"},
+                "columns": [
+                    {
+                        "name": "pk_col",
+                        "display_name": "pk_col",
+                        "column_type": "[PK] integer",
+                        "column_type_internal": "integer",
+                        "pos": 0,
+                        "label": "pk_col<br>[PK] integer",
+                        "cell": "number",
+                        "can_edit": True,
+                        "type": "integer",
+                        "not_null": True,
+                        "has_default_val": False,
+                        "is_array": False},
+                    {"name": "normal_col",
+                     "display_name": "normal_col",
+                     "column_type": "character varying",
+                     "column_type_internal": "character varying",
+                     "pos": 1,
+                     "label": "normal_col<br>character varying",
+                     "cell": "string",
+                     "can_edit": True,
+                     "type": "character varying",
+                     "not_null": False,
+                     "has_default_val": False,
+                     "is_array": False}
+                ]
+            },
+            save_status=True,
+            check_sql='SELECT * FROM test_for_save_data WHERE pk_col = 3',
+            check_result=[[3, "three"]]
+        )),
+        ('When inserting new invalid row', dict(
+            save_payload={
+                "updated": {},
+                "added": {
+                    "2": {
+                        "err": False,
+                        "data": {
+                            "pk_col": "1",
+                            "__temp_PK": "2",
+                            "normal_col": "four"
+                        }
+                    }
+                },
+                "staged_rows": {},
+                "deleted": {},
+                "updated_index": {},
+                "added_index": {"2": "2"},
+                "columns": [
+                    {
+                        "name": "pk_col",
+                        "display_name": "pk_col",
+                        "column_type": "[PK] integer",
+                        "column_type_internal": "integer",
+                        "pos": 0,
+                        "label": "pk_col<br>[PK] integer",
+                        "cell": "number",
+                        "can_edit": True,
+                        "type": "integer",
+                        "not_null": True,
+                        "has_default_val": False,
+                        "is_array": False},
+                    {"name": "normal_col",
+                     "display_name": "normal_col",
+                     "column_type": "character varying",
+                     "column_type_internal": "character varying",
+                     "pos": 1,
+                     "label": "normal_col<br>character varying",
+                     "cell": "string",
+                     "can_edit": True,
+                     "type": "character varying",
+                     "not_null": False,
+                     "has_default_val": False,
+                     "is_array": False}
+                ]
+            },
+            save_status=False,
+            check_sql=None,
+            check_result=None
+        )),
+        ('When updating a row in a valid way', dict(
+            save_payload={
+                "updated": {
+                    "1":
+                        {"err": False,
+                         "data": {"normal_col": "ONE"},
+                         "primary_keys":
+                             {"pk_col": 1}
+                         }
+                },
+                "added": {},
+                "staged_rows": {},
+                "deleted": {},
+                "updated_index": {"1": "1"},
+                "added_index": {},
+                "columns": [
+                    {
+                        "name": "pk_col",
+                        "display_name": "pk_col",
+                        "column_type": "[PK] integer",
+                        "column_type_internal": "integer",
+                        "pos": 0,
+                        "label": "pk_col<br>[PK] integer",
+                        "cell": "number",
+                        "can_edit": True,
+                        "type": "integer",
+                        "not_null": True,
+                        "has_default_val": False,
+                        "is_array": False},
+                    {"name": "normal_col",
+                     "display_name": "normal_col",
+                     "column_type": "character varying",
+                     "column_type_internal": "character varying",
+                     "pos": 1,
+                     "label": "normal_col<br>character varying",
+                     "cell": "string",
+                     "can_edit": True,
+                     "type": "character varying",
+                     "not_null": False,
+                     "has_default_val": False,
+                     "is_array": False}
+                ]
+            },
+            save_status=True,
+            check_sql='SELECT * FROM test_for_save_data WHERE pk_col = 1',
+            check_result=[[1, "ONE"]]
+        )),
+        ('When updating a row in an invalid way', dict(
+            save_payload={
+                "updated": {
+                    "1":
+                        {"err": False,
+                         "data": {"pk_col": "2"},
+                         "primary_keys":
+                             {"pk_col": 1}
+                         }
+                },
+                "added": {},
+                "staged_rows": {},
+                "deleted": {},
+                "updated_index": {"1": "1"},
+                "added_index": {},
+                "columns": [
+                    {
+                        "name": "pk_col",
+                        "display_name": "pk_col",
+                        "column_type": "[PK] integer",
+                        "column_type_internal": "integer",
+                        "pos": 0,
+                        "label": "pk_col<br>[PK] integer",
+                        "cell": "number",
+                        "can_edit": True,
+                        "type": "integer",
+                        "not_null": True,
+                        "has_default_val": False,
+                        "is_array": False},
+                    {"name": "normal_col",
+                     "display_name": "normal_col",
+                     "column_type": "character varying",
+                     "column_type_internal": "character varying",
+                     "pos": 1,
+                     "label": "normal_col<br>character varying",
+                     "cell": "string",
+                     "can_edit": True,
+                     "type": "character varying",
+                     "not_null": False,
+                     "has_default_val": False,
+                     "is_array": False}
+                ]
+            },
+            save_status=False,
+            check_sql=None,
+            check_result=None
+        )),
+        ('When deleting a row', dict(
+            save_payload={
+                "updated": {},
+                "added": {},
+                "staged_rows": {"1": {"pk_col": 2}},
+                "deleted": {"1": {"pk_col": 2}},
+                "updated_index": {},
+                "added_index": {},
+                "columns": [
+                    {
+                        "name": "pk_col",
+                        "display_name": "pk_col",
+                        "column_type": "[PK] integer",
+                        "column_type_internal": "integer",
+                        "pos": 0,
+                        "label": "pk_col<br>[PK] integer",
+                        "cell": "number",
+                        "can_edit": True,
+                        "type": "integer",
+                        "not_null": True,
+                        "has_default_val": False,
+                        "is_array": False},
+                    {"name": "normal_col",
+                     "display_name": "normal_col",
+                     "column_type": "character varying",
+                     "column_type_internal": "character varying",
+                     "pos": 1,
+                     "label": "normal_col<br>character varying",
+                     "cell": "string",
+                     "can_edit": True,
+                     "type": "character varying",
+                     "not_null": False,
+                     "has_default_val": False,
+                     "is_array": False}
+                ]
+            },
+            save_status=True,
+            check_sql='SELECT * FROM test_for_save_data WHERE pk_col = 2',
+            check_result='SELECT 0'
+        )),
+    ]
+
+    def setUp(self):
+        self._initialize_database_connection()
+        self._initialize_query_tool()
+        self._initialize_urls_and_select_sql()
+        self._create_test_table()
+
+    def runTest(self):
+        # Execute select sql
+        is_success, _ = \
+            execute_query(tester=self.tester,
+                          query=self.select_sql,
+                          start_query_tool_url=self.start_query_tool_url,
+                          poll_url=self.poll_url)
+        self.assertEquals(is_success, True)
+
+        # Send a request to save changed data
+        response = self.tester.post(self.save_url,
+                                    data=json.dumps(self.save_payload),
+                                    content_type='html/json')
+
+        self.assertEquals(response.status_code, 200)
+
+        # Check that the save is successful
+        response_data = json.loads(response.data.decode('utf-8'))
+        save_status = response_data['data']['status']
+        self.assertEquals(save_status, self.save_status)
+
+        if self.check_sql:
+            # Execute check sql
+            is_success, response_data = \
+                execute_query(tester=self.tester,
+                              query=self.check_sql,
+                              start_query_tool_url=self.start_query_tool_url,
+                              poll_url=self.poll_url)
+            self.assertEquals(is_success, True)
+
+            # Check table for updates
+            result = response_data['data']['result']
+            self.assertEquals(result, self.check_result)
+
+    def tearDown(self):
+        # Disconnect the database
+        database_utils.disconnect_database(self, self.server_id, self.db_id)
+
+    def _initialize_database_connection(self):
+        database_info = parent_node_dict["database"][-1]
+        self.server_id = database_info["server_id"]
+
+        self.db_id = database_info["db_id"]
+        db_con = database_utils.connect_database(self,
+                                                 utils.SERVER_GROUP,
+                                                 self.server_id,
+                                                 self.db_id)
+        if not db_con["info"] == "Database connected.":
+            raise Exception("Could not connect to the database.")
+
+    def _initialize_query_tool(self):
+        url = '/datagrid/initialize/query_tool/{0}/{1}/{2}'.format(
+            utils.SERVER_GROUP, self.server_id, self.db_id)
+        response = self.tester.post(url)
+        self.assertEquals(response.status_code, 200)
+
+        response_data = json.loads(response.data.decode('utf-8'))
+        self.trans_id = response_data['data']['gridTransId']
+
+    def _initialize_urls_and_select_sql(self):
+        self.start_query_tool_url = \
+            '/sqleditor/query_tool/start/{0}'.format(self.trans_id)
+        self.save_url = '/sqleditor/save/{0}'.format(self.trans_id)
+        self.poll_url = '/sqleditor/poll/{0}'.format(self.trans_id)
+
+        self.select_sql = 'SELECT * FROM test_for_save_data;'
+
+    def _create_test_table(self):
+        create_sql = """
+                            DROP TABLE IF EXISTS test_for_save_data;
+
+                            CREATE TABLE test_for_save_data(
+                            pk_col	INT PRIMARY KEY,
+                            normal_col VARCHAR);
+
+                            INSERT INTO test_for_save_data VALUES
+                            (1, 'one'),
+                            (2, 'two');
+                      """
+        is_success, _ = \
+            execute_query(tester=self.tester,
+                          query=create_sql,
+                          start_query_tool_url=self.start_query_tool_url,
+                          poll_url=self.poll_url)
+        self.assertEquals(is_success, True)
diff --git a/web/pgadmin/tools/sqleditor/utils/is_query_resultset_updatable.py b/web/pgadmin/tools/sqleditor/utils/is_query_resultset_updatable.py
new file mode 100644
index 00000000..f6b453ee
--- /dev/null
+++ b/web/pgadmin/tools/sqleditor/utils/is_query_resultset_updatable.py
@@ -0,0 +1,120 @@
+##########################################################################
+#
+# pgAdmin 4 - PostgreSQL Tools
+#
+# Copyright (C) 2013 - 2019, The pgAdmin Development Team
+# This software is released under the PostgreSQL Licence
+#
+##########################################################################
+
+"""
+    Check if the result-set of a query is updatable, A resultset is
+    updatable (as of this version) if:
+        - All columns belong to the same table.
+        - All the primary key columns of the table are present in the resultset
+        - No duplicate columns
+"""
+from flask import render_template
+try:
+    from collections import OrderedDict
+except ImportError:
+    from ordereddict import OrderedDict
+
+
+def is_query_resultset_updatable(conn, sql_path):
+    """
+        This function is used to check whether the last successful query
+        produced updatable results.
+
+        Args:
+            conn: Connection object.
+            sql_path: the path to the sql templates.
+    """
+    columns_info = conn.get_column_info()
+
+    if columns_info is None or len(columns_info) < 1:
+        return return_not_updatable()
+
+    table_oid = _check_single_table(columns_info)
+    if not table_oid:
+        return return_not_updatable()
+
+    if not _check_duplicate_columns(columns_info):
+        return return_not_updatable()
+
+    if conn.connected():
+        primary_keys, primary_keys_columns, pk_names = \
+            _get_primary_keys(conn=conn,
+                              table_oid=table_oid,
+                              sql_path=sql_path)
+
+        if not _check_primary_keys_uniquely_exist(primary_keys_columns,
+                                                  columns_info):
+            return return_not_updatable()
+
+        return True, primary_keys, pk_names, table_oid
+    else:
+        return return_not_updatable()
+
+
+def _check_single_table(columns_info):
+    table_oid = columns_info[0]['table_oid']
+    for column in columns_info:
+        if column['table_oid'] != table_oid:
+            return None
+    return table_oid
+
+
+def _check_duplicate_columns(columns_info):
+    column_numbers = \
+        [col['table_column'] for col in columns_info]
+    is_duplicate_columns = len(column_numbers) != len(set(column_numbers))
+    if is_duplicate_columns:
+        return False
+    return True
+
+
+def _check_primary_keys_uniquely_exist(primary_keys_columns, columns_info):
+    for pk in primary_keys_columns:
+        pk_exists = False
+        for col in columns_info:
+            if col['table_column'] == pk['column_number']:
+                pk_exists = True
+                # If the primary key column is renamed
+                if col['display_name'] != pk['name']:
+                    return False
+            # If a normal column is renamed to a primary key column name
+            elif col['display_name'] == pk['name']:
+                return False
+
+        if not pk_exists:
+            return False
+    return True
+
+
+def _get_primary_keys(sql_path, table_oid, conn):
+    query = render_template(
+        "/".join([sql_path, 'primary_keys.sql']),
+        obj_id=table_oid
+    )
+    status, result = conn.execute_dict(query)
+    if not status:
+        return return_not_updatable()
+
+    primary_keys_columns = []
+    primary_keys = OrderedDict()
+    pk_names = []
+
+    for row in result['rows']:
+        primary_keys[row['attname']] = row['typname']
+        primary_keys_columns.append({
+            'name': row['attname'],
+            'column_number': row['attnum']
+        })
+        pk_names.append(row['attname'])
+
+    return primary_keys, primary_keys_columns, pk_names
+
+
+def return_not_updatable():
+    return False, None, None, None
diff --git a/web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py b/web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py
index ca09eaec..501ef0ce 100644
--- a/web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py
+++ b/web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py
@@ -163,6 +163,16 @@ def RegisterQueryToolPreferences(self):
         )
     )
 
+    self.show_alert_uncommited_transaction = self.preference.register(
+        'Options', 'alert_uncommited_transaction',
+        gettext("Alert on uncommited transactions?"), 'boolean', True,
+        category_label=gettext('Options'),
+        help_str=gettext(
+            'Specifies whether or not to alert the user when a current '
+            'transaction is uncommited on Query Tool exit.'
+        )
+    )
+
     self.csv_quoting = self.preference.register(
         'CSV_output', 'csv_quoting',
         gettext("CSV quoting"), 'options', 'strings',
@@ -290,6 +300,24 @@ def RegisterQueryToolPreferences(self):
         fields=shortcut_fields
     )
 
+    self.preference.register(
+        'keyboard_shortcuts',
+        'save_data',
+        gettext('Save Data Changes'),
+        'keyboardshortcut',
+        {
+            'alt': False,
+            'shift': False,
+            'control': False,
+            'key': {
+                'key_code': 117,
+                'char': 'F6'
+            }
+        },
+        category_label=gettext('Keyboard shortcuts'),
+        fields=shortcut_fields
+    )
+
     self.preference.register(
         'keyboard_shortcuts',
         'explain_query',
diff --git a/web/pgadmin/tools/sqleditor/utils/save_changed_data.py b/web/pgadmin/tools/sqleditor/utils/save_changed_data.py
new file mode 100644
index 00000000..6275e658
--- /dev/null
+++ b/web/pgadmin/tools/sqleditor/utils/save_changed_data.py
@@ -0,0 +1,317 @@
+##########################################################################
+#
+# pgAdmin 4 - PostgreSQL Tools
+#
+# Copyright (C) 2013 - 2019, The pgAdmin Development Team
+# This software is released under the PostgreSQL Licence
+#
+##########################################################################
+
+from flask import render_template
+from pgadmin.tools.sqleditor.utils.constant_definition import TX_STATUS_IDLE
+try:
+    from collections import OrderedDict
+except ImportError:
+    from ordereddict import OrderedDict
+
+
+def save_changed_data(changed_data, columns_info, conn, command_obj,
+                      client_primary_key, auto_commit=True):
+    """
+    This function is used to save the data into the database.
+    Depending on condition it will either update or insert the
+    new row into the database.
+
+    Args:
+        changed_data: Contains data to be saved
+        command_obj: The transaction object (command_obj or trans_obj)
+        conn: The connection object
+        columns_info: session_obj['columns_info']
+        client_primary_key: session_obj['client_primary_key']
+        auto_commit: If the changes should be commited automatically.
+    """
+    status = False
+    res = None
+    query_res = dict()
+    count = 0
+    list_of_rowid = []
+    operations = ('added', 'updated', 'deleted')
+    list_of_sql = {}
+    _rowid = None
+    is_commit_required = False
+
+    pgadmin_alias = {
+        col_name: col_info['pgadmin_alias']
+        for col_name, col_info in columns_info.items()
+    }
+
+    if conn.connected():
+        is_savepoint = False
+        # Start the transaction if the session is idle
+        if conn.transaction_status() == TX_STATUS_IDLE:
+            conn.execute_void('BEGIN;')
+        else:
+            conn.execute_void('SAVEPOINT save_data;')
+            is_savepoint = True
+
+        # Iterate total number of records to be updated/inserted
+        for of_type in changed_data:
+            # No need to go further if its not add/update/delete operation
+            if of_type not in operations:
+                continue
+            # if no data to be save then continue
+            if len(changed_data[of_type]) < 1:
+                continue
+
+            column_type = {}
+            column_data = {}
+            for each_col in columns_info:
+                if (
+                    columns_info[each_col]['not_null'] and
+                    not columns_info[each_col]['has_default_val']
+                ):
+                    column_data[each_col] = None
+                    column_type[each_col] = \
+                        columns_info[each_col]['type_name']
+                else:
+                    column_type[each_col] = \
+                        columns_info[each_col]['type_name']
+
+            # For newly added rows
+            if of_type == 'added':
+                # Python dict does not honour the inserted item order
+                # So to insert data in the order, we need to make ordered
+                # list of added index We don't need this mechanism in
+                # updated/deleted rows as it does not matter in
+                # those operations
+                added_index = OrderedDict(
+                    sorted(
+                        changed_data['added_index'].items(),
+                        key=lambda x: int(x[0])
+                    )
+                )
+                list_of_sql[of_type] = []
+
+                # When new rows are added, only changed columns data is
+                # sent from client side. But if column is not_null and has
+                # no_default_value, set column to blank, instead
+                # of not null which is set by default.
+                column_data = {}
+                pk_names, primary_keys = command_obj.get_primary_keys()
+                has_oids = 'oid' in column_type
+
+                for each_row in added_index:
+                    # Get the row index to match with the added rows
+                    # dict key
+                    tmp_row_index = added_index[each_row]
+                    data = changed_data[of_type][tmp_row_index]['data']
+                    # Remove our unique tracking key
+                    data.pop(client_primary_key, None)
+                    data.pop('is_row_copied', None)
+                    list_of_rowid.append(data.get(client_primary_key))
+
+                    # Update columns value with columns having
+                    # not_null=False and has no default value
+                    column_data.update(data)
+
+                    sql = render_template(
+                        "/".join([command_obj.sql_path, 'insert.sql']),
+                        data_to_be_saved=column_data,
+                        pgadmin_alias=pgadmin_alias,
+                        primary_keys=None,
+                        object_name=command_obj.object_name,
+                        nsp_name=command_obj.nsp_name,
+                        data_type=column_type,
+                        pk_names=pk_names,
+                        has_oids=has_oids
+                    )
+
+                    select_sql = render_template(
+                        "/".join([command_obj.sql_path, 'select.sql']),
+                        object_name=command_obj.object_name,
+                        nsp_name=command_obj.nsp_name,
+                        primary_keys=primary_keys,
+                        has_oids=has_oids
+                    )
+
+                    list_of_sql[of_type].append({
+                        'sql': sql, 'data': data,
+                        'client_row': tmp_row_index,
+                        'select_sql': select_sql
+                    })
+                    # Reset column data
+                    column_data = {}
+
+            # For updated rows
+            elif of_type == 'updated':
+                list_of_sql[of_type] = []
+                for each_row in changed_data[of_type]:
+                    data = changed_data[of_type][each_row]['data']
+                    pk_escaped = {
+                        pk: pk_val.replace('%', '%%') if hasattr(
+                            pk_val, 'replace') else pk_val
+                        for pk, pk_val in
+                        changed_data[of_type][each_row]['primary_keys'].items()
+                    }
+                    sql = render_template(
+                        "/".join([command_obj.sql_path, 'update.sql']),
+                        data_to_be_saved=data,
+                        pgadmin_alias=pgadmin_alias,
+                        primary_keys=pk_escaped,
+                        object_name=command_obj.object_name,
+                        nsp_name=command_obj.nsp_name,
+                        data_type=column_type
+                    )
+                    list_of_sql[of_type].append({'sql': sql, 'data': data})
+                    list_of_rowid.append(data.get(client_primary_key))
+
+            # For deleted rows
+            elif of_type == 'deleted':
+                list_of_sql[of_type] = []
+                is_first = True
+                rows_to_delete = []
+                keys = None
+                no_of_keys = None
+                for each_row in changed_data[of_type]:
+                    rows_to_delete.append(changed_data[of_type][each_row])
+                    # Fetch the keys for SQL generation
+                    if is_first:
+                        # We need to covert dict_keys to normal list in
+                        # Python3
+                        # In Python2, it's already a list & We will also
+                        # fetch column names using index
+                        keys = list(
+                            changed_data[of_type][each_row].keys()
+                        )
+                        no_of_keys = len(keys)
+                        is_first = False
+                # Map index with column name for each row
+                for row in rows_to_delete:
+                    for k, v in row.items():
+                        # Set primary key with label & delete index based
+                        # mapped key
+                        try:
+                            row[changed_data['columns']
+                                            [int(k)]['name']] = v
+                        except ValueError:
+                            continue
+                        del row[k]
+
+                sql = render_template(
+                    "/".join([command_obj.sql_path, 'delete.sql']),
+                    data=rows_to_delete,
+                    primary_key_labels=keys,
+                    no_of_keys=no_of_keys,
+                    object_name=command_obj.object_name,
+                    nsp_name=command_obj.nsp_name
+                )
+                list_of_sql[of_type].append({'sql': sql, 'data': {}})
+
+        for opr, sqls in list_of_sql.items():
+            for item in sqls:
+                if item['sql']:
+                    item['data'] = {
+                        pgadmin_alias[k] if k in pgadmin_alias else k: v
+                        for k, v in item['data'].items()
+                    }
+
+                    row_added = None
+
+                    def failure_handle(res):
+                        if is_savepoint:
+                            conn.execute_void('ROLLBACK TO SAVEPOINT '
+                                              'save_data;')
+                            msg = 'Query ROLLBACK, but the current ' \
+                                  'transaction is still ongoing.'
+                            res += ' Saving ROLLBACK, but the current ' \
+                                   'transaction is still ongoing'
+                        else:
+                            conn.execute_void('ROLLBACK;')
+                            msg = 'Transaction ROLLBACK'
+                        # If we roll backed every thing then update the
+                        # message for each sql query.
+                        for val in query_res:
+                            if query_res[val]['status']:
+                                query_res[val]['result'] = msg
+
+                        # If list is empty set rowid to 1
+                        try:
+                            if list_of_rowid:
+                                _rowid = list_of_rowid[count]
+                            else:
+                                _rowid = 1
+                        except Exception:
+                            _rowid = 0
+
+                        return status, res, query_res, _rowid,\
+                            is_commit_required
+
+                    try:
+                        # Fetch oids/primary keys
+                        if 'select_sql' in item and item['select_sql']:
+                            status, res = conn.execute_dict(
+                                item['sql'], item['data'])
+                        else:
+                            status, res = conn.execute_void(
+                                item['sql'], item['data'])
+                    except Exception as _:
+                        failure_handle(res)
+                        raise
+
+                    if not status:
+                        return failure_handle(res)
+
+                    # Select added row from the table
+                    if 'select_sql' in item:
+                        status, sel_res = conn.execute_dict(
+                            item['select_sql'], res['rows'][0])
+
+                        if not status:
+                            if is_savepoint:
+                                conn.execute_void('ROLLBACK TO SAVEPOINT'
+                                                  ' save_data;')
+                                msg = 'Query ROLLBACK, the current' \
+                                      ' transaction is still ongoing.'
+                            else:
+                                conn.execute_void('ROLLBACK;')
+                                msg = 'Transaction ROLLBACK'
+                            # If we roll backed every thing then update
+                            # the message for each sql query.
+                            for val in query_res:
+                                if query_res[val]['status']:
+                                    query_res[val]['result'] = msg
+
+                            # If list is empty set rowid to 1
+                            try:
+                                if list_of_rowid:
+                                    _rowid = list_of_rowid[count]
+                                else:
+                                    _rowid = 1
+                            except Exception:
+                                _rowid = 0
+
+                            return status, sel_res, query_res, _rowid,\
+                                is_commit_required
+
+                        if 'rows' in sel_res and len(sel_res['rows']) > 0:
+                            row_added = {
+                                item['client_row']: sel_res['rows'][0]}
+
+                    rows_affected = conn.rows_affected()
+                    # store the result of each query in dictionary
+                    query_res[count] = {
+                        'status': status,
+                        'result': None if row_added else res,
+                        'sql': item['sql'], 'rows_affected': rows_affected,
+                        'row_added': row_added
+                    }
+
+                    count += 1
+
+        # Commit the transaction if no error is found & autocommit is activated
+        if auto_commit:
+            conn.execute_void('COMMIT;')
+        else:
+            is_commit_required = True
+
+    return status, res, query_res, _rowid, is_commit_required
diff --git a/web/pgadmin/tools/sqleditor/utils/start_running_query.py b/web/pgadmin/tools/sqleditor/utils/start_running_query.py
index a5399774..ece11f9c 100644
--- a/web/pgadmin/tools/sqleditor/utils/start_running_query.py
+++ b/web/pgadmin/tools/sqleditor/utils/start_running_query.py
@@ -45,6 +45,9 @@ class StartRunningQuery:
         if type(session_obj) is Response:
             return session_obj
 
+        # Remove any existing primary keys in session_obj
+        session_obj.pop('primary_keys', None)
+
         transaction_object = pickle.loads(session_obj['command_obj'])
         can_edit = False
         can_filter = False
diff --git a/web/regression/javascript/sqleditor/call_render_after_poll_spec.js b/web/regression/javascript/sqleditor/call_render_after_poll_spec.js
index d68f5ee1..8f30c10c 100644
--- a/web/regression/javascript/sqleditor/call_render_after_poll_spec.js
+++ b/web/regression/javascript/sqleditor/call_render_after_poll_spec.js
@@ -23,6 +23,7 @@ describe('#callRenderAfterPoll', () => {
       update_msg_history: jasmine.createSpy('SQLEditor.update_msg_history'),
       disable_tool_buttons: jasmine.createSpy('SQLEditor.disable_tool_buttons'),
       disable_transaction_buttons: jasmine.createSpy('SQLEditor.disable_transaction_buttons'),
+      reset_data_store: jasmine.createSpy('SQLEditor.reset_data_store'),
       query_start_time: new Date(),
     };
     alertify = jasmine.createSpyObj('alertify', ['success']);
@@ -37,7 +38,7 @@ describe('#callRenderAfterPoll', () => {
       sqlEditorSpy.is_query_tool = false;
     });
 
-    describe('query was successful but had no result to display', () => {
+    describe('query was successful and have results', () => {
       beforeEach(() => {
         queryResult = {
           rows_affected: 10,
@@ -65,7 +66,7 @@ describe('#callRenderAfterPoll', () => {
       });
     });
 
-    describe('query was successful and have results', () => {
+    describe('query was successful but had no result to display', () => {
       beforeEach(() => {
         queryResult = {
           rows_affected: 10,
@@ -81,10 +82,16 @@ describe('#callRenderAfterPoll', () => {
         expect(sqlEditorSpy.update_msg_history).toHaveBeenCalledWith(
           true,
           'Some result\n\nQuery returned successfully in 0 msec.',
-          false
+          true
         );
       });
 
+      it('resets the changed data store', () => {
+        callRenderAfterPoll(sqlEditorSpy, alertify, queryResult);
+
+        expect(sqlEditorSpy.reset_data_store).toHaveBeenCalled();
+      });
+
       it('inform sqleditor that the query stopped running', () => {
         callRenderAfterPoll(sqlEditorSpy, alertify, queryResult);
 
@@ -116,7 +123,7 @@ describe('#callRenderAfterPoll', () => {
       sqlEditorSpy.is_query_tool = true;
     });
 
-    describe('query was successful but had no result to display', () => {
+    describe('query was successful and have results', () => {
       beforeEach(() => {
         queryResult = {
           rows_affected: 10,
@@ -150,7 +157,7 @@ describe('#callRenderAfterPoll', () => {
       });
     });
 
-    describe('query was successful and have results', () => {
+    describe('query was successful but had no result to display', () => {
       beforeEach(() => {
         queryResult = {
           rows_affected: 10,
@@ -166,10 +173,16 @@ describe('#callRenderAfterPoll', () => {
         expect(sqlEditorSpy.update_msg_history).toHaveBeenCalledWith(
           true,
           'Some result\n\nQuery returned successfully in 0 msec.',
-          false
+          true
         );
       });
 
+      it('resets the changed data store', () => {
+        callRenderAfterPoll(sqlEditorSpy, alertify, queryResult);
+
+        expect(sqlEditorSpy.reset_data_store).toHaveBeenCalled();
+      });
+
       it('inform sqleditor that the query stopped running', () => {
         callRenderAfterPoll(sqlEditorSpy, alertify, queryResult);
 
diff --git a/web/regression/javascript/sqleditor/keyboard_shortcuts_spec.js b/web/regression/javascript/sqleditor/keyboard_shortcuts_spec.js
index d0973a78..788615f2 100644
--- a/web/regression/javascript/sqleditor/keyboard_shortcuts_spec.js
+++ b/web/regression/javascript/sqleditor/keyboard_shortcuts_spec.js
@@ -14,6 +14,7 @@ import gettext from 'sources/gettext';
 describe('the keyboard shortcuts', () => {
   const F1_KEY = 112,
     F5_KEY = 116,
+    F6_KEY = 117,
     F7_KEY = 118,
     F8_KEY = 119,
     PERIOD_KEY = 190,
@@ -109,6 +110,14 @@ describe('the keyboard shortcuts', () => {
           key_code: 'r',
         },
       },
+      save_data: {
+        alt : false,
+        shift: false,
+        control: false,
+        key: {
+          key_code: F6_KEY,
+        },
+      },
     };
 
     queryToolActionsSpy = jasmine.createSpyObj(queryToolActions, [
@@ -121,6 +130,7 @@ describe('the keyboard shortcuts', () => {
       'executeQuery',
       'executeCommit',
       'executeRollback',
+      'saveDataChanges',
     ]);
   });
 
@@ -176,6 +186,42 @@ describe('the keyboard shortcuts', () => {
     });
   });
 
+  describe('F6', () => {
+    describe('when there is not a query already running', () => {
+      beforeEach(() => {
+        event.which = F6_KEY;
+        event.altKey = false;
+        event.shiftKey = false;
+        event.ctrlKey = false;
+        keyboardShortcuts.processEventQueryTool(
+          sqlEditorControllerSpy, queryToolActionsSpy, event
+        );
+      });
+
+      it('should save the changed data', () => {
+        expect(queryToolActionsSpy.saveDataChanges).toHaveBeenCalledWith(sqlEditorControllerSpy);
+      });
+
+      expectEventPropagationToStop();
+    });
+
+    describe('when the query is already running', () => {
+      it('does nothing', () => {
+        event.keyCode = F6_KEY;
+        event.altKey = false;
+        event.shiftKey = false;
+        event.ctrlKey = false;
+        sqlEditorControllerSpy.isQueryRunning.and.returnValue(true);
+
+        keyboardShortcuts.processEventQueryTool(
+          sqlEditorControllerSpy, queryToolActionsSpy, event
+        );
+
+        expect(queryToolActionsSpy.saveDataChanges).not.toHaveBeenCalled();
+      });
+    });
+  });
+
   describe('F7', () => {
     describe('when there is not a query already running', () => {
       beforeEach(() => {
diff --git a/web/regression/runtests.py b/web/regression/runtests.py
index 1d4fa54b..bd9ffd67 100644
--- a/web/regression/runtests.py
+++ b/web/regression/runtests.py
@@ -233,6 +233,7 @@ def get_test_modules(arguments):
                     if test_setup.config_data['headless_chrome']:
                         options.add_argument("--headless")
             options.add_argument("--window-size=1280,1024")
+            options.add_argument("--disable-infobars")
             options.add_experimental_option('w3c', False)
             driver = webdriver.Chrome(chrome_options=options)

---

From: Yosry Muhammad <[email-masked]>
Date: Wed, 3 Jul 2019 18:21:58 +0200

I updated the patch to be in sync with recent commits made (since I sent
the patch) and fix merge conflicts.

Please find the new patch attached. Waiting for review.

Thanks.

On Mon, Jul 1, 2019 at 9:19 PM Yosry Muhammad <[email-masked]> wrote:

> - Alerting the user when Execute/Explain is clicked with unsaved changes
> in the grid.
>     - test_save_changed_data: Tests that additions, deletions & updates
> are performed correctly on updatable resultsets.
> - Feature tests:
> I also could not add JS tests to check that when the resultset is
> updatable the grid should be editable as the current code in sqleditor.js
> is not testable and it will required a lot of refactoring of this file, but
> again, this is covered by feature tests.
>
> Documentation:

-- 
*Yosry Muhammad Yosry*

 

 
 **Geometry Data Viewer**

 
 
index d9746ddc..b89e49e0 100644

+

index 3b5a549d..2bac3708 100644
index 79f6b7db..6d41fd1c 100644
 
+import sys
 import pyperclip
 import random

     test_table_name = ""
 
     def before(self):
 
     def runTest(self):
 
+        self._test_updatable_resultset()

+    def _test_updatable_resultset(self):
+        self.page.click_tab("Query Editor")
+
+        # Insert data into test table
+        self.__clear_query_tool()
+        self._execute_query(
+            "INSERT INTO %s VALUES (1, 1), (2, 2);"
+            % self.test_editable_table_name
+        )
+
+        # Select all data (contains the primary key -> should be editable)
+        self.__clear_query_tool()
+        query = "SELECT pk_column, normal_column FROM %s" \
+                % self.test_editable_table_name
+        self._check_query_results_editable(query, True)
+
+        # Select data without primary keys -> should not be editable
+        self.__clear_query_tool()
+        query = "SELECT normal_column FROM %s" % self.test_editable_table_name
+        self._check_query_results_editable(query, False)
+
     def __clear_query_tool(self):
         self.page.click_element(
             self.page.find_by_xpath("//*[@id='btn-clear-dropdown']")
@@ -179,6 +226,7 @@ class QueryToolJourneyTest(BaseFeatureTest):
         self.page.toggle_open_tree_item('Databases')
         self.page.toggle_open_tree_item(self.test_db)
         self.page.open_query_tool()
+        self.page.wait_for_spinner_to_disappear()
 
     def _execute_query(self, query):
         self.page.fill_codemirror_area_with(query)
@@ -188,6 +236,33 @@ class QueryToolJourneyTest(BaseFeatureTest):
     def _assert_clickable(self, element):
         self.page.click_element(element)
 
+        cell_classes = cell_el.get_attribute('class')
+        cell_classes = cell_classes.split(" ")
+        self.assertFalse('editable' in cell_classes)
+        cell_classes = cell_el.get_attribute('class')
+        cell_classes = cell_classes.split(" ")
+        return 'editable' in cell_classes
index e47145e2..7de93792 100644
@@ -304,7 +304,7 @@ CREATE TABLE public.nonintpkey
             self._update_cell(cell_xpath, data[str(idx)])
index 101aff5b..b0c92634 100644
 
index d3f6d9e1..18e15ecb 100644
@@ -156,6 +156,11 @@ let queryToolActions = {
 
index 7fd19b40..491f0ca9 100644
 
-  $el.find('#btn-save')

index 65b6c4ec..b1be514d 100644
index 1d2796ec..6d4e46b6 100644
@@ -352,6 +352,8 @@ def poll(trans_id):
 
     # Check the transaction and connection status
     status, error_msg, conn, trans_obj, session_obj = \
@@ -390,6 +392,22 @@ def poll(trans_id):

@@ -406,10 +424,22 @@ def poll(trans_id):

@@ -417,7 +447,7 @@ def poll(trans_id):
 
                         SQL = render_template(
                             "/".join([template_path, 'nodes.sql']),
-                            tid=command_obj.obj_id,
+                            tid=trans_obj.obj_id,
                             has_oids=True
                         )
                         # rows with attribute not_null
@@ -492,26 +522,8 @@ def poll(trans_id):
         status = 'NotConnected'
         result = error_msg
 
@@ -700,7 +712,8 @@ def save(trans_id):
 
@@ -713,32 +726,38 @@ def save(trans_id):
 
         manager = get_driver(

 

 
-        status = False
-        res = None
-        query_res = dict()
-        count = 0
-        list_of_rowid = []

 

     def can_filter(self):
         return False

 

index f7f6f897..0cdf861a 100644
@@ -87,8 +87,8 @@ define('tools.querytool', [
@@ -99,6 +99,7 @@ define('tools.querytool', [
@@ -394,26 +395,7 @@ define('tools.querytool', [
 
             // Set focus on query tool of active panel
@@ -657,62 +639,6 @@ define('tools.querytool', [
       }
     },

      SlickGrid Plugins:
@@ -776,16 +702,16 @@ define('tools.querytool', [
     render_grid: function(collection, columns, is_editable, client_primary_key, rows_affected) {
       var self = this;

       // To store primary keys before they gets changed
       self.handler.primary_keys_data = {};
@@ -892,7 +818,7 @@ define('tools.querytool', [
       }
 
       var grid_options = {
-        editable: true,
+        editable: is_editable,
@@ -1109,6 +1035,14 @@ define('tools.querytool', [
 
@@ -1164,7 +1098,7 @@ define('tools.querytool', [
 
       // Listener function which will be called when user adds new rows
@@ -1192,6 +1126,7 @@ define('tools.querytool', [
           'data': item,
         };
         self.handler.data_store.added_index[data_length] = _key;
+
         // Fetch data type & add it for the column
         var temp = {};
         temp[column.name] = _.where(this.columns, {
@@ -1200,8 +1135,17 @@ define('tools.querytool', [
         grid.updateRowCount();
         grid.render();

       // Listen grid viewportChanged event to load next chunk of data.
@@ -1250,9 +1194,11 @@ define('tools.querytool', [
       }
       dataView.setItems(collection, self.client_primary_key);
     },
+
     fetch_next_all: function(cb) {
       this.fetch_next(true, cb);
     },
+
     fetch_next: function(fetch_all, cb) {
       var self = this,
         url = '';
@@ -1452,7 +1398,7 @@ define('tools.querytool', [
     },

@@ -1461,9 +1407,7 @@ define('tools.querytool', [
 
@@ -1477,7 +1421,7 @@ define('tools.querytool', [
       self.handler.close_on_save = false;
       // Trigger the save signal to the SqlEditorController class
       self.handler.trigger(
-        'pgadmin-sqleditor:button:save',
+        'pgadmin-sqleditor:button:save_file',
         self,
         self.handler,
         true
@@ -1650,6 +1594,11 @@ define('tools.querytool', [
       );
     },
 
@@ -2262,7 +2211,7 @@ define('tools.querytool', [
 
@@ -2325,12 +2274,6 @@ define('tools.querytool', [
 
         self.trigger(
@@ -2379,8 +2322,7 @@ define('tools.querytool', [
 
@@ -2456,13 +2398,12 @@ define('tools.querytool', [
           $('#btn-filter-dropdown').prop('disabled', false);
         }
 
@@ -2846,9 +2787,9 @@ define('tools.querytool', [
@@ -2877,41 +2818,42 @@ define('tools.querytool', [

 
         var is_added = _.size(self.data_store.added),
           is_updated = _.size(self.data_store.updated),
@@ -2921,154 +2863,188 @@ define('tools.querytool', [
           return; // Nothing to save here
         }
 
-        if (save_data) {
+        self.trigger(
 
-          self.trigger(

 
 
-                // Reset data store
-                self.data_store = {
-                  'added': {},
-                  'updated': {},
-                  'deleted': {},
-                  'added_index': {},
-                  'updated_index': {},
-                };

 

-              grid.invalidate();
 
       // Find index of row at fault from grid data
@@ -3112,7 +3088,7 @@ define('tools.querytool', [
 
       // Save as
       _save_as: function() {
 
       // Set panel title.
@@ -3199,7 +3175,7 @@ define('tools.querytool', [
             $busy_icon_div.removeClass('show_progress');

@@ -3244,7 +3220,7 @@ define('tools.querytool', [
 
               // Update the flag as query is already saved.
@@ -3253,7 +3229,8 @@ define('tools.querytool', [
             }
             self.trigger('pgadmin-sqleditor:loading-icon:hide');
             if (self.close_on_save) {
-              self.close();
+              // Check for any other needed confirmations before closing
+              self.check_needed_confirmations_before_closing_panel();
             }
           })
           .fail(function(e) {
@@ -3293,7 +3270,7 @@ define('tools.querytool', [
             self.setTitle(title);
           }
 
@@ -3527,7 +3504,7 @@ define('tools.querytool', [
 
@@ -3630,10 +3607,11 @@ define('tools.querytool', [
@@ -3659,8 +3637,36 @@ define('tools.querytool', [
 
@@ -3669,8 +3675,8 @@ define('tools.querytool', [
@@ -3994,6 +4000,146 @@ define('tools.querytool', [

 
index 64c75754..2290e2bd 100644
@@ -175,6 +175,16 @@ def RegisterQueryToolPreferences(self):
         )
     )
 
@@ -302,6 +312,24 @@ def RegisterQueryToolPreferences(self):
         fields=shortcut_fields
     )

 

 

 

 
 
+  describe('F6', () => {
index cf9ab19c..906354b8 100644

---

From: Dave Page <[email-masked]>
Date: Thu, 4 Jul 2019 16:51:56 +0100

Hi

Apologies for the delay - I've finished travelling now.

I found a few issues, mostly minor:

- The patch won't apply with "git apply" and only partially applies with
patch -p0. Please "git add" all your changes and new files in your repo,
and then run "git diff --cached --binary", which should create a usable
patch. You can then un-stage your changes.

- execute_query_utils.py is somewhat lacking in file header and any
comments.

- There is commented-out code in sqleditor.js

- "committed" is miss-spelt in a number of places (2 m's, 2 t's)

- On reflection, I don't think the "Data saved successfully, you still need
to commit changes to the database." is prominent enough - in testing, I
found it very easy to miss. That might also be compounded by the fact that
"Alert on uncommitted transactions?" doesn't seem to be working for me. I
get the "Save text" prompt to save the query text, but if I say no to that,
the Query Tool instance closes with no further warning, despite having a
transaction in progress.

All in all, it's looking very good though.

On Wed, Jul 3, 2019 at 5:22 PM Yosry Muhammad <[email-masked]> wrote:

>> - A failed save of data changes rolls back the data changes only, does
>> not rollback previous queries in the same transaction.
>> - Updated the following screenshots: query_output_data.png,
>> query_tool.png & query_toolbar.png
>>

-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

---

From: Dave Page <[email-masked]>
Date: Fri, 5 Jul 2019 12:01:44 +0100

Hi

On Fri, Jul 5, 2019 at 6:28 AM Yosry Muhammad <[email-masked]> wrote:

> That was due to new image. I made an applicable one with the below
> modifications, please find it attached.
>

Thanks!

> Added.
> This is the call that adds queries that are generated by pgAdmin to the
> query history. I commented it instead of removing it as I will add it later
> with some modifications when I add the checkbox.
>

Sure, but we won't commit commented-out code. It just makes things messy
until such time as it gets used (or more often, does not).

> - On reflection, I don't think the "Data saved successfully, you still
>> need to commit changes to the database." is prominent enough - in testing,
>> I found it very easy to miss. That might also be compounded by the fact
>> that "Alert on uncommitted transactions?" doesn't seem to be working for
>> me. I get the "Save text" prompt to save the query text, but if I say no to
>> that, the Query Tool instance closes with no further warning, despite
>> having a transaction in progress.
>>
>
> I made a separate notification for the uncommitted save to make it more
> visible, check it out.
>

That's definitely clearer now. It avoids the "blindness" caused by the fact
that you always get the green message.

> I tried the scenario you provided and the uncommitted alert worked fine,
> could you please try again and tell me the exact scenario where that
> happened?
>

Hmm, it's working fine for me today too. Definitely wasn't yesterday though!

I'm going to make some minor tweaks to the wording of the docs before I
commit (as well as removing the commented-out code), but I think this is
good to go, once it's had another review. Khushboo, please take a look as
soon as you can.

Thanks!

---

From: Yosry Muhammad <[email-masked]>
Date: Fri, 5 Jul 2019 13:10:13 +0200

Sounds good !

Looking forward to any feedback.

Thanks.

On Fri, Jul 5, 2019, 1:01 PM Dave Page <[email-masked]> wrote:

> That's definitely clearer now. It avoids the "blindness" caused by the
> fact that you always get the green message.
>
>

---

From: Khushboo Vashi <[email-masked]>
Date: Tue, 9 Jul 2019 09:58:48 +0530

On Fri, Jul 5, 2019 at 4:31 PM Dave Page <[email-masked]> wrote:

> Sure. I am on it.

---

From: Khushboo Vashi <[email-masked]>
Date: Wed, 10 Jul 2019 12:03:24 +0530

Hi Yosry,

I liked the way you have refactored the code at some places in the JS file
and made it cleaner.
Here are some points:

1. The table (including partition table) with a single column having that
column primary key is editable but the save button is disabled, so,
ultimately I can't save the data. Note: The table should be empty to
reproduce this issue.
2. command.py - The check_updatable_results_pkeys function calling the poll
function and checks the ASYNC_OK, I think this is not required as this
function is called from the poll function from the sqleditor/__init__.py
*if the status of the polling is if ASYNC_OK*. So, I think this is overhead
but if you have considered another scenario then let me know.
3. In the Preferences, the label of the keyboard shortcut "Save Data
Changes" should be "Save data changes".
4. Dave has already mentioned about the commented code, so I do agree we
should remove it.
5. I didn't find the doc updates for the keyboard shortcuts in the
Preferences module as well as related to this feature. Am I missing
something?

Keep doing wonderful work for pgAdmin. :)

Thanks,
Khushboo

---

From: Khushboo Vashi <[email-masked]>
Date: Wed, 10 Jul 2019 12:44:07 +0530

Some points I missed:
1.  I assumed that in this patch modification in case of OIDs= True
(without primary key) has not considered as that is not working.
2. As we are already showing the changed Data prompt on closing the Query
Tool, do we really need the Uncommitted Transaction prompt?

On Wed, Jul 10, 2019 at 12:03 PM Khushboo Vashi <
[email-masked]> wrote:

> 2. command.py - The check_updatable_results_pkeys function calling the
> poll function and checks the ASYNC_OK, I think this is not required as this

---

From: Yosry Muhammad <[email-masked]>
Date: Wed, 10 Jul 2019 11:37:52 +0200

Hi Khushboo,

> I liked the way you have refactored the code at some places in the JS file

Thanks ! I am doing my best.

> Preferences module as well as related to this feature. Am I missing

I will look into those and get back to you asap. Thanks for the feedback !

---

From: Yosry Muhammad <[email-masked]>
Date: Wed, 10 Jul 2019 11:41:13 +0200

Hi,

> (without primary key) has not considered as that is not working.

This is not implemented yet. I will work on that in a following patch soon
enough.

> Tool, do we really need the Uncommitted Transaction prompt?

This is needed when auto-commit is off. Saving changes in the data grid is
performed as part of the ongoing transaction (or a new one if none is
ongoing). After saving the data changes the user should still commit the
current transaction for the changes to be commited to the database. This
feature is also useful in general when auto-commit is off as users may
forget to commit ongoing transactions.

Thanks and Regards :D

---

From: Yosry Muhammad <[email-masked]>
Date: Thu, 11 Jul 2019 00:40:25 +0200

Hi,
Please find an updated patch attached.

> ultimately I can't save the data. Note: The table should be empty to

I tried to reproduce the issue but it works fine for me. Please make sure
that you edit the empty cell (to add a new row) and press enter for the
edits on the grid to take effect.

> but if you have considered another scenario then let me know.

It was just a sanity check, just in case someone calls the function
incorrectly. I removed it and added comments below the function header
indicating when it should be called.

> Changes" should be "Save data changes".

Corrected.

> 4. Dave has already mentioned about the commented code, so I do agree we

Removed.

> Preferences module as well as related to this feature. Am I missing
I don't know which part exactly are you referring to.
In the previous patch, I have already updated keyboard_shortcuts.rst to
document the new button shortcut, in addition to preferences.rst to
document the new 'Alert on uncommited changes' option. I also updated
query_tool.rst, query_tool_toolbar.rst & editgrid.rst to document the new
features. Which part is missing?

Looking forward to your feedback and comments.
Thanks !

 

 **Geometry Data Viewer**
 
diff --git a/docs/en_US/images/query_output_data.png b/docs/en_US/images/query_output_data.png
old mode 100755
new mode 100644
index 8eec7087ea732d086e8ea03f782c20c901be7da2..6f6f0dc11f055b4f792bb0580408efa8e0c3a7ab
GIT binary patch
literal 50204
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
P;G?3bu8@Dt{Qmy~TC7B`

literal 83700
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

diff --git a/docs/en_US/images/query_tool.png b/docs/en_US/images/query_tool.png
old mode 100755
new mode 100644
index b9d165efb8a1ad533bd395b7b030ad132b64418d..6f6f0dc11f055b4f792bb0580408efa8e0c3a7ab
GIT binary patch
literal 50204
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
P;G?3bu8@Dt{Qmy~TC7B`

literal 85347
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%0DCTlWyokEgV6h8R9vj
zq@Q!lF~k)ly)1vpI=$gn3yKQvCXUE}*1?Rn*(^mL4KN4E%c^znTORK+zpLKY?teF-
z9b=<R8b1rNjbebR?g2Sw5~VfUMR$9rDfS1u-YXuXigb>VIFnT7@=gf1qFWNxJ}eY{
zC?)l}(Z_C}jY6i!`-U4K>~Hk5K@A%>E`0lT69uG9is7dV$br$0Ceg;m2C`888b(6l
zu;pyT=OXTUzBcfv(eVA;WK?oFU_hKNz`U;o>p?h)bB>KJDiE$n{pwF~z+45;lb{{a
zpiw$==SwU#S1r3<nq>msMy!1Q55=H730p@nl1b?ofB-oM(S^odx|Bk|D(5$XsuZv>
zV%-aP8KV7)nA8rs6O9Q3ia=WEw~SamTt_s^A^?#3rD@Y-v^nTpB^eW)?oW1n9w|Ec
zK6M7v&SH*3p>TkQpH1$B;;7eL_+$tMgoaM$cw(YdPi^hWv+W)Hj8+aC@${Hk?Z5}-
z1YD5kA^62;Tj=f_`;)Y_66rfiiKA4!c06r?sMtRQD<7qBA)8`Sd-o;HB+{CFh~X1J
zJLm45Z(i`Wkt18TYzgfq8QJVyn}U|b4XoUZ?X^1eYxV7b>*lLxjBUuXL$qY-XTwjX
zL*fk`c7LbB(*{tGAAquw7;z&G1CF;-EA2+zd*5uK`<!l7<>lYL^&+a1k0`H#a|tSN
z{22?GLC*q5&+9<uN0Dx&@0}3`4|T;2JK*d^|Kl{2*#AuD6!R>RWljYx!&OR^DZ)Jt
z8gYKnQPCJ7Q=AA+19K=-aR4DHDou{<_FVOka{u=&dmTLV>7Fwmw;lW3PNNV;71WLV
zW_CHkuf41}B$0$vPEb<h6^XpHys|P3{8B`0oI!w|bq{{caTydgy~$Ij^s{5Q@p!}?
zxdmz69mxX0;huBltZ5WDUUwGv-XseD!yX^{e0UNwjoj_wS8ozGto?#n7(JiU=PQg-
z;&%p^UP3~~?Cjq1pY*RuP`(^|-{Y-k*^K&Ib?N;e3)Mr14l!VAZ%*(mxa{_7a`~j2
zZ))4W!%C0t1E#jhakzPGlj6s^(PK4Ud5;>qsZqr_?KzdrCo3t|v+S7CH)<@uZCuY0
zYxU>c^BRhB1{o>U_X97TUYv*`r6>7A+IWeE=ZeHTE*k~;!L-OS=1U!~00*N$rdpR&
z7HprYnxPxr`YjDATdNmyTVmsm8_&STdbx6*&z1`rv#;qdI%;C6|6m9@_K`ncH(+nN
zBaZL%_kv9;A;qVgh264k+b>?bHf80w*j8!-E%Sbzsvi-txT0$Lgvh{_9~yrs7<?eL
zpJsB_^D{=5bTHCInvQDekg~|&)xH>q=|fXv(l4YqYKLd`3p<`wr@ODOyS1e%`s+-#
zCW0ZKK8BSRKnqoT>^H<hBPi$iK2G04iIGDcJ|S!_=g|#xDvVA!ilkW5BbcKSSM{>x
zWxvDmBqx|o`ISDF9l<S$n8C)Qr04M8{r?bNGyL}$l(ycl=l;U(l&;U6!U5eqU)b&P
z%>CzEf?-$NU7laVM!3DOYe|dx-><4B(_bySbo18fw~n6K)6Jnb6&0;2Pj%a%epKmg
zY~A7!$2>01g05SV98_F4#(G8cWIel|r}lolaYVCYTu0^lDtYd$KeqY1^Az<afgf57
zUERifag#yYHS7bnI>wqMe@lDe{k9=5*y`B^SM#2>r7u?W3Q*ae>zC|!cKnKWcek(H
z(QA+K<dGIumim=d`SS+v2|2V&J>{}mx&HZigI~U{KBc#7Y3jbwN}5r7FV47A9CBwt
zl<7j}*qPZ~($igr-+IZcF^gM2kGUr-xw`$-FWvs@ySy5+-P~qtbQjgq0YSAvPlNIb
zr@wr4uJ^}g?zQ(`oN$j&I<+?6($e6kgZ|4owI4g38PWFikAUC7hCLk`>gjzQ(>y`>
z_xELs{QIsQ7N0P7*CmIRR^b*pIdPTcu4_j1SDTvH+i&v9{TUjiXLHMzEn2><mCH|c
z&mi?7W40f;<QejPSnBVpPCI&4R{B+(d9!6kRrARhw;nB9ee!XkSI<5HyZ_1W`|xm=
zEi;-|R9$~qV77isXS-O_uN(DUpI-G?5TD+?Zr`d6@mJD!=+~M%X%!W$bsG^e;`G4t
zo6Iw}-Z~Q6!=>gwmX<C<wVv(&&kyRp`0rnpHnteP23@A^i=qK1^|ywlQW=ZxpCiR}
zOKS7wk)Gr8mhIkixlRUK=rhNX8}mhFweT}o;riC>3`h^#=yIZv;u&4eTPhiIkI!^l
z$5@Jx<W|E@T`903_Eth>IELQm#r5W-HGh@*iXlQGnx<gPDF%>}RFOz36z-wM0cmCh
zp57FkOwALBNXl5N5z+NFs0%G8U8$&>8nt*0q#IPK!qhJx9V!STyJ3P((WrVJSg5V-
z(-`%z2neN=MQ0=}&Y$Kdm7nRv8HZZ=H9xNX^<w@3VzSpjY`4<VN-o|F{FHGysSq4u
z5feEzN-j`+J%mVm{$Uv9l|{5y#20^Xe>B=6R?l%T{9WDvQ_W>(z5X4VQ&pS~c&GMM
z(;5G_$cjPBN~(w+t)zYvxE{ZQ)v@!De$`+9Y1~>B>S#F`Ln1{caCmxT<741Pq5uUR
zQ1<KcazEg*I4!sy!~;jW(qCtO=~y~ue$Zf-R|g69Q2MvpwsneW1k?c?H<HMrX+T60
zs)e_SA$u4Yd-ZvUN(UuZn5OV4$bz9eL5G3hNqyL>n*m|WDNnmbk^L{4D_1p1W!7s^
z_e0a>te{j0_PoyT;`q7Cf6~`3)eZeOE5(<8%3l>R#hG9N{)WAc|JKtBB_^K>o4~c&
z=i4`+@ubM33zE@+X|_l*gD8Zg+(}E@qd%S>g}`P~(mkdP_UTg+>>RY`@^ky;=%Hki
z1Of>eBw9Zp4NIpkNQTHQaaAx@;7hZ#1b7tyIf#vE2MmX170r4%CgzDC^xzkumUcV(
zTb(UCGL=D+Vov$;<;$#{V}L9XzrlgY%;Ynf<>ys?=^koKyc}2xN;SwbaNRvEKJmp^
z-X$d^e7cuUVy_+AQ|plU+hMFp;Nw=P4(5ag1@-)zmN_E#xC1$|J>7LfGo`OT9~v48
zJ){BsgNvWeJG*41xy^Cl(7UuoP#}GDRJpBQ3qgsjnm+=16nyp7$Ls9_cQWITJnMC@
zU(W-+v5agiA+rk9_vQyq3IoCDE14ZIs1q~M?#vrx=H_tPtS@n03JA$f&CGf%ez0hr
zdXv5DpGVE;El4SBp2S~$c(jcg?GUm65o^(g(|I0e<B6$Bkb0;KVb<tC+5gfFAacaJ
zPmIy{6A$rBjz**<_8JNGBiI*_+eUJ!9uoUYMIj<=fpyRej1DQD6~CyxfyWooGs}QM
zDxP}fnM3o>IX~A$7sRX@^oly(zuk0~JiP(ss-(D{x<q7nIuIdJ3sDN9UKNWOrDI*u
z$a|@&^ME|4$<6`ugEczg=jJCI<<P*AC!^Okv5#elBtPs9EqeytniaqTDl+KMR}gau
zob0*<Mk!HA%Q>TfLBVN-8$=CFGIFX2`Ze(&fR7lhD(?9WR=TU9ch`WlP1a}L`F6CK
zheu&=!7x~EYUK1zb49I3?Tli}=|1mgJNXSP8may`8Zg|ZHTc$1tP6zla};5jap$;j
zVn~+)<&_A1vHNV4&kax`dGP2-rKD$MXDgU%e)PeflY^(5x`to>wY5!m1jRDVR^lsQ
z4uHijum0Q_mxf5y{$t`r5z50H&p%Ny^wvj9`aRxD*I^+ADyrq4LenAB;Pb;r*JFSW
z)6|1$v@6+O@-BD^0L>?;E?SdsOD9NfaWaI<xtUsg8ySix$N)uBx)4yz@t~>xGo}wa
zi-cOp+&@}33FtyTG#W5Sqz5o2>FJLcPo{u+GwwnO$HlGW<n^?-3KGrDQRVZ!;_BSZ
z6DVNWoW>#AzVxk?bbsbo(^O$20sdRw2<m5v&?8t^XAPngpc$H&#*ls+ad=v7v>3w|
zLZmxZc^oWQ<nVW|U(1^PgFUO@Xn+aoM%P8hVsU!rC}E;unNi50#by&&owseu6DtHZ
za6srGaS#+)%qS5}uAJ>a7@T8tZ}$wcSX06lOXLS6YNMrNxAIpeBl8r197(i{2}6m<
zx4VszRKR$STd*hfCi*pB9*S@PL0rve|HPyuL!RUau?2DBqsB%<xqqbB2mnca^5U!y
zVi=_P=Sl{S7lVxz)4A9b_JHr_Z={)Z0*n+~o{%$I^8x%l6PWl%NDHJwx?5l8SLJ&1
zCrjnqdg0w2SSJF&H#R^<<Zzh+#+ct<%$;K@6Q}9UBrZlawWMMn8F`3vNMfAuj1(pR
z>H;+_8xsD(9eT%#abDDW*^a|-k5g$cB<2h0HUb|>b`zAjuJ(Hp#;?e?FBY>!$+UOC
zD=NJ|xg84AnZC^5D+h)6l;Dim-sBywXMP_QxsZ**ltm@fjn#AZ_!*m`x{!+u@`A@9
z%m}xE>>40-+8;LELOwDzZ!D%nfItNBZ#ZRa#RTh^y@7tJEuj&p@i|}UrSX8=Wo-=u
z+ZD(IB_mLZP`m<10CGj9x~$sWzY9<Z3eCy)=VH2PHcqYdV}TiczqHgS_qnrAUktd8
zj=ax|;}6IMb^7knTLLVJ<-^G%ZPYr>_w#hWt|d*i&D8?ZdZ-+_6#9c6Ywz9|*iv3%
zBX#nkDqltCE^<1?{GS2PtO{^)$n&UB#0E`5Dnuj+lmWWUbkSpM0MsGvOTXfFJIGq3
z6ZiRBn&7BI>#>eg`t|s}qre%cLL|;gqGzyt(5nlyxFD9%Czjp9-z~-Y%}s_gi!uiK
zNq~C)yROIPLqE{ubLL|itNRm~O`JRwqt$EM(xxz+;${SN6$fdUCgD!CuD|x7%5@xU
zRHX^dflo1xTSVK$^7)&QoG!%2-^Ox{KVf&yK$iPBOiwc4jdCKW@u~Wa9%Xuf+d8!%
zsg&pu1?Xr(JGE-;sqB#Qf>^Cb7s7zN>@m;dFDmcjVo(5w@FSj{WNUg<N)$v+LPU#*
z1qCMwF}}!jQB8A$b!$?eedE*bM6HFk`wBg*38*S|e>u;{tYg#XX@_*;WaN39Hd;SE
zT(HD-{24qh!W9aI(4)uLXIr1`Fo9A@Pk+P3Ogh&t3A*80J=6Z*fk2EFbS*5}lso7|
z?Yr27j-``N?YOg`fZ~^B^N=$Qnn=_m9FJ#$o6W~HEE;uSFthg_sF#uc%NPhEC~o3~
z5Suy=Y@$<B?Odi%rE<`nWH&<7=R{a&Dw}rBJrfw`Y*JU192{EJ-}(C$D-(W7I~A2Q
zj?_-zXRIqb?>ZS{@^VeSU^XS*AT-!{jJha}QtEL_P9(4s3HZ-j0!Y!_PlKnYRi)K>
zw8}GG!;9}X@*EJjaONuzzDL5na>3p`QBAn(dBaQ&olNssf^WQ6KvOQvJ`<h>e{;LK
z@%Wkrpw1NB+5}6|HCWuO2mcnP$%dQ8$v+HY2x>SIPa$IbK@60~kgWBj{i8PWdAl}Y
zkJ*Lwx|9<IsmL}JV0L-=>rouCE>S+8KYi-qwe+DoLSAT_hj5_6$3yG01t7&`7zGQ$
zx}e$6_IEnCUohB`8SD74>f*-Sp_h^u#S5PhXWx=zuYi(}<0Ze+8ndLfmoS2V5_|<t
z-_WqR>^wYP3n?pryHG$NML4$h$JeB(7pVE1YA!f?l-~8KN;rbvhGPThOtO1W#m<b+
zi_g#Cku#{mSwL=&#OpV&7O@Y}@E{LXkh>dcgX!aQxwdU$|Em4N3_!_Fz#YO8lJ7v#
zFB$(r@APr_=H17DeFnNBhgFl-tp^sCFe$nS-H^zr4(hGh3DzX@Cosy4!PCs+6R;kP
zU(B@pR8e5q+td7XgC^wtzNNsq<gYGDv4FJO92P=@(F>eCcj>{aSJyL+&75@v>Kbjg
zC`n{?ABQQ&tZXG*3h05kk|d6RKn2@+fl-6_TGtqYO#fF-^ig41*)H`a;yDQl8b`e-
zti=3Vo7e0(@Uo;<x4SD#!|pMIC?{E1bPye<p&=!hnt}-Zot&b2JmDBGq&Ev{{BgjD
zp%}kdDuOKU#giwhdH#4=!u@Eoz8nd+q=!QjJqqXZ<>eQx&!C4AUXwxx6Tlm?2)Z-I
zj)PpNEOG>d<tD>~B~ODg9vhP38~3FktvK3tul$6@g&?4szwQ}4yY^8SI>yRj3c4^`
zd4}>h`SN!b2w^8>rfZQAbsjedz?sal6>yMCI>PZ*X6WX|1*uV=HeUtW2Vd%r>VRT!
z(ujwZySkMAJ48<6r1)(2I2;LQwU2-Q1K$ysm;y3Pyvw1K7&&Oj1XR0@lC)XT(mu+~
zU_~wj#Q$ZnH|m#!>haAF6(9E8$rM6vs4+Bw^(1Yd3Sc4nI3V`6Y*_es7IDDayZQNZ
zO*az<n&Z--etpEKyY;&xUf3IJ1M!EzL`jij$&K1YoZMBj;kN||Pila;F^q~C*O6E;
zB>GphT_B!48eYQ>DHAX_zd5Zm7^6x<;<O(8bN7y&98|onDYO<c%7%|x#N3VcrteVc
zB`=7TVxKs?Cfs1xJqawFNk72&)Ltm5u<bS|r*3p*90qX>_c8Af9B^4{op$@<=n|wE
z5ko4EUnadHzXZi@Bx!D6pUicDdLd*X>SpAO#Kc6#geZz$g2wFcB~J&b`utwrCpQOP
z4LDd-al*}0{)uh}A(a;JIO9=wiHH=!UqmBfPj3Bq4v$~~wrXK$q=w}L2ZEzRy~!i>
z+n<n-Fwto<kCN>H$SkoS)EOFbgFk}6n_RLHk!)XTw!XV+_*(Uc-Y=Hf-%Qa^<zi)>
z3fRDv#2=q@sb5gK_LZ6#p@OT>i&df<78`(!^kHHA9b(LBNn9#;Cp`3|X`451#&jdn
z1z!F_-UA!~gOsp3a1SDVt0!eAYQrMNqu;`!24SKwG-ng!0!#zrzI?fL%IP#Fx9K*^
z8s{MO!uyMDicUG|Jk!ut;7lo!s+UMs%B9gGdb_9i7lXe#`Cgbg_FBz`txa0KnIE+H
z{y;6b!`XAXszoLLSaJQu=LaSJ%0chTE3`r<FB#lfS{$1CK>cr^9KnI>GQy`>+Yhi&
z9rEC$`FE|MJ`>)RehU@)h`XTT2)6XYrE55+MEv^V<W0bf(ex)})m0tEr!rRm#lgDA
z26a>C8nzIu_s)p5*Jc-`&1g7r(vvsEg*%O+5_*SR`*~o(l+FDbAgRB$q3!Q$YO{k5
zB}IqUrI%GT^E2t&9t`dDqtCxjtg8Iaz@c5acyLJeyY?mzi+ysl%qlNjH~c-PAntR<
zuCBvnI<s4WZ%5nkIl-aTwa*RfB$-5-R#?4PRW;J{Kyt*+)PgH~0CU)QghT1q!{?K`
zS83j_GgLbo7<Is-#-wX;QuV>}`gKFFVzkXZY0{me3m-YT1CvXYLVOM)XrgIl%JTK%
zd=gEzv)|y-ks1fxtU;hDzs?uf^xr-AK({LO*rHo??U(e-1{9EAsx69IpRgXa(<U|b
zw@&H|X4xFB<F~I&`)zJ^sdKgIp@M>~ht%f{4r!yrt1&-sygS+P?vf7COR8;`#*MLP
zvNf#Xq2#S;TIqke4jggpz<rhQ>>XBttHuR|)OBb+BC%j#(6+#z9|0=u<F>w<cY8t9
zfvSm0ipITk!Zghmd(HRUvgOshzTc+?OlTixbz3VqDBsoGZtbE*g(bD+r#d|iv^FpK
zGOKCuQKfTRJJ_D;2pgZhpk7{+tCxm{Pgggae`s0nIrE>Fr|CbNSuaSxuE_mM>*rG~
zZY+v=^@}QRf%bOuUbXW)laFcEW))c8FI*Zwv*O!Yx6N0l`V_XD3t7|mYW0(k{s{@g
zQ#;2W*n=HyR!fJx!qvNgPBX$9_HKN2QSQ=*KH)7?&!0Wn_U*flg+-+rmN{-Wwubq>
zF*Q(KI>7wOp~w*pn)$9vJapW8*BXndqk{S#>u0T{-2P+vvg)~^>9dq>-dfd!zi&sc
z6+!L$&Ptto{Fliooq55DC%*5<cDy@pkoncsp><c&_C@urn!C$!PvYm+YgM;tT-g#>
zTYba1clhOJyVjU&JG;nPKeNNiE9XD1`}E7RQ);V@Dk|>RQ&Tr+Rjs>XvwNKJyX?On
z8u~{sNdV0F@0Wi4)Xi7_bH?z0_*XCb$&g3K-;3SP)R{FsiN*<xr2JATtK|pB3jy9w
z4Ii&*v~fL5(?a|_PkV=Hp2u=Y+tfERA^-P5*AhdOkPmlQvmx}8jc%P;5lcd0YiybW
z*92x5pygB*w?J;^-ZRo#tbt1Be3itbQ+8Wya6dz=?~(tYoP8BniS6fsL31}WnivYN
z#N;;Ps*nU$1&OMCb?v9iv}gRr+HhAwz(rn3w@ca)VCm94`CR<0D6gP;qm(4IoU-Iv
znR##Fmnq>D0J20Hi|8L^K+Xh@vysd!MVzQ@ciz^v)`?KBdn>XGQqVm}<M8D<4O$7d
zd43!U^6;DA^)LmK>T(=bS~DnpmJPNB71-k*Yihm7xhqHX@CR~*f|OV%?3e%8+uMhH
z^sf0Txf-LWZ-I&%;1JQg6wFr%A+q4G1W_WID|z+{w0H%W3~n}vQ?H{w)riN%$V-`g
z^u?9cly7%;sZE2=3)(j{bjo)yS_~^IC%GudWdu}00@OWTf!fZ3>(mZXwt+gun>7K$
z)R6h*KoDqo)&U||ykA2(CnY0l2Lxwprs<hc&h)t+(CL3#08((4&0Ui$k>m&mcJDAE
z9{$p=aZzSr*^W!E4tlxkWdZ`m&YAwEGhs9d>Z!T-<doSdBlBRB6Axp-v6*k+o?m9*
z@=CwYm2;%tAOw*yCt|<m{`9gfent_F>}rj#-GpyHQeU)A$q)pM9AFVE$e<vc%0Q*!
zxR6^}YAq_vep)UPs0CW}Z^q)%XhWCphcXfw0@BIAW3cr8^yh28WKR(5JLAq=@7mEr
zBM9j!|DhNty1SGDN@lS`*MT)zlsr3S5ls*uw<SK3%74CA;i6{*R&VP0KHqCd93oUp
zyVs1|m`?N?l4V6s6`}844wd=@xnQ?zFG39jNP<s5EEH}W@`A+4vFPh)HgnHge5N96
z+N@a^9qV9b8PcbVV8rt2vIeMNil|Vft{SBTmn<4zVHAjuwZ6C{4LFc?+Mdb_wiUY~
z>*9{Bb_LFuJ-c@+$QV|MQu#7e%6b6{kQh+$9KX=~I-nl9OAy^)_AFt1`BGcj_|&Yr
z{_|azv`&qrHb=`L6*MrniAO1XrTBd*Ptt*w(%rP^i`?N<hpqi_?m|5oq01u|nKuBT
zdXxHqfuhH(|C)YBg16}X#lyja6_6B#jRVc8oxUnK*fD;_j^94t?(6BFTIBh(?8_IM
zCfyXrC^$`ef2^N+qEXX1qe_nEwEvl{X!cLSGN(}qW_?U|e9_1W{nBgG^oO3IA;!mj
ze9DVv-yPf1X8NBThvc-78Q-iuKgU0@S&ZZXte;3;Y~J@!b2Ji_kc=9m0kP*jX)61j
zP`kNzBG@C6xJ}d_?Nx$gb^)Tx6O=Jo?Z<iA$k?+ht3UfOcNX`dZgv8p3Nm9n33muq
z76mr0<Qz%7A8rjv<D!(vqyU`)p$`kCC{rljpp~8v?nI3%GgT?rG-qAZ;@__A)6O?(
zBa$GAj0zqwC!Mw(5ce1YBhj*oF9|rbdB47hIOcPQlW}uc-+eS4Ny9lxZQN~Gqnp9*
zM7le2q$<KMNOxw}9RueOqyS<<`QCCv-jKjsv^93DZ3T%}rLZHN<dQ~%c_t<%bfpie
z5fH>RyTO6xhLlirL-MD6&00)I&&yK*assaw4?Zk`=1Ln1Z3!BuQ>O@@J*V#KzKehk
zG?fw^OosCy*SD#bx=I>*CL);Nt8`o^vz8d)yqo4(h$osE{tZR$teJBR|BZb`vnU=b
z1b~W3Z}I}4kWlsj1<L%{A8?yOjsWBCC12tJxvZ#~mmGGWRVIadJwwxj4z&K*-|GA(
zen<ywx5>JgJ_2~sJg6v==DQvF9I02zp+TQRuH()lN9INiZUpX)o`o}&X}3VCgF8=&
z^<JzS%4l7tMU8H=6j$<EgMKh35NGFs^aRX?rePW;sW$jbsUU?LgUCnk)ttA}y;BIw
zK*E{%twaj6(-_upvK2O$x16Q&VAeNiT*-!$i6bo<Z5-65i;jH@*#Eas1;8kAj@cRt
z5<tfP6zCo8Y1>|{MUljUk<>@s26-GMqDMtJ_?jyK%5e)AaP!G~IK1c#UVr|aNm9s6
z90a^p0JhMH?wG_RA(-<*H@a0r=ca>vYS+@^O-3m;nt#Wq8yjUNx!h=P#1RZ{pp`S6
ztoy+vHy#H>#^CopvgAJRjYLVZ{u;5)=k6aSdSW(8-0IKPs0PVezp3cV3lX%BvuJr;
ztryOirr3rdT_6HifTzg(Nm{v?<ZvMeI-fm>$SG6PoW*%hHf-D|h_dJ<0MbaZ0#9W>
z+7S?jvSgG)^ROvmm1$@C6HNzJntku@Y*h}Wea=AzM4K&9YbPyZRGE13<;zOsd%lim
zr=I9OaA4WAnD6)X${w7Urp67Kl~h;bLYU}IOm=7*XkVJG-%;P75%s{SbJld$L#T@3
zm8b2;?+-rFYvf3q{jazG9**T(d`>)o(LVRGvSdsaz04qV7+pM_VrO!K@bncx;x<^H
z@s7-oztQSlQBk)bBMCJHt`j7mJX2fkkfZ<C)OmpQyubfHo5B$dBcwvh3RwxMl(Lef
zD1}l&_AVkSGew9fk`AftSwbo#gp8<!5GpI9@qgT$@BjLp>-zn!^TpBU^M1d^eLvUj
z$)rt|58)qtKas_W4g@$-R5wL?M6kr(6_Fh?gQBQLqV3}GwifepBuJ5tiUC!POh(Pi
zhqC6RHE`&tr&qQ3bKNny(_tF`Y&jxC^Pinv{ad4w>-0Y}8ZQW_V#mOGqO(QCCbC8m
zxpGLSdpCl^;U)y;3pbefX^D1U*jJdDv6q)id^;&0C-tt^m%vIisem}E*@cZW%JR>z
zMMMN$Bn~w6>gdD~`0_t|dHHf~vbC6Udu6)O6T=d|eg~7KL&=MsDV!4&hc=vIg2OGA
z2gh=A$}xs$ci3!s4QfgTfZ#PuBXk`!vhgi<03~3F9xTPitQo8pL{dXmR}`kz<L!@N
zQtUZWTp9Zj!y^N>y?@GUeB=^S{~8lI)oZBZD1M4ReVUW&qQEc6)0D|W|FLx1p;i+6
z!Cy<Qayiqu5<L|M8%VE=;pUfILtaS5K-xcNI#T!&)(*;4Q8V!iSP`$}=7!O@aoPzX
zNu18)%gc9w!2|<avtS955>2*(j0}LIwN*qGxGifsXK)fFDJs+)D2<RlT@rIwGmQ*x
z8<K-|T28Le27a7Q_!)S(=&Ps<+XR}8`=HuOIkYbJQK62wfnpHaT`kGnKV?SuAYZjc
zXd&PFh`<4gYg^s#AM{<<Y?ic1u3#BJh1|J0#tlen_)_^B<L%|%FdwEG#<S1G&l0)g
zbzQRLvVkmQF2eltm&PVUq`T|sROXQ~)_qeke~uBs-~P#gEgFo8i8U_v3``?}_6;GB
zi(5<v%gAHqPL%P`fNz*)xgsQJk|%qUr&vek$&hIVIM4u9>!F4bmVUGP9kTOEcF=SQ
zDxTA`b<n0wuP{9dvL-`I3_0Za^AQ7w33x(4B#Rz^IeC)PZ*4`7$qj0wK2FVn9&P;4
zJ-O=mY9+1jsoCuf^y8j^#NwWy1$Ixq%b5Y_N<VD4kXb+77T)$g&F~7xGd{apY~D69
zmK}t?dsK>F+MqqQT?kawRk2mu`%epHW#J!}mKWCHzD1f_?bZF)+_DO18J-Am$CjJH
zMevs}k&G73Wd4VWmoG9i)_q7)xKoQJ{`Z7yMf)f~3oy9N!i9Y}=uZUuRV_|p^rHH!
zXV5qd2+(@V8#+C&Eg!{qANR?9>R~pvz)#fqiHrPKoJln?_#H6eNI>J6Yvy1D;>_fV
z<MPOb_q?}2S<jfZ2tHV{P??V<>@(yqO3O&CLFAQPzFfV)wU$2)x}e08Id-Dv(Y*b1
zMzk=mQO`;w6zjKB&@|Yzy9d%bKB^3=QfJ4)+fhX=3iU^x%@N9Mk<pZ!U~(-NuVNH7
zz(nJ5(@s9A8u@UPs^?Y5@_dV*O;Yz|s{Bv|w1@2ZL)HK!Au~4XK6o_})$%@VU3(7T
z6#ek*>>osoOQ`3Z{Qjb5=A~~`ozXoQF#)%f!6|2u*W`f9J<M-`Ed#_&W%{a^$N7c?
z$&^W)-p+x;fc08I-8}Rb$%xg2pW2|(d}cD6@Nl+*swCmlJTY%U*^9wcA|bO|(8#VK
zgahW%lbif%1wS^7349z)I1ISv>*GJ5;vvyRX1kE$!?Y^g(o8N4-LYdv@7^mB;vu6@
z{+z}cI0|nkb{`pB!gwyRO`*6zjf_b253sy<?<RZw*Q|fu8aK`W&MA&C8DfCYrpT0k
zcL%AX>7eG~3MJEay;$mq#-J|q2|0x-R3<@|pYr|i<bh7SeF)jxSj@=Q?G5q>u1l#Z
zagg}p)-`Db>Nq`g_A-J%5zh&CBIaq{y8?*$v}8w^>>JaKh=$vjdQ3c+BK;N<mC)|=
zce_yZ&Zof?dj)47O-C2_TWU!+pg>4g^i|Z4y{BGLU@IymT&jB1LjBdvf9>^Ai4G&~
z3{t|K);4jrYuL!xnSJ({jq5>$CPstJn=KOa#5qr%BODkPJ!ODoSaG-;POv$xRXYex
zyqs1`FWjEeQ_s-%(4v9up>wn}H4A&Fesx8V%bCnC&>k6&o-oY&8M{L!IzwZ1;<Q93
zfGXt(mkH@phs**MV_ek3NI)P_YISOAs;^<!t|J~#c>}_%cHgvz%cURybW*5s-m31l
z1*~t;Z|)0~8!w0y%sbvJs@YQB7S(rMlZ05^*0T=A#1Q;Rx!eIyrMPqdLt~*`MIA(`
z2cO+0rM6}TOOG9U_09}joj6T5aEM6ElVrVOT5e1f6m@>ULD#3KR<DsE4isGIHQ0r4
z?Ai_)Q?x?ICc9gJmdgNpNK&~(`t>_&*ENW?K_VH&sEpe{!oVMuDaNcNJ_i}U5Em3#
za?LY8F{ria#f%kcK4%M;y0~-@3j&3mXbTXN$#Dz^pH7u4S$i^2jL&0S?<!Qk#LfX!
zQ-(?Ujp)J%Da7924DZ*uGX8*Q3Yazm_47q$v6YmJ;C09i4?q(`!l>CE>fMzhkt5iz
z>)^rdQB3h*5y(aJGsR^Y-ow@9TnbMfzO$vrdu}^OCpjGHvUF`#7(E2$(nwHqI%XMV
zMVHyQ-cH<niFpU@^_S7CwCOojfu2q-Z3Ie8pn_PFYKd-|Vm#c;hy>jDp6{LzFvhK@
zMeZx;%@@uADM+b-DO-Qvx~RJk)d)9=sEScp^Ko9Hh7wYiq6B(V1`3mVlbRIbHg~Q}
zQd!0?Kq<)l2M(vFZ?SKxO*dg9bQu$Mo1Z|Uq#R6SVw98OETdVUem@QGGN&LV8(S#M
z)~RK+VoTtpd$FvfJ&K#axA#S;K`D$lO*pm0>X5aW1wwjCO~hw%r-LH}kXIbY97Gu`
zNdYzkl?&`&!ecLP0PD9$dAvdZ<CJItt^If$?j$@`#IMOc!ax}bTjd3<o8luqKWobo
z`-ZB%eT%?vU8&WT>TLIHpTW|W7^*_A=yK>uz9{ANn9Q{uVR=#DQ|^4`sI|i_LwJDh
zgO!&@vVq<Dp3&@F`lJHlQ}KH;4U&Y}^3po;3GU4_XJ#G+4-|Jg@+_rQ;|nRo&`Sti
zB363IFPlH#2;lw=zc14sF%cs~T#Y<Hx=qeUGB{tpeQSlJ!hgxx^V_Y~6gXU=f`kxl
z&WcW_4x=8dJ)g7c{a3FdMYWA>%8b@rYNL_qI_jam)rKEOr<Zus-<=ycDBLRg-REXU
zPNUwQJ$@#%73DY=TX)W~)Fk6a?-oj>A%k(KBs(QY7~|ENX#WVG+V_hj%zEQxj8N#k
zQ9XF@VT=deuIf>_{PU|nDG)e9txA|1I#=STU3PtFHQuP=v+uC@Z9^(AMrM16dx(0$
z<!$fF&G`VEEPHpDGrBfx&Sl-|YUkO3mK(N47-%I9sjzMnUNLV(_ur)zC-O#ZaBc9l
zq4uN!PB)iEd>HEPu%+Q{+mMZ6!{Z+%G#ax#zP01w>zNNxA&17^$SFzvwxY+%X^!`f
zRQ27vZ(sa`qiRSsW7%;2j!6|JvyWk1EiXU7F8@zfht3{3#k!>G#|7P<m0Xro6id8R
z3{lEw$|e>7NsXj8ueth3m5C!Kn-w3u3L<AqPb#heT*JtAHtu`f<EHbeQCgiRrCOMq
zKi6-cNo8bG{G?69!LW9iDyzmD-Od}*?Pl_Ly^+(`M%sEbwQRMed7x5@e<vnxv5UW+
zmsc6st^EK}!|)#y+|M|B86#@4^2atPIM(gjyqIhjzzsM$qBKwqn%XBg?O;dU+}Z87
zQ<h7@!=kB)X5TfG&%&LGXAd=}oDInSWA9kC+0+HU#rMTG?Y_N0%DpyvrgNvyze11R
zD|$6^tG)g}EB~$@Cj(brR_>ay{rT3<-x?mWYoZ?;V}EOq!HDt49zMyl^v4+Rv*F(M
zway>9`-OZ|J=j0}n7=9p7c$>}KRs<t<nFFMUUu;hHW0Slq~mtPBl3^lbF1_&RFD7t
zv#fplB?dw9qqVepG)kU@m8aU(-26fJ&{V^B1)ubbODEQOJ>*B{qcNt3?M__SSwFbG
zVdt;a<~37y8itxaPiZyod(0@^;|bfQCOesT)@@Sls-Nzj9Pqd{-B0IfR>XQ+{dAw?
z@R`-!!i(o5J1*0{QrU4uX58=1BS$W*vo&kFW%r0qb{BfK9i^+{J}K)9Ramm)v78AH
z44x{6PHeXJ-q*>_X(5+}KAUB9P`9W$(<fO|uP9~wyv)3IHu-P5q&{@@QvNi!_SL#>
zBle9re)yH&w{BzNx@tRjbGmP5<!#x#;X!Mkpc3<h?5=|*I=_G695Gi@+vb#N=fGE|
zd~8#HUb>W7P@Ea-`D*8n%G+7l!xJ9vSiUTy^WlgimG|0hI&`??vBrwmW{wPmGcW7v
zbiZKCtF1G7e4h9;;p>@wM|yW|6mK4|YeUsPPqx~%2=w#rYOyThlxm~kL*@D*=Z<co
zIsf}lW@*m>%8^4cPW<=J!hDOUFw$ykT@U<zPxw4$l-m8rsb5g(=@=N4#tx1HyrLQM
zcbYI4q3y_#+!15!8ATNOhbn`>^w0ZFrjU4Ijl(k+a47{KTxw^wFkfj}&({5ye9}O3
zFr9v!Ic?GQ#z%<JK`16z2=f{S=gmz-p^Vm+@GJl01x#LoPWWwBppE7jZAa1hn!Fyz
zo&F@|<WOz7I6Wf{R<gW_I~OwFzvg`A7qn6m+0RBx4F4noM{e;{mAIjCxlQJuBgC0j
z|1}^_;v(1FnSFr2Qs=jt61qJbyj4&;Bo4z99G-nWDT(K3vQIgETrj09Y>cTJWd;Um
ztsDvF0g_d2S1Z9q15j7VSE8_&77mHM%6wmpl+q4LMMo_icw-@eBL%bk{bbXmRVk`<
z^rz>8Jka<PEc>8fc^L&Qbi*~6%8;sOaF}$rv6f|&!x((S3!PPe%oQvP%)124w0cGR
zO618x`_o~Hl)G==)Ans;UZ})y&`MKpEK6?R>#|D@H$D924bIx0is_w+=ISxHtnB$T
zcx#DtRsdrO3(Kv2(A{WvQ*;UTsb4m)R!^=xMz?|OE@17R@bIq}O9sl=sZ=NDlLXhU
zr|w88FYP|*g!$dAVBRO^6<bnDQz3a$8&khtTv6Gbhdx4oN6nZE-L>o{^LYd~K#U>|
zGZEYx?M6&2%sm9FFiZ6Iu0E><E&r;E?5mLYB6UDVizw<AB%|uzel=hb(guOlQ4q5l
zUm-7rNO`)ql7EpzC~U;&zLo20HZWQKHORmAcL5A+64fJM?XR1cj{-|091J$6jQLRD
zVUU}fD+D;Gi>^^?S_E4)L&vGb*LO}AY?&J7&+ru<eqeFI$}i2tZp_(DzxSv5&zYB3
z`VH-ogaC7*-J*3E89VF;emVigSx6Z5Hu5;sOPA0laNEng5eT-{0~hKN@y?5Tle2#e
zL<64~`@HCd?;`nb-qCc^LvI<rN%#`7NG9C{YW@I6Y;tEwn$KK3lWfx@Xek0+wezPT
zeLz~iLoh^AR%8@5pF=*x>`l9!5<CzyOB5F1OyuZ+sI$T5Z!*DcZtv*UbPnJUC19-q
zC--i{u#&P$l(7gx-~f_PkFXHyU7`MWytK3z3VK)~X<I}AM}Z@JQ}mid$^hYiz(>rr
zhW#C()G6j0RmfeWs#47ttx{b4K_svnH>Efms!{w{fvfP;KQFMj7ZoAmJR~k)Gd^7|
zbNwBl9h3<%R4DW5z+}jZv^dC+irC6R&r$t}5gAj66w?Yw8zt6T20ak!z6SHI<kbk(
zg}LH7J)`R_zwgwpl0U=87BCf{K{S2%59C`S&e1+q%vJ+BG1m$`@X%Z2*C?y~IyagW
zIx!MHMygE)3*RI+Y5+hll49IjEQ@O>3}yXb*wcUX4K3|8jw8{d@WT`&r}@;Zye;7K
zh|iR&-|+cGbdMnr8n*M}ivp+7?j}M1jvMPAFuA+>D`>B&6c;iEN^!s^)`jS4wwnG5
z;tD5G*Soi=xGE9y$pBYQFG$;TgP$ot>>Mq$P^;q%`iqKJ%sFtNU5QG9BBu5f)hug{
zr_+-#cs7sN?Z8o5R)u(0@1c(C#h5|2WBb^ikkk0fg-MX<KlHtxUrZpiyE3wqYkJ3?
zV9%vX`%~=RxN~Q8`CzzUTJLEuuLldi%4iXl^8+jHYb-&x#*xHrEwF!j^PdrYZbtOT
z;cI{h;0zjvGReLAj(f6ZSQZcxR0cya3{K6WyFkfGUb0YNl<%VVBuGL!AtKeVdeU!#
zwEBXMvyy_a%~2g*9V|mnSO}u0A%~-d$0{B`3_@tbDHp;;qY35lXVwhSOspH9hFc-h
z#!-q3mbkXjKO)zy^Y;10e!@sX5y}{9xLw83^LRwN;NgMHGN+Fjq9uM~3Er0M5CHzA
z6tFZN0lmNdsF)^M3!gvBV~+!TpuO14-UyAVDOlyy+sH^dL&*EX@^NpQ4jJMa^e0-1
zZA}1A){=r%89*mE$RsZe^4kt5nbCDqth&(BGa6c~-G}Vn*^H|FmE&JC9L<fyMImQa
z*;2_80beN>5hgL=od!}jrTs@vaP_=|F*WmMF2pV36$X;B;{lduA8!{3^&&G@Wdg*H
z@=gl$p`s*9oH0a+oG9L>OpHNL<z}>7?rYo?vGnfLw-fI^!_v>UT@!b-t#nu*#8uGI
ziK{MbqxFJZk`yEb$wOKB^E0ptBE<U6WyQtAIm?snI&e+easr6BouwgxY8rzULwqhi
zkXJg1zt6u>X>IC>ubg0#F($ns*b-a8?Nw$d-G+?l;E063_B3}J99P}m*vB!t7*vHg
zu3*kG8RZ@sbP>A}unS8?LEwN$tM^COr@JfLtwK8{3v)L^IiyEcQZpP1Bo!X6^B_9@
zp*N7bB-4UP$N&~P#pt}!*<E_lDv93;mRB|_Z46l+0$KA_#==9O!*|bJ++f<`ajkN<
zkL0Syg4|-|fx6Z6mn=~?YTGw1_MiW00YIIm6&GAunDLy9aT*1YCW_bq$)-*0AAMlQ
zmF0D~8n5&FR6uH_OL)H-(~Ynyd$np-(~U(P%LN3e);`!=>(vI;y#=ZM{`^hppl6u>
zLN~VpOA^!y&6^}9VP0Xgvd4rO2X>*<PY0JG4g$OkB#F=zz#F8k3=pDic=_&K*6KR-
zgr=u!1tn<Nwr$ABSS{iq{?6mt2=u^LJjf7r$TiEQFL-lf<Lx?wW)U^Qat(#?MF=t+
z)`7K4S2_>SkVEb5i_3$+b@-2N96q_9f{deu3dxKOiNRU_fgkZ&ENFCxkKt;_JT#9U
z+moCgg)XD_I!<>+PYPVl(JdYmEL3H&ZzXMmU*L;v=TV6wvD0?Mr6c$ok2syyN6W~(
z5Z}Mi`GT<knz6l@&%S}N(;^=Q?1&c7<@zL$R=tq|13(V~3w|Lx!N{-bN8Xu4y&WR~
zPLV}Xq5)IRgl~&JGHF;lARJQ5#hHU-6vs$V^DUVRps-k}(YzoL$Ix19hh<U08OJZl
zdHUw1xxcDn11LAaSyp`aA@qtDeQJ_%k04vZ_Jo*;9l1j;C|s5tfyfqu;l0?WSe;!|
z9D0dWUt$LkAqUoQ`}Y=8vqPdwHbtsZf(QReyAfdXDfg9M1<V`QCF~yFE}&bo1^12m
z<d-%e$8Ui&fxwtDCadwgy)Y4w4NxUO2y!e4lnMN@4X;1Zl$>lrA_4F7Gn&aDr#7f3
zd1fd?!{5)Hz@go)8lEhD&+SV|I<BZ*fb`fImuTe$4WN)9%+KC?om{EJjBvtS1yjKz
zvzIk<msN?5Z&=Da_B@vSGkV*8eryyO)mPC%_4Siy&&HqenI!HG65axf;S(WzpG}U_
zTy#J)oAefZ43b<T5`)SeRyx!LMepD1YfRKtfj9%$=bYnS@6AV~=;WO>@jmUeE2!$x
zf%c{=cX71CU*HgsY1s<Mmja=41n1_CABofit&c^D|C$Qjr8xyP35B(yb^%%uaEj(x
z29_~ih};=K8gj6VHl#u)Nq8DR5H2Yb`o+7I*V1vKLWJ#SjEls-@=o(p{W~T&%<8>M
zCDX89zX)nx9vG}XGI`>ToOCbP9q8B~)gZ{Q@9d}HVk<*v$>H$(th(W4LqCIB&qjLi
z5b(5|Y`iAT9V3z2Q2b5!I@vsA^XRy1z&XOA@%=vYf|IC+!N_K7eQ-GXZAs~}njlIU
zKn)8Ik1kwj0EsEv{N`d7LDzDUb4X+w0ML9;v*oey^>|TYl0vfB5pBrD5A~nLfYqta
zD*(wkK!uF(9U5!*B(r+auPZN42A;A|eQ4@Dh`6V&KUB%XpzfAA1LVL7rYh4|*tpy~
z7BeLTp0A}el)~XBcO9yrhFmS;HrUGmYc3Zk2Hz!1{9k+DscEjEp}`I^b7sh=iemcy
zMlD<()HCs`ay+s;@7+S!8X$k09W6*@BKLxjn7V~;-dK8gyxCuK2R0P47<tbXYVp~A
z5hN=tU%otfa~k1H1hIobo`8%mTFRzdmwBA2Ngj{E^sW%*!?7m<2JxH0EkI}(H_Re&
ziHn5tT`qkEH1`>4X>~w4;ZY<<3ZXyhjusHZT!72CP+789jrQ8b>kxZ_+FCIc$I+&#
z{l#BLk%+Zlq!=*rpUaE>V>_-Y4yyxf*J^$lj$NOa$qkmRqRf;C7j!Vnq*G8ya*hkx
zO+_b!uhz5A6u6XA$z-IW>M~TB??IB|X(y5?91|Y7cbi?^L2Y9o&6(^b#_(m)8R9gR
zBng3h7;i)J!oAXOl=jn3JH>No5_TeOIM;nLh#fUs?ZqtyCZpQxFZB=)fb7U&I};5W
zu8qDs)obqDt?Yz;{nV*GDVV{($ipb+2BF&clNald@DgpJ+F<oi_XSKGaocNvj)wv-
zU^YV*lvfu9Rk=jJ>nQ7-o5;Z7*a2u?<5f=F$h<5VcG~G_K#6+?E>dKc0DKeMP_`BA
zjHtgAkM1gt{hL!^JnnA5atSYKVr&Fa4rKz3fJ~nH1GLNFP=_d{gfmk$Z(w03M$X^4
z)3A_^_^RUy>?oj_Y<c{YYDmw;(@OU(>Ill>Sgtu%vM+xMWKfz=hdyP`FK%Fj3JM$Q
zrDPGhP^)qk$skJmug*?br!>hjyPM40ds$La8JD`kZM+7GAX0@TZI09zO7)!sGcH51
z2<{#|d;`FeOc>J2@?UQkZ{9tESoaa&{#?{?G(@DSGKNyie5}&^y-ItN0*Yy&;k+Lm
zpJGFeD3Nsd<0O9*^Z=8Cq|Hm!P0S|)FIe8b^XJE~o3Ae33K<CZv7S|PlGiJDHd8)$
zfxB&QP%;Vz%W9`E5D7g(DGHw%kWmmr3}pz+8V-Qj25BG}FEF)Z!4|M?;&YpZON#A;
zo^jpmy9`=~trPTATyf-F%r*V>RvTRexi|+{b!2QdZg5J9FVWy}WKmZz<HX}+o6}C+
zj_FH~-1*5{u*~tpRnJ84p(WwlNxIk!dS7EBNspBpovhz|qca#1pOuqS0y0wsFXe%m
zm0-^>?#yIVdTt{kONxNTSp;s&G@{i0m06a;FrM@rgFZ1}>(;G>=NgfmL$4|mJQ)nf
zrN@PkZrP8yes>QuyQvUu-c_{ttQOJk$h;KTL$-0^Y=0$1#g{_f)8xm24$C)NJBE)S
z(p|h9+)CqkMx7@3a2FA%z)=<0*;zUCWsBCWGm%!cHk#g;%^+jz@EYKt6+aU`O7NwE
z&4p@#D57F~gnXnr<gw)62-f%QGT6ifE_OPqe=cSbT)@V_CBMYiLn>V1>(}XYsew%{
zSlt70V06h)N5@^+A+PDYmR0@eMT1ksj`W~GWe_1}tK6arlBfb0CqX?-PZT3EKn}mK
z;`NK(AbVD+x|yyyIXUWfeQdjgB_(+ABat8N9{cqe+)-q<IFS(p-2?ikrW*nI68P&p
z@=<(+#v%lk@K#!Nw$luX3@Hs{ydAO=BVxkkD{#oJQ+O;0IWj??6Lm%o<hpKbKQh)1
zaZfrD460SuV3WRm{MWsD@GkdJt!3@)r4dbDWfu;ux#_(X4;<Gqye>ku(DR4=Ef*hG
z<EA`%^4cuDaHMK!_ZBZ&)GfSU+^v2G9=$KGI5ldv_yh5P$sk9OHKixeobW_Cz1AVZ
zj?^f$I6xjOV67b^abv`B#Unz1yWc`F%*ZY%Lk?l#N;&wt@C$3x<k*1HE<$>7&Bs{j
zXDY6J;32ftAf#8>j4M{G;JB5fG-CRRH((wI*qYhsWt7U?x+K@~LMWglm6ZR;)>g%i
zSXvF_Fk*lfPw0ma+;Soqc(yN=PxI=Pj?cy>V=AqTTQ{vLzxEIJpU_n@c+{=zIfnrz
zQZ8zOUO?K`y(|p)N*8UIsl&tiJBWp+pfzyd9uNki%mU4|m=4p+^Nt4GwTxuuk)UX4
z2wFyaz{$bgUd-)^+mr^$_`J78=&tR-5gU|72Ie2mfd}K{*E8Sz<;xd(e2y$y`@drb
zlGr!gPPV`#^?$M|O-xMi!%M5cgJ$cKF2;99tN|EESuNvQ7)iw8O+qw9GCw)}#psHT
zy%##Qw>;S9pMK94b^#1P#}1T-Jc9~PcjEEAg>OlP<nCi=pt=4I0(aaFreaq_*^qjo
zEK%M(rkDAumyb;hqUZ%Eq;%!$S+*_#!$A4LAwjXM*sVIF>x{8CGTNWFb;|s16KlsI
z*}xg644no8ZeEs_Zgfhx!M_w0b;=*170PIsU<6;AT?UbC{`&Q|o0X-hN|)2D9JcH<
zdNC(ZE1Ref-q_<!eVMt()W5j6xTJ(6mqhg&&4bOag069048_hqZ9f)Su;W_Ce{KKA
zRwa~$M@4nNRLrJC+$8y^EK$U0>pu3R-jI9>2BTee>G5_y+$PUU_K05~nZkVUtF3oZ
z#v}HCR^<lcU<jPty(^2G9FcaeMNfjqr=9mVUTpf$KT$g4dzC+Ib_2Ea%a0$s**?nl
z5D-;rtNeV$2A7&ywrVrUyJ}^=>z3jgvrR8&eLAN;t7rGC^BRe8l75C-RK*}CzP}h6
zsUx{uGH6DBups5E2J=E&n|RlFRH7Cq{tV<I)aZhuh{90LC8QvT<#LrS=FFYd&}CtY
z`?xK?_xA#71dT=Z-$m+g2*4N)gIMpv>cJV84`~nl)OlmUf_#gbHvF%O6<bz#6;D`_
zzds^IW6Al)39ju;Yko{487^eXfw3BB!vbSdz%nWb3*64!T>@<?o%(-N0Q&JD3WLVU
za#QPJkk}lyON-JC6W!OnCo=MYe{BsPmG3k0{ocj@(NX3Z)f3FSgsBednsUyhUEk&q
z+A{0m<I~P$ih*W6)1RXkKhz)B+*1DU`khYH`1})a&ZFz!f8+mub{hD};YZiAooHRG
zY|7VH@#^jUeGl|OTDL8@!L*zLPo3D4IVPu7W2$Vn)KS=Nukv<?`w;U%dUgR{&yJn<
zZ=!31@R1LPeBZXSHZ^Xh^`aLEj>(S0x-3qz>o+qpTa7uQF|RBl$ND(CDeoJcT)VMq
zZuQ%DH|ljBJk!qU<Ey#7c6ZBseLpUshxIRm-(`bTN2;80Ja%c^i-{jT{{PRYmDu8b
zj8?rz{=SE|?>N{Ae#*U_3FKAhZq5%b*;$#*Z}^wI(wTTrTia&JU-D`a+|~NW>-yMQ
ztaNgD^?G|^zwNuWPkLF<ySMZ3EdvuD+#2*|oL%tpj_eP!`EU03|5V#^d&{V}&V214
zn}XPuy=u!7&p5xEJt!XfYQ#=Ey`W&D+MsIPW*rYM7yin|W|u#ISn+b0qu&2{oC9q~
zU;jUhp>q2r|055fq$Xz1JL{AHWdOTrV^Q2@vn6#HsThG<N*7)*%c$M-w<`)H8tBvF
zyqSG^e0|O>S6)Thb{w}uZSFVj0+^mo<le<*!3yQld6UFLVSVXRjM5??`v2U@iQ%TN
zU%y5|;}Q~OdURuh*(kvjvvf%d|1!&NsAsaHOQff&-T;;x6=&PcHx9eD*?dE5Yi%2B
z)Tl{NTGw1W<4?^C%{<<xO8xCoDu_@-Tvg+bKD5~Kx`BUAR+ip<)6#Ft`3sy9)Q*08
z_-w5&h{V;14A)cp$7&2=^oPm-wMg5;6VGJ3c&w;;<ax@`kYkiTzx;Ad*^+#kzT2SI
zgd{t6iaT&<UiGg<(h?##+1hc4+7{RI^8>lAbHS8wE$lDdBY6;X478|2&R!b`U8nxb
zPhvGFCs+NeW2ZMV_Ot(mDBCW><L$K~Zn^HUrI44aRHr5Xy|`5TD<=n<RoqlHJWZ@D
z7$=m`amQq{yZ0VEus<`mU^ECT;PfG1l+7(AgAlKUu-J(f9WSl=Z47^;zHdor>Z19B
zVQ1(XZKx11QuHJjhE^LX!#iMGVF$nw(^K96%8FHhcbCC5mnE|!&7xa0D6iYq6%k|{
z-9EKeBq$ei5^OCk*Jm$7et8H9tS~4%5vAt7bvUjCyJ1Y8$j(vJeTFtNiyqoN0>2hi
zL}9`EL;UJ?N_e#a$5){_5s;ryBD?4XsWrb0L_Cg{9}Svie?O*xN?nPXHUn^gGVRv_
z*Ak1t_Iy{V8F`3UH)F0VxxrwNqySG4irTM&WY5sT!a`Y`$g`=%C=8L}i9uY<Pt*;3
z!LEjeO;MsUc26?%K|&-@3WT2Q?hzpLEKd-YmJCkicd1Da(i??$b5>*4(k&JnSFQc=
z$!&oCDA%YF&^2%1TBNHAvF$RAU!!OsGkx|86jmqDoN>uEZqlR^X6@A!RGh46$OvrO
z3LxTUmyAjU(1j!@zJy}$S|Im22$wjsMT7+#NL=n_lnCMw2WmNjz=Dql6<TlX@yP?|
zSdO?{zEE!aPe;>NtW9ogkTs;)5|yB)*3e{1mZWEqi_UXY%5k_t|16LW0B2x~5zp{7
z+8xl0C?w{WP6cOxPSB{8@IKjTZZY8;_`Gt4U0kEJ2apjOjw>I<KPq7X*?2$zk1}pi
z*du1Dwe9PDonr3srDakC3O5G<qO>;mWZC@U8_n2D9w&dE|N4DDk=2o4eaam>_Q?E2
z|HM5n_bl^_!S$))1o@=Upg{w{ZSu=G)o&HERxEm09(oM_WuD{(@i-M{jpP>5f=gmF
zZAJ!<NXATfJ^c6K{!i=48^{peL{~)v?22!-fK*JspRd*Fy%>lxJbD&xREb~U)R%sd
zrji<qy4!{<FKAR@NMe#|6sTB%@B(XH0j}wv!PREpv7wXTK86iDkXZ^Uz$}ex;60Km
z(A(qoRO}#$`M;eK98i~_;cdA$6GJ1s7m^@$jLeV#*^proy1GHkADZ*xk~MXSaN#nt
zCNJ;oHdkf5L>wp*%8nRbvJk|Ok4}nKEC;w=#PZ9cfC^7A(S_D=viHJId?_kfk|2C;
zJeCng*e1q<z3@HcMb<0~_;%H73wlLhpk0`PgwZnUZSy@Pe*9ru$*!Y+jf{<gATXka
z05n?At<Izb2M#76ZuS#DwQK)#67x!$7-$ptG96V@@zh&d^6g}L2i*(2wTuCw;mZLq
zBB&Wie$u%=lSs&JLU+g4Qo6SmOJD$}2)1wdLt@Pk8}^gB$)c9iU=}Au0ARCt|8T-7
z$jm1`0e~{ikgC=t@#fJ}6IkZU!s_JRhe7DvP5@q_CWayA5EY|`0w92-=kU!S8_du^
z!$JC2m%37CSuX9smKF&TpPRpo8;UZ5DG<}RNfacLhwn(|AkuOE8jJ1`%%!-E7V!sz
zm`DoO*9ilO1i@ZM5s9HvQ(ymm>^tTe9Tl*G<*oWuWhx*PPrEfgh$Nx&i%QjG42UM2
z2xo@C5U|*_mHxFEusW30(h!o@M88Wh&b-eFJ@aWXuNM>)yr}_Xm-$scex-Ei=o)tG
zH8m^Y9rBRaY7#U=UINPv471Ci-|srSMXukniyw}jm(W1$DVbNXaN(&xh8Eff7DZ=U
z2__9484JF;pZ%@i{ou$jAjIVRFZkMM#78g=lL;xD3(|%HUWh~kOrc4MTK{r+1@sZ8
zokVy^nu?4IgEX%v3RP|G^ZvCdy2nZi39BvyW6)b@LU0{Co)Mfs^!T)}m&94osU70r
zRgi5AK~}kA<q)`;P5T>+djVb3DdLvcS~%}nQF4@$Y|-!ve@s|Mb~WIB6dz_@(bWd9
z_g=kSE&xmt<}fG!TpD`fOeD+zYXSihN`W^Qb|h@`kUqGkK%$*9{q?gT&vtU8zbq`&
zytDuY73jhKn4|J)9$2e(?S5C9=i{OP=%Ee(<IM!_#gNhzi`$g=K6RN`-ov8Bx8;NB
zRyjA)+;&>&;K+^Je{-i5u)GIA1LsSxKN&ERX~hy$kQrgzXR<N@?OJG5viTAHkQ>z*
zZUUqOkv6v9*O(VX3cH%qU|VSDFp$xB20<e)6JCMJnzQjd;4f#!wP(*F0S!gxi?_p)
zOMYhlx#XUaG%`rAzP!DsO)s#T24?W!DXnkw^UYY?06(4}EASb)06LP9gDeRlsaVHQ
z;&(7znTdcCQWb>s$*E@)9|UVmMXtdAMl7)=uJ?V<`zwSy17LZ_bXx302xRJTuJIwj
z2qm)3xYgde5Kn~J$I!i;@_zU}_Te0!B(T1W*_A2FSY9w%uMtfEU^7phmJ57LGvd}y
zQZGOcJP{2kNL9f($6LBWz7l>GIkrJy#VrY^#?L-8@1}o`MwN?t#qgZ5w>D-CA~r>S
zl|h!pt`;|^8>QW&K!C&wMSQ?|4qP*$dxS{B-3nEe^|riVcpWyye)7%PzkKsQ0`hc$
zK)Tm<z+Ei)(?sP^A7D5kizAqITSqcs#IYJ#AOsM)E}6+GzDYn$xuKx@u2#dj8rtfZ
z*X+XPSXf%>e5k#E9~dY|^McF|u<de?RUD9TJ16I?wcGL+7tW+c)@{EdYr0Hal3_cN
z@~o{5g|us%!+77(YfPKLr=X2S!l1}>`YpsSZZ0+jeGq~LsFzitO+FPNlRyMQ%u@sb
z6VRYYKoCnx9JgjeWBXKmXdM|5v0-HFRrln^rZ)4sRNYtqrb&SzgS&)lBgULP_dVZY
zXY3BnR48RzuvJ#$@8Ko!2gYZ;o`1|?R`h~uuuQU}L3}}+M)Z%`xs%fAY|rtFnWmr>
zDq+&VAc(i2GzA;)^!(K%ZF}G2iHV86&A`U_lxW<rJ+K@kAr1Aq%;4FzOVqc4mlmL^
zDq6PLQd<JwP@2DlI510DhObV>&rtg4&_A+|xYem%02UtKb|~_)zclrXH+qk-vo5|b
zSZ+_w&g}^BFZCj25?Z>)jQU~(g;iX8xr9-%+&?kH2K2W2{(M_b`%yr34AVWpW5Bx!
zd%;a7%6@PJ+;!!CfEt42B88wZL6{b~?WNr|ZB~xY{8ZO(bzUcOyfqkn+9@GmrJ<Tl
z^jDEiSz0z^@${LKzl)e2&ff_i+%>UR(PfJx9T^5$GcCzow2MC#U#f34YH3tOE8^Ef
zVJUM7%@K)J?;!QZCt2}E@Vnwhr*5GJC3Sx+B@#)7ySPzp^yc@77ZDAM=Va!o!@O;I
zlfqH~dUI~9A2s#U*~Q-%MNc*9e)s&4lWT<=M{>Z~CzIwS@{&V>S6T=J%*SmFDZqAG
zXK%q3jXHNU!i9I_KT$z;Mp;NX`UQM|7`NKmjKGm)Z`NCE&Q15)s(#-c4<d5@NUeGt
z>uR|wt#G@i{CaP|HnYOmOS=<L#DvP632)mGxW!dCCd#A;3v+Vt2V$L|8dt~Nn~sqO
z(qNG1-6REtrc15OhuMo>7rYcj&t@bpxd7#Eo;y7oHIpATi~kT#0JX5-C6YXdC8L}R
zgK4;1!N%!Qu1e<#`U1>%c=SF<4pAP(aGC}5LfbhNi3QIS6@3WhE%FFzVOHq!%P($7
z{k)Sx&dsR&*mzgpD9}^Ff!Nl*zrK1k?_d)2(0c~|HN`PEyYqBs#xmuCDk5(hj(v~*
zM)}kD!v3beYg2DhB#SsiKyyT92oiTt>DW=zM_+luW)!SG7Lr7?65M|aet(}$;C1<i
zJIkyW=67ys9a`2o;uhH~+&gY@M+5xS2#n;EK1Y3pm1H`UY)qY&dZJT$N%cfei4<M}
zt6=L<5pUlf<>x)vz(9%NoCV$bRBLk~OYJ7{RLB8OCokf??Hj$pT+5ALl8^{kEvZK%
z=cZ(#U6&ste>GgcTHpl9^e4f`c+r@gPY$QC7P}dCxAFv_F>4mNVZ(+bMU9Rfw?;-j
zoAtbd(Qez;IZ@A>V0VrBJ31*)HH1PGt7(Sw+{@|kbhKCbDXSuR$`nBmY-Z81I0{J4
zBvvl^-b|Sw1Fuy~(<;Pq?BSuOk7x?i1s%Y1kN#M*N!`I~V(ds&ihACKHkB6LO;ygI
z&`Zr#%;WrR)*PHPnZFufeEN(Tm?D}1pFTb}PaBMo5=5Pa+W&Y1%R_}78rUpWpqM($
zNxP|S-w@u|=WG8AVeH*nTmmQ}L?Xp)CnMTKR}SgJ6>i8pPcD%87*j#)hjUuWoJxQK
z-T}nOSdH_<Qcz~4L0#c(>kEwi<HrwQoH595DdIa}J>XsdsuZULXt5Bxv^Er`*zMiu
zD}+>IIk*itM_&phWvP3ov7(}6>XF?)j%pv<@o4rrE-+a=*jkf3vfD=YH0axRLeG>2
z4VQ3ya}W!^!efxRQb6tlsu33G@Uz)g&oYI1wb)qWy24XE_d)fIiX5+7Hqpn1dNpW6
zirJZ$@jV(d7Gjfb<i*DgobxApIGU-A+B-eMW@oB;WS0>0X(v9oXLVm(oNauv+l|>-
zJJ)!OYvmg<y6z9lz-WWd^DPT5D%E!Q_+F)HJ4e6$HjRCor<N@9EBG=v=gX`?-MV$#
zw0U#U!hyVo_lK&e;ABRQRGOS?EB{@Z>RVKoRCZLbPSrnI5fv;!3DJ|V183)UB<IQV
zg8zzNdsD_nBhR=|`pu5tDmf8&&27<_<YyoE;;%+AIyKqx!H<>UZ>!@Hb4H+|ltn#d
z$`pX3`12%9jwV+Un*AU{ZN=+9X(vmZcr;&t35rc?SJ#d+X3VgkFri5U?OormiB>Gw
z@}P{-3y+9k49mRplc|+tVyiTrT=PaB3w|aI2qS_zr=*yDB&3@|CH1M9PRmZMo1R!w
z<|6I2dva?UloKb6nDjAf#fm{E408(##>|+}8GOt=E$Rvi)UAfM<^^1gi`x(ysx0F)
zGcy~b+u`z6h3yTY1?JqGIcwIz)2DafZ<Bb$3IcTQ-@BK_7VBH~sh5gk{ED<y`^w8}
zd|ho6phFjpCXXw{uDFcNAN%jWArLd4naC)*pwm-47`QGDJrP}EY<~Le*%O9d%q7%}
zv*BQL^cs-~u3z7<ZM$~MNW)mYqS3@tXU@#0`t@H~x^I)ov1ZL0*4wdThxFk0@7qa6
z_ksmq!a64HiHxkROgg&9E3-?Fevw_9Uh7K!r|-ah!m-mF;nAtKH@nfXaVP7R@4Rx>
zJ16G8+cslBbZRe}Pddo1U;D4WrW_F6b9bBI>TT`Yw_j=!)qlhyjIs6;Cl)Wh2x-cU
zyd&;TSpSH8Mdv_sn0aDTjP8THylH2j!So|?5s!XO$u#y=)22;jU!mzK^4*2JXzav^
z8ORylmX&$J1@KnKGgr90ToM6!WbD@N5gYgHX?w|~2jdGLJbHBh@nb8fpXM8ex8Jh-
zU2KG|zCJrkX0TqkcyafxT?b-f>YjbJ`T3j-kCT7AnV2jw=p{YzfiF0{^udD%N5(`U
zJB&GdHlm_p9u+=2nBU@TmMHYihPVDzDy&%QNDwXhGN9M#lPDqjPA0pEtK&0MitQ#$
z2-LBD{Bbegfe#lI)qxN%Yh)!fd7?7}&*^l_D7EUd(&CHz@P$oKeKzN8By#?7<mb+v
z+v9}ckcwux>x?Ycn>I`Mp0=_3{v3%deA==ex+au65|Pa1yqmvx!q|xL@WO=ypKx%}
zXS&av8T9YJ`e?ri)o+NQ$F4XBAGC2K+W<rRJ|c8z&L5mxbn$tU=AocGT)oFP%)6sB
zMc1}Z+u{2=xQ+n@EAnk^y`4G5!Go+biz|Be?0MzKkN%(yX+^%UQ}M@-d+=jkym0xj
zc+lz7r@wqx+2`BetmiIAgZc}YxyPUK1$96H0ut5;$OKYL^Og}?noE+k*6RDZiY&dR
zyO;Ob^CNr0!Fy9rJ`s5~Dn5&G<;ySkF*b%EI=081@|V+Ltc%MX(UqzMPIOroNVKsC
zUJDBk4Ai*@9pd?N;gQ+^E1i%bEv|0c9i=%_)gqeL8<us*ubRX9N41}ial1u}7GV$w
zTeGIl`_j^7M6GSp2|j+jJ9k0g6Q9Ee4y<N3?H%1UJ3D*9qhCe;)W0`V=f2(emXjB5
zxHb$C8N`~sg9D@gm@uqGkfil?@qJSfdsj7U-u(XEyQ_2GUH3TIYrp{ORjUR!-%yVW
z``%3ZT2HDnbY6BWU%Hbqnk^3S+C+}nxV{AL@TvOr>7&#5F=)z%#lMg3xpZ(^*ej2A
zZ%%uBU25`PW7?uceI-kw^xFwkQ2Ino7WZpA<7P)4gD+{rI@yizjPq6+aZvg8Plw5!
zAGJ}ceDd<sxd0vO)+dd&p9r%3xz<*9yrb=nb!8u)UsR9GzQNPz=)7=R^5a%p+g!}y
zV3Ct4HZ~CYPH-y<F;VJpqhBIrGdJb??yBccB!-hCM9aD*yr;Ve6TW>@Rtyx6o5$-t
z_0}jb<}_^J@D>}>%a@w`JA81v{9n&UxO`f0=&)_AMIM||CN7Vh$B$c!Qjr^_N$|c8
ze5`e5p<b%R=R@xKCpg%ScFXFm_-#l1rp>E|rF3qz@B6#JDMsm){uY|8-51(+D%iX4
zLFIsf#=#Cpiv|q85wInpru16>V?V7=9#0#)Ylvl6-6WHl(f6vWTkTc5yTLJg5ZD~T
zv6X8I%KUx&U)gTIHM7tCr%yxD-J_X#c=&La8yOj1K0b%y<Gn2N`c1U{=-Xc~(zL1D
z_&slLZ{Lg0bLR)ft;hyTquyHfB7I%9$H6ma)K+sZUvH+N^k&Q^#rj$)4YbbGug!9*
zuKDe|*M9$x-XYJOG&L&ygEIzv3V8L#OJhmeZH>x9M^&%R8`IX~+C25!8b#-N7^<x+
z?%=Q3Xy~T%E6ca*=*91^+Fo5#f2-??&5kQVd%sMvs8KTSko{|wxA|qwpD#2_^!-{L
z8)AJht+f5#lS=kAU$w1Uh84$K=bh26vu12-e@*kuA<0usd)X?qwZ7WV*gA8Fa=*R$
zOYKITD=`_NHSVxVb->NtV|8!aYg*}QdZ+i^U)#3H{<#4&t*l#*R;{|Y?wWFVyu!Ug
zoqIaj2REF~U1z!|?Tm@d_Un(IUu+tiKj^Ne-phV1-Rvq_Dd~Avjl6bkc=EYXMu%c6
z=l5H1=5ysNrxOjM>bGop&#~#a6!qqCbW1v2i8A(dTpAgAL^W$iZQEc+`&YG-n_M`Q
zb8vdz=-!zpXZAV&=vP_A(cc%h1z9kK`k&>87CLp?ZrOib-8DlsTQsg;H*NCgOuh3f
yoJ?;Vit&ASQ}xq}_N_)o|NXr+LwjzhYM?W;R(a<25K{&Iv9=g(e%x$o!2bhn1E<>n

diff --git a/docs/en_US/images/query_toolbar.png b/docs/en_US/images/query_toolbar.png
index 9ae9cef115c8d3e335cbfb09989f1264abcf08ba..b87c0d72bb223c02c392f48a5350c7cb51558f75 100644
GIT binary patch
literal 7820
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

literal 20230
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
N002ovPDHLkV1lprxcC47

 

 
+

 
+import sys
 import pyperclip
 import random

     test_table_name = ""
 
     def before(self):
 
     def runTest(self):

 

 

-  $el.find('#btn-save')

 

 

                         SQL = render_template(

 
         manager = get_driver(

 
index a06c2c7f..c957e580 100644

 
-        status = False
-        res = None
-        query_res = dict()
-        count = 0
-        list_of_rowid = []

 class ViewCommand(GridCommand):
@@ -1114,18 +860,83 @@ class QueryToolCommand(BaseCommand, FetchedRowTracker):
         self.auto_rollback = False
         self.auto_commit = True

 
 
     def can_filter(self):
         return False
 
+            attributes accordingly.
+            Should be called after polling for the results is successful (results are ready)
 
@@ -1134,3 +945,28 @@ class QueryToolCommand(BaseCommand, FetchedRowTracker):

 
index 36f245d0..43729129 100644
@@ -400,26 +401,7 @@ define('tools.querytool', [
 
             // Set focus on query tool of active panel
@@ -663,62 +645,6 @@ define('tools.querytool', [
       }
     },

      SlickGrid Plugins:
@@ -782,16 +708,16 @@ define('tools.querytool', [
     render_grid: function(collection, columns, is_editable, client_primary_key, rows_affected) {
       var self = this;

       // To store primary keys before they gets changed
       self.handler.primary_keys_data = {};
@@ -898,7 +824,7 @@ define('tools.querytool', [
       }
 
       var grid_options = {
-        editable: true,
+        editable: is_editable,
@@ -1115,6 +1041,14 @@ define('tools.querytool', [
 
@@ -1170,7 +1104,7 @@ define('tools.querytool', [
 
       // Listener function which will be called when user adds new rows
@@ -1198,6 +1132,7 @@ define('tools.querytool', [
           'data': item,
         };
         self.handler.data_store.added_index[data_length] = _key;
+
         // Fetch data type & add it for the column
         var temp = {};
         temp[column.name] = _.where(this.columns, {
@@ -1206,8 +1141,17 @@ define('tools.querytool', [
         grid.updateRowCount();
         grid.render();

       // Listen grid viewportChanged event to load next chunk of data.
@@ -1256,9 +1200,11 @@ define('tools.querytool', [
       }
       dataView.setItems(collection, self.client_primary_key);
     },
+
     fetch_next_all: function(cb) {
       this.fetch_next(true, cb);
     },
+
     fetch_next: function(fetch_all, cb) {
       var self = this,
         url = '';
@@ -1458,7 +1404,7 @@ define('tools.querytool', [
     },

@@ -1467,9 +1413,7 @@ define('tools.querytool', [
 
@@ -1483,7 +1427,7 @@ define('tools.querytool', [
       self.handler.close_on_save = false;
       // Trigger the save signal to the SqlEditorController class
       self.handler.trigger(
-        'pgadmin-sqleditor:button:save',
+        'pgadmin-sqleditor:button:save_file',
         self,
         self.handler,
         true
@@ -1656,6 +1600,11 @@ define('tools.querytool', [
       );
     },
 
@@ -2268,7 +2217,7 @@ define('tools.querytool', [
 
@@ -2331,12 +2280,6 @@ define('tools.querytool', [
 
         self.trigger(
@@ -2385,8 +2328,7 @@ define('tools.querytool', [
 
@@ -2462,13 +2404,12 @@ define('tools.querytool', [
           $('#btn-filter-dropdown').prop('disabled', false);
         }
 
@@ -2852,9 +2793,9 @@ define('tools.querytool', [
@@ -2883,41 +2824,42 @@ define('tools.querytool', [

 
         var is_added = _.size(self.data_store.added),
           is_updated = _.size(self.data_store.updated),
@@ -2927,154 +2869,189 @@ define('tools.querytool', [
           return; // Nothing to save here
         }
 
-        if (save_data) {
+        self.trigger(
+          'pgadmin-sqleditor:loading-icon:show',
+          gettext('Saving the updated data...')
+        );
+        // Disable query tool buttons and cancel button only if query tool
+        if(self.is_query_tool)
+          self.disable_tool_buttons(true, true);
 
-          self.trigger(

+            // Enable/Disable commit and rollback button.
+            if (res.data.is_commit_required) {
+              self.disable_transaction_buttons(true);
+            // Enable query tool buttons and cancel button only if query tool
+            if(self.is_query_tool)
+              self.disable_tool_buttons(false);

-                // Reset data store
-                self.data_store = {
-                  'added': {},
-                  'updated': {},
-                  'deleted': {},
-                  'added_index': {},
-                  'updated_index': {},
-                };

 
+              alertify.success(gettext('Data saved successfully.'));
+              var is_commit_required = _.has(res.data, 'is_commit_required') &&
+              if(is_commit_required)
+                alertify.info(gettext('Auto-commit is off. You still need to commit changes to the database.'));

-              grid.invalidate();
+            // Enable query tool buttons and cancel button only if query tool
+            if(self.is_query_tool)
+              self.disable_tool_buttons(false);
 
       // Find index of row at fault from grid data
@@ -3118,7 +3095,7 @@ define('tools.querytool', [
 
       // Save as
       _save_as: function() {
 
       // Set panel title.
@@ -3205,7 +3182,7 @@ define('tools.querytool', [
             $busy_icon_div.removeClass('show_progress');

@@ -3250,7 +3227,7 @@ define('tools.querytool', [
 
               // Update the flag as query is already saved.
@@ -3259,7 +3236,8 @@ define('tools.querytool', [
             }
             self.trigger('pgadmin-sqleditor:loading-icon:hide');
             if (self.close_on_save) {
-              self.close();
+              // Check for any other needed confirmations before closing
+              self.check_needed_confirmations_before_closing_panel();
             }
           })
           .fail(function(e) {
@@ -3299,7 +3277,7 @@ define('tools.querytool', [
             self.setTitle(title);
           }
 
@@ -3533,7 +3511,7 @@ define('tools.querytool', [
 
           var arr_to_object = function(arr) {
             var obj = {};
@@ -3622,7 +3600,7 @@ define('tools.querytool', [
       },
 
       // This function is used to enable/disable buttons
-      disable_tool_buttons: function(disabled) {
+      disable_tool_buttons: function(disabled, disable_cancel=null) {
         let mode_disabled = disabled;
 
         /* Buttons be always disabled in view/edit mode */
@@ -3636,13 +3614,19 @@ define('tools.querytool', [
         $('#btn-explain-options-dropdown').prop('disabled', mode_disabled);
         $('#btn-edit-dropdown').prop('disabled', mode_disabled);
         $('#btn-load-file').prop('disabled', mode_disabled);
-        $('#btn-save').prop('disabled', mode_disabled);
+        $('#btn-save-file').prop('disabled', mode_disabled);
         $('#btn-file-menu-dropdown').prop('disabled', mode_disabled);
         $('#btn-find').prop('disabled', mode_disabled);
         $('#btn-find-menu-dropdown').prop('disabled', mode_disabled);
+
         if (this.is_query_tool) {
-          // Cancel query tool needs opposite behaviour
-          $('#btn-cancel-query').prop('disabled', !disabled);
+
+          if(disable_cancel !== null)
+            $('#btn-cancel-query').prop('disabled', disable_cancel);
+          // Cancel query tool needs opposite behaviour if not explicitly given
+          else
+            $('#btn-cancel-query').prop('disabled', !disabled);
+
           if(this.is_transaction_buttons_disabled) {
             $('#btn-query-dropdown').prop('disabled', disabled);
           } else {
@@ -3665,8 +3649,36 @@ define('tools.querytool', [
       // This function will fetch the sql query from the text box
       // and execute the query.
       execute: function(explain_prefix, shouldReconnect=false) {
-        var self = this,
-          sql = '';
+        var self = this;
+
+        // Check if the data grid has any changes before running query
+        // Check if the data grid has any changes before running query
+        if (self.can_edit && _.has(self, 'data_store') &&
+          (_.size(self.data_store.added) ||
+            _.size(self.data_store.updated) ||
+            _.size(self.data_store.deleted))
+        ) {
+          alertify.confirm(gettext('Unsaved changes'),
+            gettext('The data has been modified, but not saved. Are you sure you wish to discard the changes?'),
+            function() {
+              // Do nothing as user do not want to save, just continue
+              self._execute_sql_query(explain_prefix, shouldReconnect);
+            },
+            function() {
+              // Stop, User wants to save
+              return true;
+            }
+          ).set('labels', {
+            ok: gettext('Yes'),
+            cancel: gettext('No'),
+          });
+        } else {
+          self._execute_sql_query(explain_prefix, shouldReconnect);
+        }
+      },
+
+      _execute_sql_query: function(explain_prefix, shouldReconnect) {
+        var self = this, sql = '';
 
@@ -3675,8 +3687,8 @@ define('tools.querytool', [
@@ -4000,6 +4012,146 @@ define('tools.querytool', [
 
+      or uncommitted transactions before closing a panel */
+            uncommitted_transaction: false,
+          ignore_uncommitted_transaction = self.ignore_on_close.uncommitted_transaction;
+        else if (!ignore_uncommitted_transaction
+                 && self.preferences.alert_uncommitted_transaction
+          self.uncommitted_transaction_user_confirmation();
+      /* To prompt the user for uncommitted transaction */
+      uncommitted_transaction_user_confirmation: function() {
+          gettext('Uncommitted transaction'),
+          gettext(`The current transaction was not committed to the database.
+            self.ignore_on_close.uncommitted_transaction = true;

index 00000000..af10564d
@@ -0,0 +1,41 @@
+# Utility functions used by tests
+# Executes a query and polls for the results, then returns them
+# Polls for the result of an executed query
index 64c75754..f75522ac 100644
 
+    self.show_alert_uncommitted_transaction = self.preference.register(
+        'Options', 'alert_uncommitted_transaction',
+        gettext("Alert on uncommitted transactions?"), 'boolean', True,
+        category_label=gettext('Options'),
+        help_str=gettext(
+            'Specifies whether or not to alert the user when a current '
+            'transaction is uncommitted on Query Tool exit.'
+        )
+    )
+
     self.csv_quoting = self.preference.register(
         'CSV_output', 'csv_quoting',
         gettext("CSV quoting"), 'options', 'strings',
@@ -302,6 +312,24 @@ def RegisterQueryToolPreferences(self):
         fields=shortcut_fields
     )
 
+        gettext('Save data changes'),

 

 

 

 
+  describe('F6', () => {

---

From: Khushboo Vashi <[email-masked]>
Date: Thu, 11 Jul 2019 10:06:17 +0530

Hi Yosry,

On Thu, Jul 11, 2019 at 4:10 AM Yosry Muhammad <[email-masked]> wrote:

>> I liked the way you have refactored the code at some places in the JS
>> file and made it cleaner.
>> Here are some points:
>>
Right, on the enter, the button gets enabled, not on the focus out, so this
is by design, not something your patch caused.

> indicating when it should be called.
Please make sure to remove "from
pgadmin.tools.sqleditor.utils.constant_definition
import ASYNC_OK" line from the file as not required anymore.

> features. Which part is missing?
My bad, I have applied the patch on the web folder, so the difference of
rst files didn't get applied. Now, I can see the doc updates and it looks
good to me.

Thanks,
Khushboo

---

From: Khushboo Vashi <[email-masked]>
Date: Thu, 11 Jul 2019 10:15:36 +0530

Hi,

On Wed, Jul 10, 2019 at 3:11 PM Yosry Muhammad <[email-masked]> wrote:

> Okay.

> One thing I have noticed, when I add a new row and delete it immediately
without saving it and try to close the query tool, the uncommitted prompt
is coming.
In my opinion, it should not come, what do you think?

We should disable the prompt if auto-commit and auto-rollback both are
enabled.

Thanks,
Khushboo

---

From: Yosry Muhammad <[email-masked]>
Date: Thu, 11 Jul 2019 15:20:17 +0200

Hi Khushboo,
Please find an updated patch attached with the mentioned import line
removed.

On Thu, Jul 11, 2019 at 6:45 AM Khushboo Vashi <
[email-masked]> wrote:

>> This is not implemented yet. I will work on that in a following patch
>> soon enough.
>>
>> Okay.
>
>> This is needed when auto-commit is off. Saving changes in the data grid
>> is performed as part of the ongoing transaction (or a new one if none is

The uncommited prompt does not keep track of what the user has done so far,
it only checks for the current transaction status. If a current transaction
is ongoing, the prompt comes up. If you added a new row then deleted it
without saving, the transaction status is not affected, you must have done
a previous operation and had auto-commit turned off (probably the select
statement).
if auto-commit & auto-rollback are both enabled then there won't be any
ongoing transaction at any point, thus, the prompt will never come up.

Looking forward for any feedback !
Thanks !

-- 
*Yosry Muhammad Yosry*

---

From: Yosry Muhammad <[email-masked]>
Date: Thu, 11 Jul 2019 15:21:44 +0200

I missed attaching the updated patch, here it is !

On Thu, Jul 11, 2019 at 3:20 PM Yosry Muhammad <[email-masked]> wrote:

>>> 2. As we are already showing the changed Data prompt on closing the
>>>> Query Tool, do we really need the Uncommitted Transaction prompt?
>>>>
>>>
> The uncommited prompt does not keep track of what the user has done so
> far, it only checks for the current transaction status. If a current
> transaction is ongoing, the prompt comes up. If you added a new row then
> deleted it without saving, the transaction status is not affected, you must
> have done a previous operation and had auto-commit turned off (probably the
> select statement).

-- 
*Yosry Muhammad Yosry*

 

 
 **Geometry Data Viewer**

literal 83700

literal 85347

literal 20230

 

 
+

 
+import sys
 import pyperclip
 import random

     test_table_name = ""
 
     def before(self):
 
     def runTest(self):

 

 

-  $el.find('#btn-save')

 

 

                         SQL = render_template(

 
         manager = get_driver(

 
index a06c2c7f..c92bda6c 100644
@@ -19,6 +19,9 @@ from flask import render_template

@@ -668,269 +671,11 @@ class TableCommand(GridCommand):
         else:
             conn = default_conn
 
-        status = False
-        res = None
-        query_res = dict()
-        count = 0
-        list_of_rowid = []

 class ViewCommand(GridCommand):
@@ -1114,18 +859,83 @@ class QueryToolCommand(BaseCommand, FetchedRowTracker):
         self.auto_rollback = False
         self.auto_commit = True

 
 
     def can_filter(self):
         return False

@@ -1134,3 +944,28 @@ class QueryToolCommand(BaseCommand, FetchedRowTracker):

 

 
      SlickGrid Plugins:

 
       var grid_options = {
-        editable: true,
+        editable: is_editable,

 

 

 
 
         self.trigger(

 

 
-        if (save_data) {
+        self.trigger(
 
-          self.trigger(

 
 
-                // Reset data store
-                self.data_store = {
-                  'added': {},
-                  'updated': {},
-                  'deleted': {},
-                  'added_index': {},
-                  'updated_index': {},
-                };

 

-              grid.invalidate();

       // Save as
       _save_as: function() {
 
       // Set panel title.

 

 

 

 

 

 

 

 
 
+  describe('F6', () => {

---

From: Dave Page <[email-masked]>
Date: Fri, 12 Jul 2019 10:20:02 +0100

On Fri, Jul 12, 2019 at 5:57 AM Khushboo Vashi <
[email-masked]> wrote:

> Hi Yosry,
>
> On Thu, Jul 11, 2019 at 6:50 PM Yosry Muhammad <[email-masked]> wrote:
>
>> Hi Khushboo,
>> Looks good to me.
>>>> One thing I have noticed, when I add a new row and delete it
>>> immediately without saving it and try to close the query tool, the
>>> uncommitted prompt is coming.
>> Exactly, my point is. It should not prompt if auto-commit & auto-rollback
> both are enabled, but it is coming. Please see the attached video.
>

Agreed - this should be fixed.

If auto-commit is turned off, it should also prompt to commit if the user
hit Save in the prior step I think. Maybe reversing that prompt makes more
sense in general - prompting to save rather than discard is quite normal;
think about text editors etc.

---

From: Yosry Muhammad <[email-masked]>
Date: Fri, 12 Jul 2019 11:53:15 +0200

I will look into it and get back to you.
Thanks !

On Fri, Jul 12, 2019, 11:20 AM Dave Page <[email-masked]> wrote:

>>>>> This is needed when auto-commit is off. Saving changes in the data
>>>>> grid is performed as part of the ongoing transaction (or a new one if none
>>>>> is ongoing). After saving the data changes the user should still commit the
>>> Exactly, my point is. It should not prompt if auto-commit &
>> auto-rollback both are enabled, but it is coming. Please see the attached
>> video.
>>
>

---

From: Yosry Muhammad <[email-masked]>
Date: Tue, 16 Jul 2019 07:03:06 +0200

Hi all,

Please find attached an updated patch with the following modifications:

- Fixed the bug noticed by Khushboo, it was caused because I was using the
connection status checked periodically to know the transaction status and
whether a transaction is active. Monitoring the connection status could be
disabled using preferences (which I assume was the case at Khushboo's). I
changed the code to store the last transaction status on any query
execution, polling, or saving of data changes. This transaction status is
used rather than the one checked periodically as it can be disabled. I also
refactored other parts of the code to make use of the stored transaction
status.

- Created a new dialog that prompts the user to either commit or rollback
when exiting with an active transaction. In addition, the commit button is
disabled when the transaction is invalid (as the default behavior of
clicking commit when the transaction is invalid is rolling back, this makes
it clearer to the user that they can only rollback the transaction or
cancel the exit). Preferences and documentation where updated accordingly.

- When the user performs a failed save as a part of an ongoing transaction
(with auto-commit off), a notification now clarifies that only the saving
action was rolledback rather than the whole transaction, therefore, there
previous queries are unaffected.

Looking forward to your feedback.
Thanks !

-- 
*Yosry Muhammad Yosry*

 

 
 **Geometry Data Viewer**

literal 83700

literal 85347

literal 20230

diff --git a/docs/en_US/keyboard_shortcuts.rst b/docs/en_US/keyboard_shortcuts.rst
index 57a5c2ec..177bdf84 100644
--- a/docs/en_US/keyboard_shortcuts.rst
+++ b/docs/en_US/keyboard_shortcuts.rst
@@ -154,6 +154,8 @@ When using the Query Tool, the following shortcuts are available:
    +==========================+====================+===================================+
    | F5                       | F5                 | Execute query                     |
    +--------------------------+--------------------+-----------------------------------+
+   | F6                       | F6                 | Save data changes                 |
+   +--------------------------+--------------------+-----------------------------------+
    | F7                       | F7                 | EXPLAIN query                     |
    +--------------------------+--------------------+-----------------------------------+
    | Shift + F7               | Shift + F7         | EXPLAIN ANALYZE query             |
diff --git a/docs/en_US/preferences.rst b/docs/en_US/preferences.rst
index 28ecb6ab..c8dfbaf2 100644
--- a/docs/en_US/preferences.rst
+++ b/docs/en_US/preferences.rst
@@ -320,6 +320,10 @@ Use the fields on the *Options* panel to manage editor preferences.
   editor will prompt the user to saved unsaved query modifications when exiting
   the Query Tool.
 
+* When the *Prompt to commit/rollback active transactions?* switch is set to *True*,
+  the editor will prompt the user to commit or rollback changes when exiting 
+  the Query Tool while the current transaction is not committed.
+
 * Use the *Tab size* field to specify the number of spaces per tab character in
   the editor.

 
+

 
+import sys
 import pyperclip
 import random

     test_table_name = ""
 
     def before(self):
 
     def runTest(self):

 

 
   if (this.validateShortcutKeys(executeKeys, event)) {
     this._stopEventPropagation(event);
@@ -233,6 +234,9 @@ function keyboardShortcutsQueryTool(
       this._stopEventPropagation(event);
       queryToolActions.executeRollback(sqlEditorController);
     }
+  } else if (this.validateShortcutKeys(saveDataKeys, event)) {
+    this._stopEventPropagation(event);
+    queryToolActions.saveDataChanges(sqlEditorController);
   } else if ((
     (this.isMac() && event.metaKey) ||
      (!this.isMac() && event.ctrlKey)
diff --git a/web/pgadmin/static/js/sqleditor/call_render_after_poll.js b/web/pgadmin/static/js/sqleditor/call_render_after_poll.js
index 3f32d571..57d60537 100644
--- a/web/pgadmin/static/js/sqleditor/call_render_after_poll.js
+++ b/web/pgadmin/static/js/sqleditor/call_render_after_poll.js
@@ -37,7 +37,8 @@ export function callRenderAfterPoll(sqlEditor, alertify, res) {
     const msg = sprintf(
       gettext('Query returned successfully in %s.'), sqlEditor.total_time);
     res.result += '\n\n' + msg;
-    sqlEditor.update_msg_history(true, res.result, false);
+    sqlEditor.update_msg_history(true, res.result, true);
+    sqlEditor.reset_data_store();
     if (isNotificationEnabled(sqlEditor)) {
       alertify.success(msg, sqlEditor.info_notifier_timeout);
     }
diff --git a/web/pgadmin/static/js/sqleditor/execute_query.js b/web/pgadmin/static/js/sqleditor/execute_query.js
index 11cd84b9..26da6914 100644
--- a/web/pgadmin/static/js/sqleditor/execute_query.js
+++ b/web/pgadmin/static/js/sqleditor/execute_query.js
@@ -70,6 +70,8 @@ class ExecuteQuery {
         let httpMessageData = result.data;
         self.removeGridViewMarker();
 
+        self.updateSqlEditorLastTransactionStatus(httpMessageData.data.transaction_status);
+
         if (ExecuteQuery.isSqlCorrect(httpMessageData)) {
           self.loadingScreen.setMessage('Waiting for the query to complete...');
 
@@ -118,6 +120,8 @@ class ExecuteQuery {
       })
     ).then(
       (httpMessage) => {
+        self.updateSqlEditorLastTransactionStatus(httpMessage.data.data.transaction_status);
+
         // Enable/Disable commit and rollback button.
         if (httpMessage.data.data.transaction_status == 2 || httpMessage.data.data.transaction_status == 3) {
           self.enableTransactionButtons();
@@ -126,6 +130,10 @@ class ExecuteQuery {
         }
 
         if (ExecuteQuery.isQueryFinished(httpMessage)) {
+          if (this.sqlServerObject.close_on_idle_transaction &&
+              httpMessage.data.data.transaction_status == 0)
+            this.sqlServerObject.check_needed_confirmations_before_closing_panel();
+
           self.loadingScreen.setMessage('Loading data from the database server and rendering...');
 
           self.sqlServerObject.call_render_after_poll(httpMessage.data.data);
@@ -296,6 +304,10 @@ class ExecuteQuery {
     this.sqlServerObject.info_notifier_timeout = messageData.info_notifier_timeout;
   }
 
+  updateSqlEditorLastTransactionStatus(transactionStatus) {
+    this.sqlServerObject.last_transaction_status = transactionStatus;
+  }
+
   static isSqlCorrect(httpMessageData) {
     return httpMessageData.data.status;
   }
diff --git a/web/pgadmin/static/js/sqleditor/query_tool_actions.js b/web/pgadmin/static/js/sqleditor/query_tool_actions.js
index d3f6d9e1..18e15ecb 100644
--- a/web/pgadmin/static/js/sqleditor/query_tool_actions.js
+++ b/web/pgadmin/static/js/sqleditor/query_tool_actions.js
@@ -156,6 +156,11 @@ let queryToolActions = {
     sqlEditorController.special_sql = 'ROLLBACK;';
     self.executeQuery(sqlEditorController);
   },
+
+  saveDataChanges: function (sqlEditorController) {
+    sqlEditorController.close_on_save = false;
+    sqlEditorController.save_data();
+  },
 };

-  $el.find('#btn-save')

index 1d2796ec..851e3f36 100644

 

 
                         SQL = render_template(

@@ -713,32 +726,39 @@ def save(trans_id):
 
         manager = get_driver(
 
         status, res, query_res, _rowid = trans_obj.save(
+    transaction_status = conn.transaction_status()
 
     return make_json_response(
         data={
             'status': status,
             'result': res,
             'query_result': query_res,
-            '_rowid': _rowid
+            '_rowid': _rowid,
+            'transaction_status': transaction_status
         }
     )
 
index a06c2c7f..0882bb20 100644

 
-        status = False
-        res = None
-        query_res = dict()
-        count = 0
-        list_of_rowid = []

 class ViewCommand(GridCommand):
@@ -1114,18 +859,84 @@ class QueryToolCommand(BaseCommand, FetchedRowTracker):
         self.auto_rollback = False
         self.auto_commit = True

 
 
     def can_filter(self):
         return False
 
+            Should be called after polling for the results is successful
+            (results are ready)

 
 
index 36f245d0..a016d1da 100644

 
      SlickGrid Plugins:

 
       var grid_options = {
-        editable: true,
+        editable: is_editable,

 

 

@@ -1944,11 +1893,13 @@ define('tools.querytool', [
 
     // Callback function for the commit button click.
     on_commit_transaction: function() {
+      this.handler.close_on_idle_transaction = false;
       queryToolActions.executeCommit(this.handler);
     },
 
     // Callback function for the rollback button click.
     on_rollback_transaction: function() {
+      this.handler.close_on_idle_transaction = false;
       queryToolActions.executeRollback(this.handler);
     },
   });
@@ -2177,6 +2128,8 @@ define('tools.querytool', [
         self.has_more_rows = false;
         self.fetching_rows = false;
         self.close_on_save = false;
+        self.close_on_idle_transaction = false;
+        self.last_transaction_status = -1;
         self.server_type = server_type;
         self.url_params = url_params;
         self.script_type_url = script_type_url;
@@ -2268,7 +2221,7 @@ define('tools.querytool', [
 
@@ -2331,12 +2284,6 @@ define('tools.querytool', [
 
         self.trigger(
@@ -2385,8 +2332,7 @@ define('tools.querytool', [
 
@@ -2462,13 +2408,12 @@ define('tools.querytool', [
           $('#btn-filter-dropdown').prop('disabled', false);
         }
 
@@ -2852,9 +2797,9 @@ define('tools.querytool', [
@@ -2883,41 +2828,42 @@ define('tools.querytool', [

 
         var is_added = _.size(self.data_store.added),
           is_updated = _.size(self.data_store.updated),
@@ -2927,154 +2873,197 @@ define('tools.querytool', [
           return; // Nothing to save here
         }
 
-        if (save_data) {
+        self.trigger(
 
-          self.trigger(

+            var transaction_status = res.data.transaction_status;
+            // Update last transaction status
+            self.last_transaction_status = transaction_status;
+            var is_commit_required = transaction_status > 0; // 0 is idle
+            if (is_commit_required) {

-                // Reset data store
-                self.data_store = {
-                  'added': {},
-                  'updated': {},
-                  'deleted': {},
-                  'added_index': {},
-                  'updated_index': {},
-                };

 
+              // If the transaction is not idle, notify the user that previous queries are not rolled back,
+              // only the failed save queries.
+              if (transaction_status != 0)
+                alertify.info(gettext('Saving data changes was rolled back but the current transaction is ' +
+                                      'still active, previous queries are unaffected.'));

-              grid.invalidate();
 
       // Find index of row at fault from grid data
@@ -3118,7 +3107,7 @@ define('tools.querytool', [
 
       // Save as
       _save_as: function() {
 
       // Set panel title.
@@ -3205,7 +3194,7 @@ define('tools.querytool', [
             $busy_icon_div.removeClass('show_progress');

@@ -3250,7 +3239,7 @@ define('tools.querytool', [
 
               // Update the flag as query is already saved.
@@ -3259,7 +3248,8 @@ define('tools.querytool', [
             }
             self.trigger('pgadmin-sqleditor:loading-icon:hide');
             if (self.close_on_save) {
-              self.close();
+              // Check for any other needed confirmations before closing
+              self.check_needed_confirmations_before_closing_panel();
             }
           })
           .fail(function(e) {
@@ -3299,7 +3289,7 @@ define('tools.querytool', [
             self.setTitle(title);
           }
 
@@ -3533,7 +3523,7 @@ define('tools.querytool', [
 
           var arr_to_object = function(arr) {
             var obj = {};
@@ -3622,7 +3612,7 @@ define('tools.querytool', [
       },

@@ -3636,13 +3626,19 @@ define('tools.querytool', [
@@ -3665,8 +3661,36 @@ define('tools.querytool', [
 
@@ -3675,8 +3699,8 @@ define('tools.querytool', [
@@ -4000,6 +4024,188 @@ define('tools.querytool', [
 
+      /* Checks if there is any unsaved data changes, unsaved changes in the query
+      or uncommitted transactions before closing a panel */
+      check_needed_confirmations_before_closing_panel: function(is_close_event_call = false) {
+        var self = this, msg;
+
+        /*
+         is_close_event_call = true only when the function is called when the
+         close panel event is triggered, otherwise (on recursive calls) it is false
+        */
+        if(!self.ignore_on_close || is_close_event_call)
+          self.ignore_on_close = {
+            unsaved_data: false,
+            unsaved_query: false,
+          };
+
+        var ignore_unsaved_data = self.ignore_on_close.unsaved_data,
+          ignore_unsaved_query = self.ignore_on_close.unsaved_query;
+
+        // If there is unsaved data changes in the grid
+        if (!ignore_unsaved_data && self.can_edit
+            && self.preferences.prompt_save_data_changes &&
+            self.data_store &&
+             (_.size(self.data_store.added) ||
+              _.size(self.data_store.updated) ||
+              _.size(self.data_store.deleted))) {
+          msg = gettext('The data has changed. Do you want to save changes?');
+          self.unsaved_changes_user_confirmation(msg, true);
+        } // If there is unsaved query changes in the query editor
+        else if (!ignore_unsaved_query && self.is_query_tool
+                   && self.is_query_changed
+                   && self.preferences.prompt_save_query_changes) {
+          msg = gettext('The text has changed. Do you want to save changes?');
+          self.unsaved_changes_user_confirmation(msg, false);
+        } // If a transaction is currently ongoing
+        else if (self.preferences.prompt_commit_transaction
+                 && self.last_transaction_status > 0) { // 0 -> idle (no transaction)
+          var is_commit_disabled = self.last_transaction_status == 3;  // 3 -> Failed transaction
+          self.uncommitted_transaction_user_confirmation(is_commit_disabled);
+        }
+        else {
+          // No other function should call close() except through this function
+          // in order to perform necessary checks
+          self.ignore_on_close = undefined;
+          self.close();
+        }
+        // Return false so that the panel does not close unless close()
+        // is called explicitly (when all needed prompts are issued).
+        return false;
+      },
+
+      /* To prompt the user for uncommitted transaction */
+      uncommitted_transaction_user_confirmation: function(is_commit_disabled = false) {
+        var self = this;
+
+        alertify.confirmCommit || alertify.dialog('confirmCommit', function() {
+          return {
+            main: function(title, message, is_commit_disabled) {
+              this.is_commit_disabled = is_commit_disabled;
+              this.setHeader(title);
+              this.setContent(message);
+            },
+            setup: function() {
+              return {
+                buttons: [{
+                  text: gettext('Cancel'),
+                  key: 27, // ESC
+                  invokeOnClose: true,
+                  className: 'btn btn-secondary fa fa-lg fa-times pg-alertify-button',
+                }, {
+                  text: gettext('Rollback'),
+                  className: 'btn btn-primary fa fa-lg pg-alertify-button',
+                }, {
+                  text: gettext('Commit'),
+                  className: 'btn btn-primary fa fa-lg pg-alertify-button',
+                }],
+                focus: {
+                  element: 0,
+                  select: false,
+                },
+                options: {
+                  maximizable: false,
+                  resizable: false,
+                },
+              };
+            },
+            prepare: function() {
+              // Disable commit button if needed
+              if(this.is_commit_disabled)
+                this.__internal.buttons[2].element.disabled = true;
+              else
+                this.__internal.buttons[2].element.disabled = false;
+            },
+            callback: function(closeEvent) {
+              switch (closeEvent.index) {
+              case 0: // Cancel
+                //Do nothing.
+                break;
+              case 1: // Rollback
+                self.close_on_idle_transaction = true;
+                queryToolActions.executeRollback(self);
+                break;
+              case 2: // Commit
+                self.close_on_idle_transaction = true;
+                queryToolActions.executeCommit(self);
+                break;
+              }
+            },
+          };
+        });
+
+        let msg = gettext('The current transaction is not commited to the database.'
+                           + 'Do you want to commit or rollback the transaction?');
+
+        alertify.confirmCommit(gettext('Commit transaction?'), msg, is_commit_disabled);
+      },
+
+      /* To prompt user for unsaved changes */
+      unsaved_changes_user_confirmation: function(msg, is_unsaved_data) {
+        // If there is anything to save then prompt user
+        var self = this;
+
+        alertify.confirmSave || alertify.dialog('confirmSave', function() {
+          return {
+            main: function(title, message, is_unsaved_data) {
+              this.is_unsaved_data = is_unsaved_data;
+              this.setHeader(title);
+              this.setContent(message);
+            },
+            setup: function() {
+              return {
+                buttons: [{
+                  text: gettext('Cancel'),
+                  key: 27, // ESC
+                  invokeOnClose: true,
+                  className: 'btn btn-secondary fa fa-lg fa-times pg-alertify-button',
+                }, {
+                  text: gettext('Don\'t save'),
+                  className: 'btn btn-secondary fa fa-lg fa-trash-o pg-alertify-button',
+                }, {
+                  text: gettext('Save'),
+                  className: 'btn btn-primary fa fa-lg fa-save pg-alertify-button',
+                }],
+                focus: {
+                  element: 0,
+                  select: false,
+                },
+                options: {
+                  maximizable: false,
+                  resizable: false,
+                },
+              };
+            },
+            callback: function(closeEvent) {
+              switch (closeEvent.index) {
+              case 0: // Cancel
+                //Do nothing.
+                break;
+              case 1: // Don't Save
+                self.close_on_save = false;
+                if(this.is_unsaved_data)
+                  self.ignore_on_close.unsaved_data = true;
+                else
+                  self.ignore_on_close.unsaved_query = true;
+                // Go back to check for any other needed confirmations before closing
+                self.check_needed_confirmations_before_closing_panel();
+                break;
+              case 2: //Save
+                self.close_on_save = true;
+                if(this.is_unsaved_data) {
+                  self.save_data();
+                }
+                else {
+                  self._save_file();
+                }
+                break;
+              }
+            },
+          };
+        });
+        alertify.confirmSave(gettext('Save changes?'), msg, is_unsaved_data);
+      },
+
       close: function() {
         var self = this;

index 64c75754..12e5f363 100644
@@ -175,6 +175,17 @@ def RegisterQueryToolPreferences(self):
         )
     )
 
+    self.show_prompt_commit_transaction = self.preference.register(
+        'Options', 'prompt_commit_transaction',
+        gettext("Prompt to commit/rollback active transactions?"), 'boolean',
+        True,
+        category_label=gettext('Options'),
+        help_str=gettext(
+            'Specifies whether or not to prompt user to commit or rollback '
+            'an active transaction on Query Tool exit.'
+        )
+    )
+
     self.csv_quoting = self.preference.register(
         'CSV_output', 'csv_quoting',
         gettext("CSV quoting"), 'options', 'strings',
@@ -302,6 +313,24 @@ def RegisterQueryToolPreferences(self):
         fields=shortcut_fields
     )
 
index 00000000..935d6591
@@ -0,0 +1,310 @@
+                        return status, res, query_res, _rowid
+                            return status, sel_res, query_res, _rowid
+    return status, res, query_res, _rowid

 

 

 

 
+  describe('F6', () => {
index 0e06e68c..fb2404a6 100644
@@ -235,6 +235,7 @@ def get_test_modules(arguments):

---

From: Dave Page <[email-masked]>
Date: Wed, 17 Jul 2019 11:46:26 +0100

Patch committed (with some trivial editorial work on the docs).

Congratulations - that's impressive work!

On Tue, Jul 16, 2019 at 6:03 AM Yosry Muhammad <[email-masked]> wrote:

>>>>>>> This is not implemented yet. I will work on that in a following
>>>>>>> patch soon enough.
>>>>>>>
>>>>>>> Okay.
>>>>>>
>>>>>> We should disable the prompt if auto-commit and auto-rollback both
>>>>>> are enabled.
>>>>>>
>>>>>
>>>>> if auto-commit & auto-rollback are both enabled then there won't be
>>>>> any ongoing transaction at any point, thus, the prompt will never come up.
>>>>>
>>> If auto-commit is turned off, it should also prompt to commit if the
>>> user hit Save in the prior step I think. Maybe reversing that prompt makes
>>> more sense in general - prompting to save rather than discard is quite
>>> normal; think about text editors etc.
>>>
>>> --
>>> Dave Page