Skip to content

Commit

Permalink
Issue #293: prevent long sort operation on header click in large quer…
Browse files Browse the repository at this point in the history
…y results
  • Loading branch information
ansgarbecker committed May 30, 2020
1 parent 94a90bb commit 0339a09
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
7 changes: 5 additions & 2 deletions out/locale/en/LC_MESSAGES/default.po
Expand Up @@ -7,15 +7,15 @@ msgid ""
msgstr ""
"Project-Id-Version: HeidiSQL\n"
"POT-Creation-Date: 2012-11-05 21:40\n"
"PO-Revision-Date: 2020-04-22 18:27+0200\n"
"PO-Revision-Date: 2020-05-30 08:29+0200\n"
"Last-Translator: Ansgar Becker <anse@heidisql.com>\n"
"Language-Team: English (http://www.transifex.com/projects/p/heidisql/language/en/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: en\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.3\n"
"X-Generator: Poedit 2.3.1\n"

#. AboutBox..Caption
#: about.dfm:5
Expand Down Expand Up @@ -6541,3 +6541,6 @@ msgstr "Show SQL completion proposal"

msgid "Find matches in middle of entered text"
msgstr "Find matches in middle of entered text"

msgid "Preventing long sort operation on column click, grid contains more than %d rows. Consider adding ORDER BY clause instead."
msgstr "Preventing long sort operation on column click, grid contains more than %d rows. Consider adding ORDER BY clause instead."
7 changes: 7 additions & 0 deletions source/main.pas
Expand Up @@ -7624,6 +7624,8 @@ procedure TMainForm.menuFetchDBitemsClick(Sender: TObject);
procedure TMainForm.AnyGridHeaderClick(Sender: TVTHeader; HitInfo: TVTHeaderHitInfo);
var
i: Integer;
const
MaxSortRows = 10000;
begin
// Don't call sorting procedure on right click
// Some list-headers have a contextmenu which should popup then.
Expand All @@ -7636,6 +7638,11 @@ procedure TMainForm.AnyGridHeaderClick(Sender: TVTHeader; HitInfo: TVTHeaderHitI
Exit;
if Sender.Columns[HitInfo.Column].CheckBox then
Exit;
// Large query result sorting takes too long, see #293
if TVirtualStringTree(Sender.Treeview).RootNodeCount > MaxSortRows then begin
LogSQL(f_('Preventing long sort operation on column click, grid contains more than %d rows. Consider adding ORDER BY clause instead.', [MaxSortRows]));
Exit;
end;

// Clear sort icons
for i:=0 to Sender.Columns.Count-1 do begin
Expand Down

0 comments on commit 0339a09

Please sign in to comment.