Re: Add support for logging the current role

Robert Haas <robertmhaas@gmail.com>

From: Robert Haas <robertmhaas@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Stephen Frost <sfrost@snowman.net>, Andrew Dunstan <andrew@dunslane.net>, Itagaki Takahiro <itagaki.takahiro@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2011-02-18T13:32:35Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Add support for an application_name parameter, which is displayed in

  2. Make CSV column ordering a bit more logical.

  3. Extend the format of CSV logs to include the additional information supplied

  4. Add virtual transaction IDs to CSVLOG output, so that messages coming from

  5. Provide for logfiles in machine readable CSV format. In consequence, rename

On Thu, Feb 17, 2011 at 10:40 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
>> On Thu, Feb 17, 2011 at 4:53 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>>> In short, add a bit of overhead at SetUserId time in order to make this
>>> cheap (and accurate) in elog.c.
>
>> As Stephen says, I think this is utterly impractical; those routines
>> can't ever throw any kind of error.
>
> Why would they need to throw an error?  It'd be on the caller's head to
> supply the role name along with OID.  We can keep the name in a static
> buffer of size NAMEDATALEN, so don't tell me about palloc failures
> either.

OK, but there are not a small number of callers of that function, and
they don't necessarily have the correct info at hand.  For example,
you'd need to add prevUserAsText to TransactionStateData, which
doesn't seem appealing.

> The logging design as it stands seems to me to be a Rube Goldberg device
> that is probably going to have corner-case bugs quite aside from its
> possible performance issues.

I think you're overreacting.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company