Re: ProcessUtility_hook

Takahiro Itagaki <itagaki.takahiro@oss.ntt.co.jp>

From: Takahiro Itagaki <itagaki.takahiro@oss.ntt.co.jp>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Bruce Momjian <bruce@momjian.us>, Euler Taveira de Oliveira <euler@timbira.com>, pgsql-hackers@postgresql.org
Date: 2009-12-10T02:33:01Z
Lists: pgsql-hackers
Robert Haas <robertmhaas@gmail.com> wrote:

> Why does this patch #ifdef out the _PG_fini code in pg_stat_statements?

That's because _PG_fini is never called in current releases.
We could remove it completely, but I'd like to leave it for future
releases where _PG_fini callback is re-enabled.
Or, removing #ifdef (enabling _PG_fini function) is also harmless.

> Where you check for INSERT, UPDATE, and DELETE return codes in
> pgss_ProcessUtility, I think this deserves a comment explaining that
> these could occur as a result of EXECUTE.  It wasn't obvious to me,
> anyway.

Like this?
/*
 * Parse command tag to retrieve the number of affected rows.
 * COPY command returns COPY tag. EXECUTE command might return INSERT,
 * UPDATE, or DELETE tags, but we cannot retrieve the number of rows
 * for SELECT. We assume other commands always return 0 row.
 */

> It seems to me that the current hook placement does not address this complaint
> >> I don't see why the hook function should have the ability to
> >> editorialize on the behavior of everything about ProcessUtility
> >> *except* the read-only-xact check.

I moved the initialization code of completionTag as the comment,
but check_xact_readonly() should be called before the hook.
Am I missing something?

Regards,
---
Takahiro Itagaki
NTT Open Source Software Center