Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1TwCbU-0006az-Bt for pgsql-hackers@arkaria.postgresql.org; Fri, 18 Jan 2013 14:07:32 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.72) (envelope-from ) id 1TwCbT-0002FL-6J for pgsql-hackers@arkaria.postgresql.org; Fri, 18 Jan 2013 14:07:31 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1TwCbS-0002FG-3i for pgsql-hackers@postgresql.org; Fri, 18 Jan 2013 14:07:30 +0000 Received: from mail.anarazel.de ([217.115.131.40]) by magus.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1TwCbO-0002An-DM for pgsql-hackers@postgresql.org; Fri, 18 Jan 2013 14:07:29 +0000 Received: from intern.anarazel.de (p5DDC6916.dip.t-dialin.net [93.220.105.22]) (Authenticated sender: andres@anarazel.de) by mail.anarazel.de (Postfix) with ESMTPSA id 3CCB54E8001; Fri, 18 Jan 2013 15:07:24 +0100 (CET) Date: Fri, 18 Jan 2013 15:07:21 +0100 From: Andres Freund To: Robert Haas Cc: Dimitri Fontaine , Tom Lane , Simon Riggs , Alvaro Herrera , PostgreSQL Hackers Subject: Re: Event Triggers: adding information Message-ID: <20130118140721.GA29501@alap2.anarazel.de> References: <16675.1358454278@sss.pgh.pa.us> <18941.1358462151@sss.pgh.pa.us> <20130118013334.GE3074@awork2.anarazel.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Pg-Spam-Score: -2.6 (--) 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 On 2013-01-17 22:39:18 -0500, Robert Haas wrote: > On Thu, Jan 17, 2013 at 8:33 PM, Andres Freund wrote: > > I have no problem requiring C code to use the even data, be it via hooks > > or via C functions called from event triggers. The problem I have with > > putting in some hooks is that I doubt that you can find sensible spots > > with enough information to actually recreate the DDL for a remote system > > without doing most of the work for command triggers. > > It should be noted that the point of KaiGai's work over the last three > years has been to solve exactly this problem. Well, KaiGai wants to > check security rather than do replication, but he wants to be able > grovel through the entire node tree and make security decisions based > on stuff core PG doesn't care about, so in effect the requirements are > identical. Calling the facility "event triggers" rather than "object > access hooks" doesn't make the underlying problem any easier to solve. > I actually believe that the object access hook stuff is getting > pretty close to a usable solution if you don't mind coding in C, but > I've had trouble convincing anyone else of that. > > I find it a shame that it hasn't been taken more seriously, because it > really does solve the same problem. sepgsql, for example, has no > trouble at all checking permissions for dropped objects. You can't > call procedural code from the spot where we've got that hook, but you > sure can call C code, with the usual contract that if it breaks you > get to keep both pieces. The CREATE stuff works fine too. Support > for ALTER is not all there yet, but that's because it's a hard > problem. I don't have a problem reusing the object access infrastructure at all. I just don't think its providing even remotely enough. You have (co-)written that stuff, so you probably know more than I do, but could you explain to me how it could be reused to replicate a CREATE TABLE? Problems I see: - afaics for CREATE TABLE the only hook is in ATExecAddColumn - no access to the CreateStm, making it impossible to decipher whether e.g. a sequence was created as part of this or not - No way to regenerate the table definition for execution on the remote system without creating libpqdump. Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers