Re: Order of pg_stat_activity timestamp columns

Bruce Momjian <bruce@momjian.us>

From: Bruce Momjian <bruce@momjian.us>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Kevin Grittner <Kevin.Grittner@wicourts.gov>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2010-04-25T02:49:14Z
Lists: pgsql-hackers

Attachments

Tom Lane wrote:
> "Kevin Grittner" <Kevin.Grittner@wicourts.gov> writes:
> > Tom Lane <tgl@sss.pgh.pa.us> wrote:
> >> The current column ordering can be rationalized to some extent as
> >> 
> >> 1. identity info (user id, db id, application name)
> >> 2. current query info
> >> 3. session info (backend start time, client addr/port)
>  
> > OK.  I guess that trumps my idea, although it would sure be nice if
> > it were possible to swap 2 and 3 so that we could put the query text
> > at the end.
> 
> Well, the current ordering is definitely historical rather than
> designed, but I'm hesitant to do more than minor tweaking.  Even if we
> think/hope it won't break applications, people are probably used to
> seeing a particular ordering.
> 
> I'm not necessarily dead set against it though.  I guess if we were
> to do what you suggest, we'd end up with
> 
> identity:
>  datid            | oid                      | 
>  datname          | name                     | 
>  procpid          | integer                  | 
>  usesysid         | oid                      | 
>  usename          | name                     | 
>  application_name | text                     | 
> session:
>  client_addr      | inet                     | 
>  client_port      | integer                  | 
>  backend_start    | timestamp with time zone | 
> transaction:
>  xact_start       | timestamp with time zone | 
> query:
>  query_start      | timestamp with time zone | 
>  waiting          | boolean                  | 
>  current_query    | text                     | 
> 
> or possibly that plus relocate procpid somewhere else.  Anyone think
> this is sufficiently better to justify possible confusion?

I implemented Tom's suggested ordering above:

	test=> SELECT * FROM pg_stat_activity;
	-[ RECORD 1 ]----+--------------------------------
	datid            | 16384
	datname          | test
	procpid          | 22216
	usesysid         | 10
	usename          | postgres
	application_name | psql
	client_addr      |
	client_port      | -1
	backend_start    | 2010-04-24 22:35:21.683308-04
	xact_start       | 2010-04-24 22:47:19.53821-04
	query_start      | 2010-04-24 22:47:19.53821-04
	waiting          | f
	current_query    | SELECT * FROM pg_stat_activity;

Patch attached.  It will require a catversion bump too.

-- 
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com