]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix some failures to initialize table entries induced by recent autovacuum
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 24 Jul 2005 00:33:28 +0000 (00:33 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 24 Jul 2005 00:33:28 +0000 (00:33 +0000)
integration.  Not clear this explains recent stats problems, but it's
definitely wrong.

src/backend/postmaster/pgstat.c

index d6096fd2b8fba8ae013eb3cb312a93b39e37d063..e2cc3508b8342c3a5fc9637315956e6d9ec6d762 100644 (file)
@@ -13,7 +13,7 @@
  *
  *     Copyright (c) 2001-2005, PostgreSQL Global Development Group
  *
- *     $PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.100 2005/07/14 05:13:40 tgl Exp $
+ *     $PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.101 2005/07/24 00:33:28 tgl Exp $
  * ----------
  */
 #include "postgres.h"
@@ -2776,13 +2776,13 @@ pgstat_recv_vacuum(PgStat_MsgVacuum *msg, int len)
         */
        if (!found)
        {
-               tabentry->tableid = msg->m_tableoid;
+               tabentry->numscans = 0;
 
                tabentry->tuples_returned = 0;
                tabentry->tuples_fetched = 0;
-               tabentry->tuples_inserted = msg->m_tuples;
-               tabentry->tuples_deleted = 0;
+               tabentry->tuples_inserted = 0;
                tabentry->tuples_updated = 0;
+               tabentry->tuples_deleted = 0;
 
                tabentry->n_live_tuples = msg->m_tuples;
                tabentry->n_dead_tuples = 0;
@@ -2794,11 +2794,13 @@ pgstat_recv_vacuum(PgStat_MsgVacuum *msg, int len)
 
                tabentry->blocks_fetched = 0;
                tabentry->blocks_hit = 0;
+
+               tabentry->destroy = 0;
        }
        else
        {
-               tabentry->n_dead_tuples = 0;
                tabentry->n_live_tuples = msg->m_tuples;
+               tabentry->n_dead_tuples = 0;
                if (msg->m_analyze)
                        tabentry->last_anl_tuples = msg->m_tuples;
        }
@@ -2827,13 +2829,13 @@ pgstat_recv_analyze(PgStat_MsgAnalyze *msg, int len)
         */
        if (!found)
        {
-               tabentry->tableid = msg->m_tableoid;
+               tabentry->numscans = 0;
 
                tabentry->tuples_returned = 0;
                tabentry->tuples_fetched = 0;
                tabentry->tuples_inserted = 0;
-               tabentry->tuples_deleted = 0;
                tabentry->tuples_updated = 0;
+               tabentry->tuples_deleted = 0;
 
                tabentry->n_live_tuples = msg->m_live_tuples;
                tabentry->n_dead_tuples = msg->m_dead_tuples;
@@ -2841,6 +2843,8 @@ pgstat_recv_analyze(PgStat_MsgAnalyze *msg, int len)
 
                tabentry->blocks_fetched = 0;
                tabentry->blocks_hit = 0;
+
+               tabentry->destroy = 0;
        }
        else
        {
@@ -2931,12 +2935,14 @@ pgstat_recv_tabstat(PgStat_MsgTabstat *msg, int len)
                        tabentry->tuples_inserted = tabmsg[i].t_tuples_inserted;
                        tabentry->tuples_updated = tabmsg[i].t_tuples_updated;
                        tabentry->tuples_deleted = tabmsg[i].t_tuples_deleted;
-                       tabentry->blocks_fetched = tabmsg[i].t_blocks_fetched;
-                       tabentry->blocks_hit = tabmsg[i].t_blocks_hit;
                        
                        tabentry->n_live_tuples = tabmsg[i].t_tuples_inserted;
                        tabentry->n_dead_tuples = tabmsg[i].t_tuples_updated +
                                tabmsg[i].t_tuples_deleted;
+                       tabentry->last_anl_tuples = 0;
+
+                       tabentry->blocks_fetched = tabmsg[i].t_blocks_fetched;
+                       tabentry->blocks_hit = tabmsg[i].t_blocks_hit;
 
                        tabentry->destroy = 0;
                }
@@ -2951,12 +2957,13 @@ pgstat_recv_tabstat(PgStat_MsgTabstat *msg, int len)
                        tabentry->tuples_inserted += tabmsg[i].t_tuples_inserted;
                        tabentry->tuples_updated += tabmsg[i].t_tuples_updated;
                        tabentry->tuples_deleted += tabmsg[i].t_tuples_deleted;
-                       tabentry->blocks_fetched += tabmsg[i].t_blocks_fetched;
-                       tabentry->blocks_hit += tabmsg[i].t_blocks_hit;
 
                        tabentry->n_live_tuples += tabmsg[i].t_tuples_inserted;
                        tabentry->n_dead_tuples += tabmsg[i].t_tuples_updated +
                                tabmsg[i].t_tuples_deleted;
+
+                       tabentry->blocks_fetched += tabmsg[i].t_blocks_fetched;
+                       tabentry->blocks_hit += tabmsg[i].t_blocks_hit;
                }
 
                /*