From fe6b38c7c1a4cd24a2e4d8503e01df6924e0a16b Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Mon, 2 Dec 2013 05:45:47 +0000 Subject: [PATCH] Issue #2398: Make "Get full table status" a session setting (was global before), so users can switch that off in specific sessions only. --- out/locale/en/LC_MESSAGES/default.po | 20 +++++++++++--------- source/connections.dfm | 19 ++++++++++++++++--- source/connections.pas | 5 +++++ source/dbconnection.pas | 7 +++++-- source/helpers.pas | 2 +- source/options.dfm | 28 ++++++++-------------------- source/options.pas | 3 --- 7 files changed, 46 insertions(+), 38 deletions(-) diff --git a/out/locale/en/LC_MESSAGES/default.po b/out/locale/en/LC_MESSAGES/default.po index a20d68a9..59b1d20a 100644 --- a/out/locale/en/LC_MESSAGES/default.po +++ b/out/locale/en/LC_MESSAGES/default.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: HeidiSQL\n" "POT-Creation-Date: 2012-11-05 21:40\n" -"PO-Revision-Date: 2013-11-27 06:53+0100\n" +"PO-Revision-Date: 2013-12-02 06:39+0100\n" "Last-Translator: Ansgar Becker \n" "Language-Team: English (http://www.transifex.com/projects/p/heidisql/" "language/en/)\n" @@ -348,6 +348,16 @@ msgstr "" msgid "Set client time zone" msgstr "Set client time zone" +# Session > Advanced +msgid "Get full table status" +msgstr "Get full table status" + +# Session > Advanced +msgid "" +"Disable to speed up internal queries on databases with many InnoDB tables" +msgstr "" +"Disable to speed up internal queries on databases with many InnoDB tables" + #. connform..PageControlDetails..tabSSHtunnel..lblSSHLocalPort..Caption #: connections.dfm:424 msgid "Local port:" @@ -2577,14 +2587,6 @@ msgstr "" "ping heidisql.com at most once every month. This is used to count the used " "HeidiSQL and MySQL versions." -# Options > Miscellaneous -msgid "" -"Get full table status (disable to speed up on databases with many InnoDB " -"tables)" -msgstr "" -"Get full table status (disable to speed up on databases with many InnoDB " -"tables)" - #. optionsform..pagecontrolMain..tabMisc..chkAllowMultiInstances..Caption #: options.dfm:141 msgid "Allow multiple application instances" diff --git a/source/connections.dfm b/source/connections.dfm index be77ed08..8d3c8851 100644 --- a/source/connections.dfm +++ b/source/connections.dfm @@ -647,7 +647,7 @@ object connform: Tconnform end object chkLocalTimeZone: TCheckBox Left = 120 - Top = 130 + Top = 180 Width = 172 Height = 17 Hint = @@ -655,7 +655,7 @@ object connform: Tconnform ', for MySQL 4.1.3+' Anchors = [akLeft, akTop, akRight] Caption = 'Set client time zone' - TabOrder = 4 + TabOrder = 5 OnClick = Modification end object editStartupScript: TButtonedEdit @@ -667,11 +667,24 @@ object connform: Tconnform Images = MainForm.ImageListMain RightButton.ImageIndex = 51 RightButton.Visible = True - TabOrder = 5 + TabOrder = 4 OnChange = Modification OnDblClick = PickFile OnRightButtonClick = PickFile end + object chkFullTableStatus: TCheckBox + Left = 120 + Top = 203 + Width = 172 + Height = 17 + Hint = + 'Disable to speed up internal queries on databases with many Inno' + + 'DB tables' + Anchors = [akLeft, akTop, akRight] + Caption = 'Get full table status' + TabOrder = 6 + OnClick = Modification + end end object tabStatistics: TTabSheet Caption = 'Statistics' diff --git a/source/connections.pas b/source/connections.pas index fcbe3fc2..7b9913b2 100644 --- a/source/connections.pas +++ b/source/connections.pas @@ -92,6 +92,7 @@ type chkLocalTimeZone: TCheckBox; editStartupScript: TButtonedEdit; lblStartupScript: TLabel; + chkFullTableStatus: TCheckBox; procedure FormCreate(Sender: TObject); procedure btnOpenClick(Sender: TObject); procedure FormShow(Sender: TObject); @@ -313,6 +314,7 @@ begin Sess.NetType := TNetType(comboNetType.ItemIndex); Sess.Compressed := chkCompressed.Checked; Sess.LocalTimeZone := chkLocalTimeZone.Checked; + Sess.FullTableStatus := chkFullTableStatus.Checked; Sess.AllDatabasesStr := comboDatabases.Text; Sess.StartupScriptFilename := editStartupScript.Text; Sess.SSHPlinkExe := editSSHPlinkExe.Text; @@ -510,6 +512,7 @@ begin Result.StartupScriptFilename := editStartupScript.Text; Result.Compressed := chkCompressed.Checked; Result.LocalTimeZone := chkLocalTimeZone.Checked; + Result.FullTableStatus := chkFullTableStatus.Checked; end; end; @@ -746,6 +749,7 @@ begin updownPort.Position := Sess.Port; chkCompressed.Checked := Sess.Compressed; chkLocalTimeZone.Checked := Sess.LocalTimeZone; + chkFullTableStatus.Checked := Sess.FullTableStatus; comboDatabases.Text := Sess.AllDatabasesStr; editStartupScript.Text := Sess.StartupScriptFilename; editSSHPlinkExe.Text := Sess.SSHPlinkExe; @@ -948,6 +952,7 @@ begin or (Sess.Port <> updownPort.Position) or (Sess.Compressed <> chkCompressed.Checked) or (Sess.LocalTimeZone <> chkLocalTimeZone.Checked) + or (Sess.FullTableStatus <> chkFullTableStatus.Checked) or (Sess.NetType <> TNetType(comboNetType.ItemIndex)) or (Sess.StartupScriptFilename <> editStartupScript.Text) or (Sess.AllDatabasesStr <> comboDatabases.Text) diff --git a/source/dbconnection.pas b/source/dbconnection.pas index 90bfcc4a..c35a595b 100644 --- a/source/dbconnection.pas +++ b/source/dbconnection.pas @@ -176,7 +176,7 @@ type FSessionPath, FSSLPrivateKey, FSSLCertificate, FSSLCACertificate, FServerVersion, FSSHHost, FSSHUser, FSSHPassword, FSSHPlinkExe, FSSHPrivateKey: String; FPort, FSSHPort, FSSHLocalPort, FSSHTimeout, FCounter: Integer; - FLoginPrompt, FCompressed, FLocalTimeZone, FWindowsAuth, FWantSSL, FIsFolder: Boolean; + FLoginPrompt, FCompressed, FLocalTimeZone, FFullTableStatus, FWindowsAuth, FWantSSL, FIsFolder: Boolean; FSessionColor: TColor; FLastConnect: TDateTime; function GetImageIndex: Integer; @@ -215,6 +215,7 @@ type property StartupScriptFilename: String read FStartupScriptFilename write FStartupScriptFilename; property Compressed: Boolean read FCompressed write FCompressed; property LocalTimeZone: Boolean read FLocalTimeZone write FLocalTimeZone; + property FullTableStatus: Boolean read FFullTableStatus write FFullTableStatus; property SSHHost: String read FSSHHost write FSSHHost; property SSHPort: Integer read FSSHPort write FSSHPort; property SSHUser: String read FSSHUser write FSSHUser; @@ -705,6 +706,7 @@ begin FStartupScriptFilename := AppSettings.ReadString(asStartupScriptFilename); FCompressed := AppSettings.ReadBool(asCompressed); FLocalTimeZone := AppSettings.ReadBool(asLocalTimeZone); + FFullTableStatus := AppSettings.ReadBool(asFullTableStatus); FServerVersion := AppSettings.ReadString(asServerVersionFull); DummyDate := 0; FLastConnect := StrToDateTimeDef(AppSettings.ReadString(asLastConnect), DummyDate); @@ -736,6 +738,7 @@ begin AppSettings.WriteInt(asNetType, Integer(FNetType)); AppSettings.WriteBool(asCompressed, FCompressed); AppSettings.WriteBool(asLocalTimeZone, FLocalTimeZone); + AppSettings.WriteBool(asFullTableStatus, FFullTableStatus); AppSettings.WriteString(asDatabases, FAllDatabases); AppSettings.WriteString(asStartupScriptFilename, FStartupScriptFilename); AppSettings.WriteString(asSSHtunnelHost, FSSHHost); @@ -2977,7 +2980,7 @@ begin // Tables and views Results := nil; try - AppSettings.ResetPath; + AppSettings.SessionPath := Parameters.SessionPath; if AppSettings.ReadBool(asFullTableStatus) or (UpperCase(db) = 'INFORMATION_SCHEMA') then begin Results := GetResults('SHOW TABLE STATUS FROM '+QuoteIdent(db)); end else begin diff --git a/source/helpers.pas b/source/helpers.pas index 404a94e6..dd448397 100644 --- a/source/helpers.pas +++ b/source/helpers.pas @@ -3280,7 +3280,7 @@ begin InitSetting(asDonatedEmail, 'DonatedEmail', 0, False, ''); InitSetting(asFavoriteObjects, 'FavoriteObjects', 0, False, '', True); InitSetting(asFavoriteObjectsOnly, 'FavoriteObjectsOnly', 0, False); - InitSetting(asFullTableStatus, 'FullTableStatus', 0, True); + InitSetting(asFullTableStatus, 'FullTableStatus', 0, True, '', True); end; diff --git a/source/options.dfm b/source/options.dfm index eb8227af..733438aa 100644 --- a/source/options.dfm +++ b/source/options.dfm @@ -37,21 +37,21 @@ object optionsform: Toptionsform 353) object lblMySQLBinaries: TLabel Left = 8 - Top = 235 + Top = 219 Width = 152 Height = 13 Caption = 'MySQL command line programs:' end object lblLanguage: TLabel Left = 8 - Top = 289 + Top = 273 Width = 189 Height = 13 Caption = 'Application language (requires restart):' end object lblCustomSnippetsDirectory: TLabel Left = 8 - Top = 262 + Top = 246 Width = 129 Height = 13 Caption = 'Custom snippets directory:' @@ -153,7 +153,7 @@ object optionsform: Toptionsform end object chkColorBars: TCheckBox Left = 8 - Top = 206 + Top = 190 Width = 310 Height = 17 Caption = 'Display bars in various list columns' @@ -162,7 +162,7 @@ object optionsform: Toptionsform end object cboxColorBars: TColorBox Left = 272 - Top = 204 + Top = 188 Width = 319 Height = 22 Style = [cbStandardColors, cbExtendedColors, cbCustomColor, cbPrettyNames, cbCustomColors] @@ -172,7 +172,7 @@ object optionsform: Toptionsform end object editMySQLBinaries: TButtonedEdit Left = 272 - Top = 232 + Top = 216 Width = 319 Height = 21 Anchors = [akLeft, akTop, akRight] @@ -188,7 +188,7 @@ object optionsform: Toptionsform end object comboAppLanguage: TComboBox Left = 272 - Top = 286 + Top = 270 Width = 319 Height = 21 Style = csDropDownList @@ -198,7 +198,7 @@ object optionsform: Toptionsform end object editCustomSnippetsDirectory: TButtonedEdit Left = 272 - Top = 259 + Top = 243 Width = 319 Height = 21 Anchors = [akLeft, akTop, akRight] @@ -212,18 +212,6 @@ object optionsform: Toptionsform OnDblClick = editCustomSnippetsDirectoryRightButtonClick OnRightButtonClick = editCustomSnippetsDirectoryRightButtonClick end - object chkFullTableStatus: TCheckBox - Left = 8 - Top = 178 - Width = 583 - Height = 17 - Anchors = [akLeft, akTop, akRight] - Caption = - 'Get full table status (disable to speed up on databases with man' + - 'y InnoDB tables)' - TabOrder = 13 - OnClick = Modified - end end object tabLogging: TTabSheet Caption = 'Logging' diff --git a/source/options.pas b/source/options.pas index 0e6d4ee0..8cef6e56 100644 --- a/source/options.pas +++ b/source/options.pas @@ -127,7 +127,6 @@ type SynMemoSQLSample: TSynMemo; editCustomSnippetsDirectory: TButtonedEdit; lblCustomSnippetsDirectory: TLabel; - chkFullTableStatus: TCheckBox; procedure FormShow(Sender: TObject); procedure Modified(Sender: TObject); procedure Apply(Sender: TObject); @@ -257,7 +256,6 @@ begin AppSettings.WriteBool(asUpdatecheckBuilds, chkUpdatecheckBuilds.Checked); AppSettings.WriteInt(asUpdatecheckInterval, updownUpdatecheckInterval.Position); AppSettings.WriteBool(asDoUsageStatistics, chkDoStatistics.Checked); - AppSettings.WriteBool(asFullTableStatus, chkFullTableStatus.Checked); AppSettings.WriteBool(asDisplayBars, chkColorBars.Checked); AppSettings.WriteInt(asBarColor, cboxColorBars.Selected); AppSettings.WriteString(asMySQLBinaries, editMySQLBinaries.Text); @@ -435,7 +433,6 @@ begin updownUpdatecheckInterval.Position := AppSettings.ReadInt(asUpdatecheckInterval); chkUpdatecheckClick(Sender); chkDoStatistics.Checked := AppSettings.ReadBool(asDoUsageStatistics); - chkFullTableStatus.Checked := AppSettings.ReadBool(asFullTableStatus); chkColorBars.Checked := AppSettings.ReadBool(asDisplayBars); cboxColorBars.Selected := AppSettings.ReadInt(asBarColor); editMySQLBinaries.Text := AppSettings.ReadString(asMySQLBinaries);