On Mon, 2008-07-21 at 11:45 -0400, Tom Lane wrote:
> [EMAIL PROTECTED] (Alvaro Herrera) writes:
> > Publish more openly the fact that autovacuum is working for wraparound
> > protection.
> 
> Now that I look more closely, there are two things I don't like about
> this patch:
> 
> * it fails to ratchet up MAX_AUTOVAC_ACTIV_LEN to allow for the
> additional text
> 
> * it produces something like
> 
>       autovacuum: VACUUM (to prevent wraparound) foo.bar
> 
> I had thought we were generating
> 
>       autovacuum: VACUUM foo.bar (to prevent wraparound)
> 
> which seems both easier to read and less likely to break any
> existing code that might be trying to interpret pg_stat_activity
> entries.

Ratcheted. Will do 8.3 change once approved.

-- 
 Simon Riggs           www.2ndQuadrant.com
 PostgreSQL Training, Services and Support
Index: src/backend/postmaster/autovacuum.c
===================================================================
RCS file: /home/sriggs/pg/REPOSITORY/pgsql/src/backend/postmaster/autovacuum.c,v
retrieving revision 1.82
diff -c -r1.82 autovacuum.c
*** src/backend/postmaster/autovacuum.c	21 Jul 2008 15:27:02 -0000	1.82
--- src/backend/postmaster/autovacuum.c	22 Jul 2008 13:16:54 -0000
***************
*** 2650,2665 ****
  static void
  autovac_report_activity(autovac_table *tab)
  {
! #define MAX_AUTOVAC_ACTIV_LEN (NAMEDATALEN * 2 + 32)
  	char	activity[MAX_AUTOVAC_ACTIV_LEN];
  	int		len;
  
  	/* Report the command and possible options */
  	if (tab->at_dovacuum)
  		snprintf(activity, MAX_AUTOVAC_ACTIV_LEN,
! 				 "autovacuum: VACUUM%s%s",
! 				 tab->at_doanalyze ? " ANALYZE" : "",
! 				 tab->at_wraparound ? " (to prevent wraparound)" : "");
  	else
  		snprintf(activity, MAX_AUTOVAC_ACTIV_LEN,
  				 "autovacuum: ANALYZE");
--- 2650,2664 ----
  static void
  autovac_report_activity(autovac_table *tab)
  {
! #define MAX_AUTOVAC_ACTIV_LEN (NAMEDATALEN * 2 + 56)
  	char	activity[MAX_AUTOVAC_ACTIV_LEN];
  	int		len;
  
  	/* Report the command and possible options */
  	if (tab->at_dovacuum)
  		snprintf(activity, MAX_AUTOVAC_ACTIV_LEN,
! 				 "autovacuum: VACUUM%s",
! 				 tab->at_doanalyze ? " ANALYZE" : "");
  	else
  		snprintf(activity, MAX_AUTOVAC_ACTIV_LEN,
  				 "autovacuum: ANALYZE");
***************
*** 2670,2676 ****
  	len = strlen(activity);
  
  	snprintf(activity + len, MAX_AUTOVAC_ACTIV_LEN - len,
! 			 " %s.%s", tab->at_nspname, tab->at_relname);
  
  	/* Set statement_timestamp() to current time for pg_stat_activity */
  	SetCurrentStatementStartTimestamp();
--- 2669,2676 ----
  	len = strlen(activity);
  
  	snprintf(activity + len, MAX_AUTOVAC_ACTIV_LEN - len,
! 			 " %s.%s%s", tab->at_nspname, tab->at_relname,
! 				 tab->at_wraparound ? " (to prevent wraparound)" : "");
  
  	/* Set statement_timestamp() to current time for pg_stat_activity */
  	SetCurrentStatementStartTimestamp();
-- 
Sent via pgsql-committers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

Reply via email to