SVN Commit by andreas: r4278 - in trunk/pgadmin3: . src/frm src/schema

Поиск
Список
Период
Сортировка
От svn@pgadmin.org
Тема SVN Commit by andreas: r4278 - in trunk/pgadmin3: . src/frm src/schema
Дата
Msg-id 200506032005.j53K5sSR008674@developer.pgadmin.org
обсуждение исходный текст
Список pgadmin-hackers
Author: andreas
Date: 2005-06-03 21:05:54 +0100 (Fri, 03 Jun 2005)
New Revision: 4278

Modified:
   trunk/pgadmin3/CHANGELOG.txt
   trunk/pgadmin3/src/frm/frmStatus.cpp
   trunk/pgadmin3/src/schema/pgServer.cpp
Log:
Support for pgsql 8.1 pg_stat_activity

Modified: trunk/pgadmin3/CHANGELOG.txt
===================================================================
--- trunk/pgadmin3/CHANGELOG.txt    2005-06-03 19:21:18 UTC (rev 4277)
+++ trunk/pgadmin3/CHANGELOG.txt    2005-06-03 20:05:54 UTC (rev 4278)
@@ -17,6 +17,7 @@
 </ul>
 <br>
 <ul>
+    <li>2005-06-03 AP        Support for pgsql 8.1 pg_stat_activity
     <li>2005-06-03 AP        Support for pgsql 8.1 instrumentation
     <li>2005-06-01 AP        Support for Procedures aka functions with out parameters
     <li>2005-06-01 AP        Support for EDB8.0

Modified: trunk/pgadmin3/src/frm/frmStatus.cpp
===================================================================
--- trunk/pgadmin3/src/frm/frmStatus.cpp    2005-06-03 19:21:18 UTC (rev 4277)
+++ trunk/pgadmin3/src/frm/frmStatus.cpp    2005-06-03 20:05:54 UTC (rev 4278)
@@ -104,13 +104,14 @@
     statusList->AddColumn(_("PID"), 35);
     statusList->AddColumn(_("Database"), 70);
     statusList->AddColumn(_("User"), 70);
-    if (connection->BackendMinimumVersion(7, 4)) {
+    if (connection->BackendMinimumVersion(8, 1))
+        statusList->AddColumn(_("Client"), 70);
+
+    if (connection->BackendMinimumVersion(7, 4))
         statusList->AddColumn(_("Start"), 50);
-        statusList->AddColumn(_("Query"), 500);
-    } else {
-        statusList->AddColumn(_("Query"), 500);
-    }

+    statusList->AddColumn(_("Query"), 500);
+
     lockList->AddColumn(_("PID"), 50);
     lockList->AddColumn(_("Database"), 50);
     lockList->AddColumn(_("Relation"), 50);
@@ -118,13 +119,11 @@
     lockList->AddColumn(_("TX"), 50);
     lockList->AddColumn(_("Mode"), 50);
     lockList->AddColumn(_("Granted"), 50);
-    if (connection->BackendMinimumVersion(7, 4)) {
+    if (connection->BackendMinimumVersion(7, 4))
         lockList->AddColumn(_("Start"), 50);
-        lockList->AddColumn(_("Query"), 500);
-    } else {
-        lockList->AddColumn(_("Query"), 500);
-    }

+    lockList->AddColumn(_("Query"), 500);
+
     if (connection->BackendMinimumVersion(8, 0) &&
          connection->HasFeature(FEATURE_FILEREAD))
     {
@@ -279,23 +278,28 @@
                     {
                         statusList->InsertItem(row, NumToStr(pid), 0);
                     }
-                    statusList->SetItem(row, 1, dataSet1->GetVal(wxT("datname")));
-                    statusList->SetItem(row, 2, dataSet1->GetVal(wxT("usename")));
                     wxString qry=dataSet1->GetVal(wxT("current_query"));

-                    if (connection->BackendMinimumVersion(7, 4))
+                    int colpos=1;
+                    statusList->SetItem(row, colpos++, dataSet1->GetVal(wxT("datname")));
+                    statusList->SetItem(row, colpos++, dataSet1->GetVal(wxT("usename")));
+
+                    if (connection->BackendMinimumVersion(8, 1))
+                    {
+                        wxString client=dataSet1->GetVal(wxT("client_addr")) + wxT(":") +
dataSet1->GetVal(wxT("client_port"));
+                        if (client == wxT(":-1"))
+                            client = _("local pipe");
+                        statusList->SetItem(row, colpos++, client);
+                    }
+                    if (connection->BackendMinimumVersion(7, 4))
                     {
-                        if (qry.IsEmpty()) {
-                            statusList->SetItem(row, 3, wxEmptyString);
-                            statusList->SetItem(row, 4, wxEmptyString);
-                        } else {
-                            statusList->SetItem(row, 3, dataSet1->GetVal(wxT("query_start")));
-                            statusList->SetItem(row, 4, qry.Left(250));
-                        }
-                    } else {
-                        statusList->SetItem(row, 3, qry.Left(250));
+                        if (qry.IsEmpty() || qry == wxT("<IDLE>"))
+                            statusList->SetItem(row, colpos++, wxEmptyString);
+                        else
+                            statusList->SetItem(row, colpos++, dataSet1->GetVal(wxT("query_start")));
                     }

+                    statusList->SetItem(row, colpos, qry.Left(250));
                     row++;
                 }
                 dataSet1->MoveNext();
@@ -372,31 +376,31 @@
                     {
                         lockList->InsertItem(row, NumToStr(pid), 0);
                     }
-                    lockList->SetItem(row, 1, dataSet2->GetVal(wxT("dbname")));
-                    lockList->SetItem(row, 2, dataSet2->GetVal(wxT("class")));
-                    lockList->SetItem(row, 3, dataSet2->GetVal(wxT("user")));
-                    lockList->SetItem(row, 4, dataSet2->GetVal(wxT("transaction")));
-                    lockList->SetItem(row, 5, dataSet2->GetVal(wxT("mode")));
-                    if (dataSet2->GetVal(wxT("granted")) == wxT("t")) {
-                        lockList->SetItem(row, 6, __("Yes"));
-                    } else {
-                        lockList->SetItem(row, 6, __("No"));
-                    }
+
+                    int colpos=1;
+                    lockList->SetItem(row, colpos++, dataSet2->GetVal(wxT("dbname")));
+                    lockList->SetItem(row, colpos++, dataSet2->GetVal(wxT("class")));
+                    lockList->SetItem(row, colpos++, dataSet2->GetVal(wxT("user")));
+                    lockList->SetItem(row, colpos++, dataSet2->GetVal(wxT("transaction")));
+                    lockList->SetItem(row, colpos++, dataSet2->GetVal(wxT("mode")));
+
+                    if (dataSet2->GetVal(wxT("granted")) == wxT("t"))
+                        lockList->SetItem(row, colpos++, _("Yes"));
+                    else
+                        lockList->SetItem(row, colpos++, _("No"));
+
                     wxString qry=dataSet2->GetVal(wxT("current_query"));

                     if (connection->BackendMinimumVersion(7, 4))
                     {
-                        if (qry.IsEmpty()) {
-                            lockList->SetItem(row, 7, wxEmptyString);
-                            lockList->SetItem(row, 8, wxEmptyString);
-                        } else {
-                            lockList->SetItem(row, 7, dataSet2->GetVal(wxT("query_start")));
-                            lockList->SetItem(row, 8, qry.Left(250));
-                        }
-                    } else {
-                        lockList->SetItem(row, 7, qry.Left(250));
+                        if (qry.IsEmpty() || qry == wxT("<IDLE>"))
+                            lockList->SetItem(row, colpos++, wxEmptyString);
+                        else
+                            lockList->SetItem(row, colpos++, dataSet2->GetVal(wxT("query_start")));
                     }
+                    lockList->SetItem(row, colpos++, qry.Left(250));

+
                     row++;
                 }
                 dataSet2->MoveNext();

Modified: trunk/pgadmin3/src/schema/pgServer.cpp
===================================================================
--- trunk/pgadmin3/src/schema/pgServer.cpp    2005-06-03 19:21:18 UTC (rev 4277)
+++ trunk/pgadmin3/src/schema/pgServer.cpp    2005-06-03 20:05:54 UTC (rev 4278)
@@ -689,18 +689,33 @@
         statistics->AddColumn(wxT("PID"), 35);
         statistics->AddColumn(_("User"), 70);
         statistics->AddColumn(_("Database"), 70);
+        if (GetConnection()->BackendMinimumVersion(8, 1))
+        {
+            statistics->AddColumn(_("Backend start"), 70);
+            statistics->AddColumn(_("Client"), 70);
+        }
         statistics->AddColumn(_("Current Query"), 300);

-        pgSet *stats = ExecuteSet(wxT("SELECT datname, procpid, usename, current_query FROM pg_stat_activity"));
+        pgSet *stats = ExecuteSet(wxT("SELECT * FROM pg_stat_activity"));
         if (stats)
         {
             int pos=0;
             while (!stats->Eof())
             {
                 statistics->InsertItem(pos, stats->GetVal(wxT("procpid")), 0);
-                statistics->SetItem(pos, 1, stats->GetVal(wxT("usename")));
-                statistics->SetItem(pos, 2, stats->GetVal(wxT("datname")));
-                statistics->SetItem(pos, 3, stats->GetVal(wxT("current_query")));
+                int colpos=1;
+                statistics->SetItem(pos, colpos++, stats->GetVal(wxT("usename")));
+                statistics->SetItem(pos, colpos++, stats->GetVal(wxT("datname")));
+                if (GetConnection()->BackendMinimumVersion(8, 1))
+                {
+                    statistics->SetItem(pos, colpos++, stats->GetVal(wxT("backend_start")));
+                    wxString client=stats->GetVal(wxT("client_addr")) + wxT(":") + stats->GetVal(wxT("client_port"));
+                    if (client == wxT(":-1"))
+                        client = _("local pipe");
+                    statistics->SetItem(pos, colpos++, client);
+                }
+                statistics->SetItem(pos, colpos++, stats->GetVal(wxT("current_query")));
+
                 stats->MoveNext();
                 pos++;
             }


В списке pgadmin-hackers по дате отправления:

Предыдущее
От: svn@pgadmin.org
Дата:
Сообщение: SVN Commit by andreas: r4277 - in trunk/pgadmin3: . src/db src/frm
Следующее
От: Raphaël Enrici
Дата:
Сообщение: Re: 1.2.2 Uploaded