This patch fixes an obvious bug in the "should I print the duration of
this query?" logic in postgres.c

I also don't particularly like the format of the log message (for one
thing, the "duration_statement" prefix in the log message shouldn't
include an underscore, it's not a variable or anything -- and the case
can be made that if we printed the duration because log_duration is set,
we don't need to print it again if the duration of the query exceeded
log_min_duration_statement), but I haven't changed it.

-Neil

Index: src/backend/tcop/postgres.c
===================================================================
RCS file: /var/lib/cvs/pgsql-server/src/backend/tcop/postgres.c,v
retrieving revision 1.363
diff -c -r1.363 postgres.c
*** src/backend/tcop/postgres.c	14 Sep 2003 00:03:32 -0000	1.363
--- src/backend/tcop/postgres.c	22 Sep 2003 16:14:37 -0000
***************
*** 955,964 ****
  		usecs = (long) (stop_t.tv_sec - start_t.tv_sec) * 1000000 + (long) (stop_t.tv_usec - start_t.tv_usec);
  
  		/*
! 		 * Output a duration_query to the log if the query has exceeded
  		 * the min duration.
  		 */
! 		if (usecs >= save_log_min_duration_statement * 1000)
  			ereport(LOG,
  					(errmsg("duration_statement: %ld.%06ld %s",
  							(long) (stop_t.tv_sec - start_t.tv_sec),
--- 955,965 ----
  		usecs = (long) (stop_t.tv_sec - start_t.tv_sec) * 1000000 + (long) (stop_t.tv_usec - start_t.tv_usec);
  
  		/*
! 		 * Output a duration_statement to the log if the query has exceeded
  		 * the min duration.
  		 */
! 		if (save_log_min_duration_statement > 0 &&
! 			usecs >= save_log_min_duration_statement * 1000)
  			ereport(LOG,
  					(errmsg("duration_statement: %ld.%06ld %s",
  							(long) (stop_t.tv_sec - start_t.tv_sec),
---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Reply via email to