Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1TxL9p-0000OI-CF for pgsql-hackers@arkaria.postgresql.org; Mon, 21 Jan 2013 17:27:41 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.72) (envelope-from ) id 1TxL9o-0002sM-76 for pgsql-hackers@arkaria.postgresql.org; Mon, 21 Jan 2013 17:27:40 +0000 Received: from magus.postgresql.org ([87.238.57.229]) by malur.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1TxL9m-0002sH-Tb for pgsql-hackers@postgresql.org; Mon, 21 Jan 2013 17:27:39 +0000 Received: from acidenitrix.villemain.org ([91.121.90.165]) by magus.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1TxL9h-0003do-4j for pgsql-hackers@postgresql.org; Mon, 21 Jan 2013 17:27:38 +0000 Received: from [89.157.243.170] (helo=Dimitris-MacBook-Air.local) by acidenitrix.villemain.org with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1TxL9e-0004iC-RJ; Mon, 21 Jan 2013 18:27:31 +0100 From: Dimitri Fontaine To: Robert Haas Cc: Alvaro Herrera , PostgreSQL Hackers Subject: Re: Event Triggers: adding information Organization: 2ndQuadrant References: <20130104205251.GB9191@alvh.no-ip.org> <20130109165829.GB4490@alvh.no-ip.org> User-Mail-Address: dimitri@2ndQuadrant.fr Date: Mon, 21 Jan 2013 18:27:12 +0100 In-Reply-To: (Robert Haas's message of "Thu, 17 Jan 2013 15:56:24 -0500") Message-ID: User-Agent: Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.2 (darwin) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Pg-Spam-Score: -1.9 (-) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Robert Haas writes: >> Ok. Will prepare a non controversial patch for ddl_command_end. > > Thanks. I will make a forceful effort to review that in a timely > fashion when it's posted. Please find it attached to this email. COLUMNS=3D72 git diff --stat doc/src/sgml/event-trigger.sgml | 93 ++++++- src/backend/commands/event_trigger.c | 122 +++++++-- src/backend/tcop/utility.c | 273 ++++++++++--------- src/backend/utils/cache/evtcache.c | 2 + src/include/commands/event_trigger.h | 1 + src/include/utils/evtcache.h | 3 +- src/test/regress/expected/event_trigger.out | 6 +- src/test/regress/sql/event_trigger.sql | 4 + 8 files changed, 359 insertions(+), 145 deletions(-) What is the next part you want to see separated away? We have a choice of: - Context exposing and filtering My preference for that point is to include it and limit it to event triggers written in C, leaving the door open to add new events in the future, and allowing existing consumers of that framework see through implementation details should they need it. It's better than just a ProcessUtility_hook because you can see it in \dy, decide to disable it with ALTER EVENT TRIGGER (e.g. in a transcation to avoid recursive calling into itself), and it won't run in single user mode even when in shared_preload_libraries. Another idea is to protect it with a GUC. Yet another idea is to add a new property in the CREATE EVENT TRIGGER command so that user can request explicitely to have that and know the feature will break at next release and all the ones after that: CREATE EVENT TRIGGER foo ON ddl_command_start WHEN show_internals in ('Yes I know what I''m doing', 'Thanks') EXECUTE PROCEDURE =E2=80=A6(); That particular phrasing and option choice might be revisited before commit, though, I'm not wedded to it. - Additional Information to PL/pgSQL We're talking about=C2=A0:=20 =20=20=20=20 - operation (CREATE, ALTER, DROP) - object type (TABLE, FUNCTION, TEXT SEARCH DICTIONARY, =E2=80=A6) - object OID (when there's a single object target) - object shema name (when there's a single object target) - object name (when there's a single object target) - Additional Information to PL/* It's separated away because you did opt-out from reviewing that part, so I guess we will continue to make that a separate patch, and it will still need to happen. I've been said that I shouldn't be on the hook to provide for that, and I wonder, but anyway I did already implement it in a previous version so I can do it again as soon as we know what we expose. - Command String Normalisation I removed it already from the main patch because we needed to talk about it more, and it's kind of a big part in itself. Meanwhile it seems to me that an agreement has been reached and that I will be able to follow the consensus and resume working on that part. - ddl_event_trace Now is the time to kill it (for 9.3) or allow it in. It means another cache lookup at DDL Event time (so 2 cache lookups per DDL in 9.3); and allow users who just want to have the information not to have to care about when it is available. - Non DDL related Events Extra bonus items, a table_rewrite event. Unlikely for 9.3 at best, unless someone else wants to have at it, maybe? Regards, --=20 Dimitri Fontaine http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=ddl_command_end.v0.patch.gz Content-Transfer-Encoding: base64 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 --=-=-= Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers --=-=-=--