From 5b99fd223762b5027e49b446522fa6b909a40037 Mon Sep 17 00:00:00 2001 From: levinsv <44033647+levinsv@users.noreply.github.com> Date: Wed, 9 Jan 2019 23:28:37 +0500 Subject: [PATCH] fix correct time plan labels --- Release_(3.0)/pgAdmin3.exe | Bin 10428928 -> 10428928 bytes ctl/ctlSQLGrid.cpp | 4 ++-- ctl/ctlSQLResult.cpp | 32 +++++++++++++++++++++++++------- include/ctl/ctlSQLResult.h | 5 +++-- 4 files changed, 30 insertions(+), 11 deletions(-) diff --git a/Release_(3.0)/pgAdmin3.exe b/Release_(3.0)/pgAdmin3.exe index 0b01b05cd13ebcfdb7c7e59ae140905cbfcb7edc..1756d15657222ff1fb8e40dde964af05d83792e5 100644 GIT binary patch delta 6489 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 pY-~ncVq9EycfJL*wB7&y|DS*OeEH3tnRDjM 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 B?*jk; diff --git a/ctl/ctlSQLGrid.cpp b/ctl/ctlSQLGrid.cpp index 4e23832..098288f 100644 --- a/ctl/ctlSQLGrid.cpp +++ b/ctl/ctlSQLGrid.cpp @@ -590,7 +590,7 @@ int recurse(ctlSQLGrid *g, int pos,int row, double &transfer) { // посчитаем время работы узла double m=1; // -> Nested Loop (cost=205.13..273.44 rows=4 width=188) (actual time=13.157..13.157 rows=0 loops=1) - wxRegEx foundstr(wxT("actual time=.*?\\.\\.([0-9.]+).*?loops=([0-9]+)"),wxRE_ADVANCED); + wxRegEx foundstr(wxT("actual time=.*?\\.\\.([0-9.]+).*?loops=([0-9]+)\\)"),wxRE_ADVANCED); if (foundstr.Matches(text)) { wxString v=foundstr.GetMatch(text,1); v.ToCDouble(&lastnode); @@ -621,7 +621,7 @@ int recurse(ctlSQLGrid *g, int pos,int row, double &transfer) { // //leveltime=leveltime+transfer; //GroupRows *u=g->getgroup(); - int tt=lastnode-transfer; + double tt=lastnode-transfer; text = g->GetCellValue(row-1, 0); if ((text.Find("Append")>0) ||(text.Find("Gather")>0)) diff --git a/ctl/ctlSQLResult.cpp b/ctl/ctlSQLResult.cpp index 157b289..e122faf 100644 --- a/ctl/ctlSQLResult.cpp +++ b/ctl/ctlSQLResult.cpp @@ -94,6 +94,8 @@ bool ctlSQLResult::ToFile(frmExport *frm) return false; } + + bool ctlSQLResult::IsColText(int col) { switch (colTypClasses.Item(col)) @@ -124,7 +126,6 @@ int ctlSQLResult::Execute(const wxString &query, int resultToRetrieve, wxWindow colNames.Empty(); colTypes.Empty(); colTypClasses.Empty(); - thread = new pgQueryThread(conn, query, resultToRetrieve, caller, eventId, data); if (thread->Create() != wxTHREAD_NO_ERROR) @@ -202,17 +203,19 @@ void ctlSQLResult::DisplayData(bool single) } } + table->isplan=false; + wxString c=thread->DataSet()->ColName(0); + if (c==wxT("QUERY PLAN")) { + // + table->isplan=true; + FullArrayCollapseRowsPlan(); + }; + if (single) { colNames.Add(thread->DataSet()->ColName(0)); colTypes.Add(wxT("")); colTypClasses.Add(0L); - wxString c=thread->DataSet()->ColName(0); - if (c==wxT("QUERY PLAN")) { - // - isplan=true; - FullArrayCollapseRowsPlan(); - } else isplan=false; AutoSizeColumn(0, false, false); } @@ -473,6 +476,21 @@ int sqlResultTable::GetNumberRows() return 0; } +wxString sqlResultTable::GetRowLabelValue( int row ) +{ + if ( isplan ) + { + // using default label + // + return wxGridStringTable::GetRowLabelValue(row); + } + else + { + wxString s; + s << row + 1; + return s; + } +} wxString sqlResultTable::GetColLabelValue(int col) { diff --git a/include/ctl/ctlSQLResult.h b/include/ctl/ctlSQLResult.h index 08c42b5..6535d37 100644 --- a/include/ctl/ctlSQLResult.h +++ b/include/ctl/ctlSQLResult.h @@ -77,7 +77,6 @@ private: pgQueryThread *thread; pgConn *conn; bool rowcountSuppressed; - bool isplan; }; class sqlResultTable : public wxGridStringTable//wxGridTableBase @@ -85,8 +84,10 @@ class sqlResultTable : public wxGridStringTable//wxGridTableBase public: sqlResultTable(); wxString GetValue(int row, int col); + wxString GetRowLabelValue( int row ) ; int GetNumberRows(); int GetNumberCols(); + bool isplan; bool IsEmptyCell(int row, int col) { return false; @@ -108,7 +109,7 @@ public: { return true; } - + private: pgQueryThread *thread; };