diff --git a/web/pgadmin/tools/sqleditor/utils/is_query_resultset_updatable.py b/web/pgadmin/tools/sqleditor/utils/is_query_resultset_updatable.py
index d64cec5..697a4f2 100644
--- a/web/pgadmin/tools/sqleditor/utils/is_query_resultset_updatable.py
+++ b/web/pgadmin/tools/sqleditor/utils/is_query_resultset_updatable.py
@@ -71,7 +71,8 @@ def is_query_resultset_updatable(conn, sql_path):
                                table_oid=table_oid,
                                sql_path=sql_path)
 
-        is_resultset_updatable = has_oids or primary_keys is not None
+        is_resultset_updatable = has_oids or (primary_keys is not None and
+                                              len(primary_keys) != 0)
 
         if is_resultset_updatable:
             column_types = get_columns_types(columns_info=columns_info,
@@ -114,6 +115,8 @@ def _check_editable_columns(table_columns, results_columns):
             results_column['is_editable'] = False
         elif table_column_number in table_columns_numbers:  # Duplicate
             results_column['is_editable'] = False
+        elif table_column_number not in table_columns:
+            results_column['is_editable'] = False
         elif results_column['display_name'] \
                 != table_columns[table_column_number]:
             results_column['is_editable'] = False
diff --git a/web/pgadmin/tools/sqleditor/utils/tests/test_is_query_resultset_updatable.py b/web/pgadmin/tools/sqleditor/utils/tests/test_is_query_resultset_updatable.py
index aae642d..59ce8a7 100644
--- a/web/pgadmin/tools/sqleditor/utils/tests/test_is_query_resultset_updatable.py
+++ b/web/pgadmin/tools/sqleditor/utils/tests/test_is_query_resultset_updatable.py
@@ -17,6 +17,7 @@ from regression import parent_node_dict
 from regression.python_test_utils import test_utils as utils
 from pgadmin.tools.sqleditor.tests.execute_query_test_utils \
     import execute_query
+from datetime import date
 
 
 class TestQueryUpdatableResultset(BaseTestGenerator):
@@ -231,3 +232,57 @@ class TestQueryUpdatableResultset(BaseTestGenerator):
             create_sql += ';'
 
         utils.create_table_with_query(self.server, self.db_name, create_sql)
+
+
+class TestTemporaryTable(TestQueryUpdatableResultset, BaseTestGenerator):
+    """ This class will test the query result-set for temporary tables """
+    scenarios = [
+        ('When selecting all columns of the Temporary table', dict(
+            sql='''
+                    DROP TABLE IF EXISTS {0};
+                    CREATE TEMPORARY TABLE {0} ON COMMIT DROP AS
+                                SELECT
+                                    CURRENT_DATE AS today;
+                    SELECT * FROM {0};''',
+            expected_primary_keys=None,
+            expected_results_column_data=[[date.today().strftime("%Y-%m-%d")]],
+            expected_has_oids=False,
+            expected_results_column_is_editable=False,
+            table_has_oids=False,
+            expected_cols_is_editable=[False]
+        ))
+    ]
+
+    def setUp(self):
+        self._initialize_database_connection()
+        self._initialize_query_tool()
+        self._initialize_urls()
+
+    def runTest(self):
+        response_data = self._execute_select_sql()
+        self._check_primary_keys(response_data)
+        self._check_oids(response_data)
+        self._check_results_column_data(response_data)
+        self._check_editable_columns(response_data)
+
+    def tearDown(self):
+        # Disconnect the database
+        database_utils.disconnect_database(self, self.server_id, self.db_id)
+
+    def _execute_select_sql(self):
+        self.test_table_name = "test_for_updatable_resultset" + \
+                               str(random.randint(1000, 9999))
+        sql = self.sql.format(self.test_table_name)
+        is_success, response_data = \
+            execute_query(tester=self.tester,
+                          query=sql,
+                          poll_url=self.poll_url,
+                          start_query_tool_url=self.start_query_tool_url)
+        self.assertEquals(is_success, True)
+        return response_data
+
+    def _check_results_column_data(self, response_data):
+        results_column_data = response_data['data']['result']
+        for result_data, expected_is_editable in \
+                zip(results_column_data, self.expected_results_column_data):
+            self.assertEquals(result_data, expected_is_editable)
