         run_with_new_connection: ({query, callback, connection_error}) =>
             @close_connection()
 
+            @container.toggle_executing true
             driver.connect (error, connection) =>
                 if error?
+                    @container.toggle_executing false
                     connection_error error
                 connection.removeAllListeners 'error' # See issue 1347
-                connection.on 'error', connection_cb
+                connection.on 'error', (error) =>
+                    @container.toggle_executing false
+                    connection_error error
                 @connection = connection
-                cb(error, connection)
+                query.private_run connection, (error, result) =>
+                    @container.toggle_executing false
+                    callback error, result
+
+        cursor_next: ({cursor, error, row, end}) =>
+            @container.toggle_executing true
+            cursor.next (err, row_) =>
+                @container.toggle_executing false
+                if error?
+                    if error.message is 'No more rows in the cursor.'
+                        end()
+                    else
+                        error err
+                else
+                    row row_
 
         remove: =>
             @close_connection()

                    data_cell['need_comma'] = true

                result += @templates.data_inline data_cell
                 
            return result

        # Build the table

            @remove_highlight_suggestion()
            @$('.suggestion_name_li').eq(id).addClass 'suggestion_name_li_hl'
            @$('.suggestion_description').html @description_template @extend_description @current_suggestions[id]

            @$('.suggestion_description').show()

        remove_highlight_suggestion: =>
