Last gasp

Started by Simon Riggsabout 14 years ago242 messageshackers
Jump to latest
#1Simon Riggs
simon@2ndQuadrant.com

These patches aren't marked with a committer

FK arrays
ECPG fetch
foreign stats
command triggers
check function
parallel pg_dump

Does that mean myself or others should be claiming them for commit/reject?

--
 Simon Riggs                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services

#2Robert Haas
robertmhaas@gmail.com
In reply to: Simon Riggs (#1)
Re: Last gasp

On Thu, Apr 5, 2012 at 1:28 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

These patches aren't marked with a committer

FK arrays
ECPG fetch
foreign stats
command triggers
check function
parallel pg_dump

Does that mean myself or others should be claiming them for commit/reject?

I've been right in the middle of the command triggers stuff, so I
suppose I would pick that up for commit if it were ready, but there
hasn't been a new version this week unless I've missed it, and even if
the new version arrived right this minute, I don't think I or anyone
else can do a good job committing a patch of that size in the time
remaining. So I think it's time to formally put that one out of its
misery.

I think the ECPG fetch patch is about ready to go. Normally Michael
Meskes handles all ECPG patches, but I'm not sure what his schedule is
like. I'm not sure what the politics are of someone else touching
that code.

Heikki recently produced a revision of the check function patch, but
I'm not sure whether he's planning to commit that or whether it's a
demonstration of a broader rework he wants Pavel (or someone else) to
do. At any rate, I think it's up to him whether or not to commit
that.

I think Andrew is working on parallel pg_dump, so I suspect the rest
of us should stay out of the way. I've also looked at it extensively
and will work on it if Andrew isn't, but I don't think it's ready to
commit. A few preliminary pieces could go in, perhaps.

I am not sure what the state of the foreign stats patch is, or FK arrays.

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

#3Heikki Linnakangas
heikki.linnakangas@enterprisedb.com
In reply to: Robert Haas (#2)
Re: Last gasp

On 05.04.2012 21:00, Robert Haas wrote:

Heikki recently produced a revision of the check function patch, but
I'm not sure whether he's planning to commit that or whether it's a
demonstration of a broader rework he wants Pavel (or someone else) to
do. At any rate, I think it's up to him whether or not to commit
that.

Yeah, I guess it's up to me, now that I've touched that code. I don't
feel ready to commit it yet. It needs some more cleanup, which I could
do, but frankly even with the refactoring I did I'm still not totally
happy with the way it works. I feel that there ought to be a less
duplicative approach, but I don't have any more concrete proposals.
Unless someone more motivated picks up the patch now, I think it needs
to be pushed to 9.3.

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com

#4Simon Riggs
simon@2ndQuadrant.com
In reply to: Robert Haas (#2)
Re: Last gasp

On Thu, Apr 5, 2012 at 7:00 PM, Robert Haas <robertmhaas@gmail.com> wrote:

On Thu, Apr 5, 2012 at 1:28 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

These patches aren't marked with a committer

FK arrays
ECPG fetch
foreign stats
command triggers
check function
parallel pg_dump

Does that mean myself or others should be claiming them for commit/reject?

I've been right in the middle of the command triggers stuff, so I
suppose I would pick that up for commit if it were ready, but there
hasn't been a new version this week unless I've missed it, and even if
the new version arrived right this minute, I don't think I or anyone
else can do a good job committing a patch of that size in the time
remaining.  So I think it's time to formally put that one out of its
misery.

I think doing so will cause substantial misery for many users. I find
it hard to believe that such a simple concept hasn't managed to
produce some workable subset after months of work.

--
 Simon Riggs                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services

#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#2)
Re: Last gasp

Robert Haas <robertmhaas@gmail.com> writes:

On Thu, Apr 5, 2012 at 1:28 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

These patches aren't marked with a committer

I think the ECPG fetch patch is about ready to go. Normally Michael
Meskes handles all ECPG patches, but I'm not sure what his schedule is
like. I'm not sure what the politics are of someone else touching
that code.

I think we should leave that one for Michael. Frankly, none of the
rest of us pay enough attention to ecpg to be candidates to take
responsibility for nontrivial patches there.

In fact, for *most* of these patches the fact that they're still here
should give you pause about just committing them.

I am not sure what the state of the foreign stats patch is, or FK arrays.

I'm taking the foreign stats one; as I mentioned a bit ago, I think we
need to push an FDW ANALYZE hook into 9.2. I don't like the details of
what's in the current submission but I think it's fixable with not much
effort.

The FK arrays one I'm kind of queasy about. It's a cool-sounding idea
but I'm not convinced that all the corner-case details have been
adequately thought through, and I'm scared of being unable to fix any
such bugs in later versions because of backwards compatibility worries.
It'd be a lot better to be pushing this in at the start of a devel cycle
than the end.

Most of the rest of this stuff I'm about ready to put off to 9.3.
The risk/reward ratio for committing it on the last day of the last
9.2 fest doesn't look good.

regards, tom lane

#6Robert Haas
robertmhaas@gmail.com
In reply to: Simon Riggs (#4)
Re: Last gasp

On Thu, Apr 5, 2012 at 2:17 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

On Thu, Apr 5, 2012 at 7:00 PM, Robert Haas <robertmhaas@gmail.com> wrote:

On Thu, Apr 5, 2012 at 1:28 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

These patches aren't marked with a committer

FK arrays
ECPG fetch
foreign stats
command triggers
check function
parallel pg_dump

Does that mean myself or others should be claiming them for commit/reject?

I've been right in the middle of the command triggers stuff, so I
suppose I would pick that up for commit if it were ready, but there
hasn't been a new version this week unless I've missed it, and even if
the new version arrived right this minute, I don't think I or anyone
else can do a good job committing a patch of that size in the time
remaining.  So I think it's time to formally put that one out of its
misery.

I think doing so will cause substantial misery for many users. I find
it hard to believe that such a simple concept hasn't managed to
produce some workable subset after months of work.

I am not interested in relitigating on this thread what has already
been extensively discussed nearby. Dimitri and I agreed on numerous
changes to try to make the behavior sane, and those changes were
suggested and agreed to for good reason. We didn't agree on every
point, of course, but we did agree on most of it, and there is no
patch that implements what was agreed. Even if there were, there is
not time to review and commit a heavily revised version of a >1000
line patch before tomorrow, and any suggestion to the contrary is just
plain wrong.

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

#7Pavel Stehule
pavel.stehule@gmail.com
In reply to: Heikki Linnakangas (#3)
Re: Last gasp

2012/4/5 Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>:

On 05.04.2012 21:00, Robert Haas wrote:

Heikki recently produced a revision of the check function patch, but
I'm not sure whether he's planning to commit that or whether it's a
demonstration of a broader rework he wants Pavel (or someone else) to
do.  At any rate, I think it's up to him whether or not to commit
that.

Yeah, I guess it's up to me, now that I've touched that code. I don't feel
ready to commit it yet. It needs some more cleanup, which I could do, but
frankly even with the refactoring I did I'm still not totally happy with the
way it works. I feel that there ought to be a less duplicative approach, but
I don't have any more concrete proposals. Unless someone more motivated
picks up the patch now, I think it needs to be pushed to 9.3.

I played with more general plpgpsm walker, but I am sure, so it is
wrong way - request for checking and dumping, and releasing plans are
too different. So there are not too much possibilities :(

The main issue is in design of exec nodes. I have no idea how to move
checking to there without increasing complexity in pl_exec.c. Some are
relative simply, but "case", "if", "block" are not.

Other idea is moving plpgsql_check_function to contrib.

Regards

Pavel

--
 Heikki Linnakangas
 EnterpriseDB   http://www.enterprisedb.com

t

#8Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#5)
Re: Last gasp

On Thu, Apr 5, 2012 at 2:23 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

In fact, for *most* of these patches the fact that they're still here
should give you pause about just committing them.

Um, yeah.

I am not sure what the state of the foreign stats patch is, or FK arrays.

I'm taking the foreign stats one; as I mentioned a bit ago, I think we
need to push an FDW ANALYZE hook into 9.2.  I don't like the details of
what's in the current submission but I think it's fixable with not much
effort.

Cool.

The FK arrays one I'm kind of queasy about.  It's a cool-sounding idea
but I'm not convinced that all the corner-case details have been
adequately thought through, and I'm scared of being unable to fix any
such bugs in later versions because of backwards compatibility worries.
It'd be a lot better to be pushing this in at the start of a devel cycle
than the end.

I've been feeling that that patch has been suffering from a lack of
reviewer attention, which is a real shame, because I think the
functionality is indeed really cool. But I haven't looked at it
enough to know what kind of shape it's in.

Most of the rest of this stuff I'm about ready to put off to 9.3.
The risk/reward ratio for committing it on the last day of the last
9.2 fest doesn't look good.

+1.

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

#9Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Simon Riggs (#1)
Re: Last gasp

Excerpts from Simon Riggs's message of jue abr 05 14:28:54 -0300 2012:

These patches aren't marked with a committer

FK arrays
ECPG fetch
foreign stats
command triggers
check function
parallel pg_dump

Does that mean myself or others should be claiming them for commit/reject?

The FK locking patch isn't on this list; however, I'm hijacking this
thread to say that some benchmarking runs we tried weren't all that
great, showing 9% performance degradation on stock pgbench -- i.e. a
large hit that will harm everybody even if they are not using FKs at
all. I'm thus setting the patch returned with feedback, which is sure
to make several hackers happy and tons of users unhappy.

--
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

#10Simon Riggs
simon@2ndQuadrant.com
In reply to: Tom Lane (#5)
Re: Last gasp

On Thu, Apr 5, 2012 at 7:23 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

The FK arrays one I'm kind of queasy about.  It's a cool-sounding idea
but I'm not convinced that all the corner-case details have been
adequately thought through, and I'm scared of being unable to fix any
such bugs in later versions because of backwards compatibility worries.
It'd be a lot better to be pushing this in at the start of a devel cycle
than the end.

OK, that's clear. I would have taken it, but not now.

--
 Simon Riggs                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services

#11Robert Haas
robertmhaas@gmail.com
In reply to: Alvaro Herrera (#9)
Re: Last gasp

On Thu, Apr 5, 2012 at 2:37 PM, Alvaro Herrera
<alvherre@commandprompt.com> wrote:

The FK locking patch isn't on this list; however, I'm hijacking this
thread to say that some benchmarking runs we tried weren't all that
great, showing 9% performance degradation on stock pgbench -- i.e.  a
large hit that will harm everybody even if they are not using FKs at
all.  I'm thus setting the patch returned with feedback, which is sure
to make several hackers happy and tons of users unhappy.

Ouch! That's a real bummer. It makes me glad that you tested it, but
I can't say I'm happy about the outcome. Did you get in any insight
into where the regression is coming from?

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

#12Simon Riggs
simon@2ndQuadrant.com
In reply to: Alvaro Herrera (#9)
Re: Last gasp

On Thu, Apr 5, 2012 at 7:37 PM, Alvaro Herrera
<alvherre@commandprompt.com> wrote:

The FK locking patch isn't on this list;

We'd agreed you were the assigned committer, hence not on list.

however, I'm hijacking this
thread to say that some benchmarking runs we tried weren't all that
great, showing 9% performance degradation on stock pgbench -- i.e.  a
large hit that will harm everybody even if they are not using FKs at
all.  I'm thus setting the patch returned with feedback, which is sure
to make several hackers happy and tons of users unhappy.

I've done what I can to alter that, but I think its the right decision
at this point. I would say its been the largest and most subtle patch
submitted, so please don't be down by that.

--
 Simon Riggs                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services

#13Hannu Krosing
hannu@tm.ee
In reply to: Robert Haas (#6)
Re: Last gasp

On Thu, 2012-04-05 at 14:27 -0400, Robert Haas wrote:

On Thu, Apr 5, 2012 at 2:17 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

On Thu, Apr 5, 2012 at 7:00 PM, Robert Haas <robertmhaas@gmail.com> wrote:

On Thu, Apr 5, 2012 at 1:28 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

These patches aren't marked with a committer

FK arrays
ECPG fetch
foreign stats
command triggers
check function
parallel pg_dump

Does that mean myself or others should be claiming them for commit/reject?

I've been right in the middle of the command triggers stuff, so I
suppose I would pick that up for commit if it were ready, but there
hasn't been a new version this week unless I've missed it, and even if
the new version arrived right this minute, I don't think I or anyone
else can do a good job committing a patch of that size in the time
remaining. So I think it's time to formally put that one out of its
misery.

I think doing so will cause substantial misery for many users. I find
it hard to believe that such a simple concept hasn't managed to
produce some workable subset after months of work.

I am not interested in relitigating on this thread what has already
been extensively discussed nearby. Dimitri and I agreed on numerous
changes to try to make the behavior sane,

To me it looked like the scope of the patch started to suddenly expand
exponentially a few days ago from a simple COMMAND TRIGGERS, which would
have finally enabled trigger-based or "logical" replication systems to
do full replication to something recursive which would attempt to cover
all weird combinations of commands triggering other commands for which
there is no real use-case in view, except a suggestion "don't do it" :)

The latest patch (v18) seemed quite ok for its original intended
purpose.

Show quoted text

and those changes were
suggested and agreed to for good reason. We didn't agree on every
point, of course, but we did agree on most of it, and there is no
patch that implements what was agreed. Even if there were, there is
not time to review and commit a heavily revised version of a >1000
line patch before tomorrow, and any suggestion to the contrary is just
plain wrong.

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

#14Michael Meskes
meskes@postgresql.org
In reply to: Tom Lane (#5)
Re: Last gasp

On Thu, Apr 05, 2012 at 02:23:03PM -0400, Tom Lane wrote:

I think the ECPG fetch patch is about ready to go. Normally Michael
Meskes handles all ECPG patches, but I'm not sure what his schedule is
like. I'm not sure what the politics are of someone else touching
that code.

I think we should leave that one for Michael. Frankly, none of the
rest of us pay enough attention to ecpg to be candidates to take
responsibility for nontrivial patches there.

I will take care of this over the next couple days. Is the patch that Zoltan
send last Friday the latest version?

Michael
--
Michael Meskes
Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org)
Michael at BorussiaFan dot De, Meskes at (Debian|Postgresql) dot Org
Jabber: michael.meskes at googlemail dot com
VfL Borussia! Força Barça! Go SF 49ers! Use Debian GNU/Linux, PostgreSQL

#15Hannu Krosing
hannu@tm.ee
In reply to: Hannu Krosing (#13)
Re: Last gasp

On Thu, 2012-04-05 at 20:46 +0200, Hannu Krosing wrote:

On Thu, 2012-04-05 at 14:27 -0400, Robert Haas wrote:

On Thu, Apr 5, 2012 at 2:17 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

...

I think doing so will cause substantial misery for many users. I find
it hard to believe that such a simple concept hasn't managed to
produce some workable subset after months of work.

I am not interested in relitigating on this thread what has already
been extensively discussed nearby. Dimitri and I agreed on numerous
changes to try to make the behavior sane,

To me it looked like the scope of the patch started to suddenly expand
exponentially a few days ago from a simple COMMAND TRIGGERS, which would
have finally enabled trigger-based or "logical" replication systems to
do full replication to something recursive which would attempt to cover
all weird combinations of commands triggering other commands for which
there is no real use-case in view, except a suggestion "don't do it" :)

The latest patch (v18) seemed quite ok for its original intended
purpose.

Sorry, i hit "send!" too early.

Would it be possible to put some "command trigger hooks" in a few
strategic places so that some trigger-like functionality could be loaded
at run time, mainly with a view of writing DDL replication
'non-triggers' , mostly based on current v18 code, but of course without
all the nice CREATE TRIGGER syntax ?

perhaps created with a pg_create_command_trigger(...)

that is something in the line of how Full Text Indexing was done for a
long time.

Show quoted text

and those changes were
suggested and agreed to for good reason. We didn't agree on every
point, of course, but we did agree on most of it, and there is no
patch that implements what was agreed. Even if there were, there is
not time to review and commit a heavily revised version of a >1000
line patch before tomorrow, and any suggestion to the contrary is just
plain wrong.

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

#16Andrew Dunstan
andrew@dunslane.net
In reply to: Robert Haas (#2)
Re: Last gasp

On 04/05/2012 02:00 PM, Robert Haas wrote:

I think Andrew is working on parallel pg_dump, so I suspect the rest
of us should stay out of the way. I've also looked at it extensively
and will work on it if Andrew isn't, but I don't think it's ready to
commit. A few preliminary pieces could go in, perhaps.

I am working on it when I get time, but I am slammed. It would probably
take me a couple of full days to do a thorough code review, and finding
that is hard.

cheers

andrew

#17Robert Haas
robertmhaas@gmail.com
In reply to: Hannu Krosing (#13)
Re: Last gasp

On Thu, Apr 5, 2012 at 2:46 PM, Hannu Krosing <hannu@krosing.net> wrote:

To me it looked like the scope of the patch started to suddenly expand
exponentially a few days ago from a simple COMMAND TRIGGERS, which would
have finally enabled trigger-based or "logical" replication systems to
do full replication to something recursive which would attempt to cover
all weird combinations of commands triggering other commands for which
there is no real use-case in view, except a suggestion "don't do it" :)

The latest patch (v18) seemed quite ok for its original intended
purpose.

OK, so here we go, rehashing the discussion we already had on thread A
on thread B. The particular issue you are mentioning there was not
the reason that patch isn't going to end up in 9.2. If the only thing
the patch had needed was a little renaming and syntax cleanup, I would
have done it myself (or Dimitri would have) and I would have committed
it. That is not the problem, or at least it's not the only problem.
There are at least two other major issues:

- The patch as posted fires triggers at unpredictable times depending
on which command you're executing. Some things that are really
sub-commands fire triggers anyway as if they were toplevel commands;
others don't; whether or not it happens in a particular case is
determined by implementation details rather than by any consistent
principle of operation. In the cases where triggers do fire, they
don't always fire at the same place in the execution sequence.

- The patch isn't safe if the triggers try to execute DDL on the
object being modified. It's not exactly clear what misbehavior will
result in every case, but it is clear that that it hasn't really been
thought about.

Now, if anyone who was actually following the conversation thought
these things were not problems, they could have written back to the
relevant thread and said, hey, I don't mind if the trigger firing
behavior changes every time someone does any refactoring of our
badly-written DDL code and if the server blows up in random ways when
someone does something unexpected in the trigger that's OK with me
too. Maybe not surprisingly, no one said that. Two people wrote into
that thread after my latest round of reviewing and both of them
disagreed with only minor points of my review, and we had a technical
discussion about those issues. But showing up after the fact and
acting as if there were no serious issues found during that review is
either disingenuous or a sign that you didn't really read the thread.

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

#18Robert Haas
robertmhaas@gmail.com
In reply to: Hannu Krosing (#15)
Re: Last gasp

On Thu, Apr 5, 2012 at 2:58 PM, Hannu Krosing <hannu@krosing.net> wrote:

On Thu, 2012-04-05 at 20:46 +0200, Hannu Krosing wrote:

On Thu, 2012-04-05 at 14:27 -0400, Robert Haas wrote:

On Thu, Apr 5, 2012 at 2:17 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

...

I think doing so will cause substantial misery for many users. I find
it hard to believe that such a simple concept hasn't managed to
produce some workable subset after months of work.

I am not interested in relitigating on this thread what has already
been extensively discussed nearby.  Dimitri and I agreed on numerous
changes to try to make the behavior sane,

To me it looked like the scope of the patch started to suddenly expand
exponentially a few days ago from a simple COMMAND TRIGGERS, which would
have finally enabled trigger-based or "logical" replication systems to
do full replication to something recursive which would attempt to cover
all weird combinations of commands triggering other commands for which
there is no real use-case in view, except a suggestion "don't do it" :)

The latest patch (v18) seemed quite ok for its original intended
purpose.

Sorry, i hit "send!" too early.

Would it be possible to put some "command trigger hooks" in a few
strategic places so that some trigger-like functionality could be loaded
at run time, mainly with a view of writing DDL replication
'non-triggers' , mostly based on current v18 code, but of course without
all the nice CREATE TRIGGER syntax ?

I certainly think that would be a possible way forward, but I don't
think we should try to engineer that in the next 24 hours. Had the
original goals of the patch been somewhat more modest, I think we
could have gotten it into 9.2, but there's no time to rethink the
scope of the patch now. With all respect for Dimitri and his *very*
hard work on this subject, submitting a brand new major feature to the
last CommitFest is not really a great way to get it committed,
especially given that we didn't have consensus on the design before he
started coding. There is every reason to think that we can get this
feature into 9.3 with some more work, but it's not ready yet, and
wishing won't make it so.

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

#19Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Robert Haas (#11)
Re: Last gasp

Excerpts from Robert Haas's message of jue abr 05 15:40:17 -0300 2012:

On Thu, Apr 5, 2012 at 2:37 PM, Alvaro Herrera
<alvherre@commandprompt.com> wrote:

The FK locking patch isn't on this list; however, I'm hijacking this
thread to say that some benchmarking runs we tried weren't all that
great, showing 9% performance degradation on stock pgbench -- i.e.  a
large hit that will harm everybody even if they are not using FKs at
all.  I'm thus setting the patch returned with feedback, which is sure
to make several hackers happy and tons of users unhappy.

Ouch! That's a real bummer. It makes me glad that you tested it, but
I can't say I'm happy about the outcome. Did you get in any insight
into where the regression is coming from?

Not really -- after reaching that conclusion I dropped immediate work on
the patch to do other stuff (like checking whether there's any other
patch I can help with in commitfest). I will resume work later, for a
(hopefully early) 9.3 submission.

--
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

#20Hannu Krosing
hannu@tm.ee
In reply to: Robert Haas (#17)
Re: Last gasp

On Thu, 2012-04-05 at 15:02 -0400, Robert Haas wrote:

On Thu, Apr 5, 2012 at 2:46 PM, Hannu Krosing <hannu@krosing.net> wrote:

To me it looked like the scope of the patch started to suddenly expand
exponentially a few days ago from a simple COMMAND TRIGGERS, which would
have finally enabled trigger-based or "logical" replication systems to
do full replication to something recursive which would attempt to cover
all weird combinations of commands triggering other commands for which
there is no real use-case in view, except a suggestion "don't do it" :)

The latest patch (v18) seemed quite ok for its original intended
purpose.

OK, so here we go, rehashing the discussion we already had on thread A
on thread B. The particular issue you are mentioning there was not
the reason that patch isn't going to end up in 9.2. If the only thing
the patch had needed was a little renaming and syntax cleanup, I would
have done it myself (or Dimitri would have) and I would have committed
it. That is not the problem, or at least it's not the only problem.
There are at least two other major issues:

- The patch as posted fires triggers at unpredictable times depending
on which command you're executing. Some things that are really
sub-commands fire triggers anyway as if they were toplevel commands;
others don't; whether or not it happens in a particular case is
determined by implementation details rather than by any consistent
principle of operation. In the cases where triggers do fire, they
don't always fire at the same place in the execution sequence.

For me it would be enough to know if the trigger is fired by top-level
command or not.

In worst case I could probably detect it myself, just give me something
to hang the detection code to .

- The patch isn't safe if the triggers try to execute DDL on the
object being modified. It's not exactly clear what misbehavior will
result in every case, but it is clear that that it hasn't really been
thought about.

It never seemed important for me, as the only thing I was ever expecting
to do in a command trigger was inserting rows in one unrelated table.

To me DDL-triggered-by-DDL seemed like a very bad idea anyway.

But as you seemed to be envisioning some use-cases for that I did not
object to you working it out.

Now, if anyone who was actually following the conversation thought
these things were not problems, they could have written back to the
relevant thread and said, hey, I don't mind if the trigger firing
behavior changes every time someone does any refactoring of our
badly-written DDL code and if the server blows up in random ways when
someone does something unexpected in the trigger that's OK with me
too.

I don't mind if the trigger firing behavior changes every time someone
does any refactoring of our badly-written DDL code

Here :)

Maybe not surprisingly, no one said that. Two people wrote into
that thread after my latest round of reviewing and both of them
disagreed with only minor points of my review, and we had a technical
discussion about those issues. But showing up after the fact and
acting as if there were no serious issues found during that review is
either disingenuous or a sign that you didn't really read the thread.

As there are other ways to blow up the backend, i did not object to you
either working out a better solution or leaving it as it is.

I am speaking up now as this is the first time I am told I have to wait
another year for this feature to arrive.

Show quoted text

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

#21Hannu Krosing
hannu@tm.ee
In reply to: Robert Haas (#18)
#22Robert Haas
robertmhaas@gmail.com
In reply to: Hannu Krosing (#20)
#23Hannu Krosing
hannu@tm.ee
In reply to: Robert Haas (#22)
#24Simon Riggs
simon@2ndQuadrant.com
In reply to: Robert Haas (#22)
#25Josh Berkus
josh@agliodbs.com
In reply to: Hannu Krosing (#23)
#26Robert Haas
robertmhaas@gmail.com
In reply to: Hannu Krosing (#23)
#27Robert Haas
robertmhaas@gmail.com
In reply to: Josh Berkus (#25)
#28Daniel Farina
daniel@heroku.com
In reply to: Robert Haas (#26)
#29Dimitri Fontaine
dimitri@2ndQuadrant.fr
In reply to: Robert Haas (#6)
#30Robert Haas
robertmhaas@gmail.com
In reply to: Simon Riggs (#24)
#31Robert Haas
robertmhaas@gmail.com
In reply to: Dimitri Fontaine (#29)
#32Dimitri Fontaine
dimitri@2ndQuadrant.fr
In reply to: Robert Haas (#31)
#33Hannu Krosing
hannu@tm.ee
In reply to: Dimitri Fontaine (#32)
#34Noah Misch
noah@leadboat.com
In reply to: Robert Haas (#8)
#35Greg Smith
gsmith@gregsmith.com
In reply to: Simon Riggs (#24)
#36Tom Lane
tgl@sss.pgh.pa.us
In reply to: Greg Smith (#35)
#37Greg Smith
gsmith@gregsmith.com
In reply to: Daniel Farina (#28)
#38Robert Haas
robertmhaas@gmail.com
In reply to: Greg Smith (#37)
#39Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#38)
#40Thom Brown
thom@linux.com
In reply to: Tom Lane (#39)
In reply to: Tom Lane (#39)
#42Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Geoghegan (#41)
#43Andrew Dunstan
andrew@dunslane.net
In reply to: Peter Geoghegan (#41)
In reply to: Tom Lane (#42)
#45Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#43)
#46Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#39)
#47Robert Haas
robertmhaas@gmail.com
In reply to: Hannu Krosing (#33)
#48Boszormenyi Zoltan
zb@cybertec.at
In reply to: Michael Meskes (#14)
#49Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#45)
#50Josh Berkus
josh@agliodbs.com
In reply to: Tom Lane (#45)
#51Greg Smith
gsmith@gregsmith.com
In reply to: Robert Haas (#38)
#52Noah Misch
noah@leadboat.com
In reply to: Robert Haas (#38)
#53Robert Haas
robertmhaas@gmail.com
In reply to: Noah Misch (#52)
#54Andres Freund
andres@anarazel.de
In reply to: Robert Haas (#53)
#55Noah Misch
noah@leadboat.com
In reply to: Andres Freund (#54)
#56Robert Haas
robertmhaas@gmail.com
In reply to: Noah Misch (#55)
#57Peter Eisentraut
peter_e@gmx.net
In reply to: Robert Haas (#38)
#58Noah Misch
noah@leadboat.com
In reply to: Robert Haas (#53)
#59Robert Haas
robertmhaas@gmail.com
In reply to: Noah Misch (#58)
#60Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#59)
#61Chris Browne
cbbrowne@acm.org
In reply to: Robert Haas (#59)
#62Andres Freund
andres@anarazel.de
In reply to: Noah Misch (#55)
#63Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andres Freund (#62)
#64Kevin Grittner
Kevin.Grittner@wicourts.gov
In reply to: Chris Browne (#61)
#65Will Crawford
billcrawford1970@gmail.com
In reply to: Noah Misch (#34)
In reply to: Kevin Grittner (#64)
#67Robert Haas
robertmhaas@gmail.com
In reply to: Peter Geoghegan (#66)
In reply to: Robert Haas (#67)
#69Tom Lane
tgl@sss.pgh.pa.us
In reply to: Kevin Grittner (#64)
#70Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#67)
#71Kevin Grittner
Kevin.Grittner@wicourts.gov
In reply to: Tom Lane (#69)
#72Greg Smith
gsmith@gregsmith.com
In reply to: Chris Browne (#61)
#73Robert Haas
robertmhaas@gmail.com
In reply to: Peter Geoghegan (#68)
#74Robert Haas
robertmhaas@gmail.com
In reply to: Greg Smith (#72)
In reply to: Robert Haas (#73)
#76Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Geoghegan (#75)
#77Robert Haas
robertmhaas@gmail.com
In reply to: Peter Geoghegan (#75)
#78Jeff Davis
pgsql@j-davis.com
In reply to: Chris Browne (#61)
#79Greg Smith
gsmith@gregsmith.com
In reply to: Robert Haas (#74)
#80Noah Misch
noah@leadboat.com
In reply to: Kevin Grittner (#71)
#81Greg Smith
gsmith@gregsmith.com
In reply to: Robert Haas (#73)
#82Robert Haas
robertmhaas@gmail.com
In reply to: Greg Smith (#81)
#83Andres Freund
andres@anarazel.de
In reply to: Robert Haas (#82)
#84Jeff Janes
jeff.janes@gmail.com
In reply to: Robert Haas (#73)
#85Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andres Freund (#83)
In reply to: Robert Haas (#82)
#87Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Geoghegan (#86)
#88Robert Haas
robertmhaas@gmail.com
In reply to: Andres Freund (#83)
#89Robert Haas
robertmhaas@gmail.com
In reply to: Peter Geoghegan (#86)
#90Magnus Hagander
magnus@hagander.net
In reply to: Robert Haas (#89)
#91Daniel Farina
daniel@heroku.com
In reply to: Robert Haas (#89)
#92Greg Smith
gsmith@gregsmith.com
In reply to: Robert Haas (#82)
#93Tom Lane
tgl@sss.pgh.pa.us
In reply to: Greg Smith (#92)
In reply to: Tom Lane (#87)
#95Magnus Hagander
magnus@hagander.net
In reply to: Tom Lane (#93)
#96Andrew Dunstan
andrew@dunslane.net
In reply to: Greg Smith (#81)
#97Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Magnus Hagander (#95)
#98Robert Haas
robertmhaas@gmail.com
In reply to: Magnus Hagander (#95)
#99Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#98)
#100Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#99)
#101Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Robert Haas (#100)
#102Josh Berkus
josh@agliodbs.com
In reply to: Chris Browne (#61)
In reply to: Magnus Hagander (#95)
#104Kevin Grittner
Kevin.Grittner@wicourts.gov
In reply to: Tom Lane (#87)
#105Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#100)
#106Josh Kupershmidt
schmiddy@gmail.com
In reply to: Peter Geoghegan (#103)
#107Magnus Hagander
magnus@hagander.net
In reply to: Josh Kupershmidt (#106)
#108Tom Lane
tgl@sss.pgh.pa.us
In reply to: Josh Berkus (#102)
#109Robert Haas
robertmhaas@gmail.com
In reply to: Alvaro Herrera (#101)
#110Peter Eisentraut
peter_e@gmx.net
In reply to: Greg Smith (#92)
#111Josh Berkus
josh@agliodbs.com
In reply to: Tom Lane (#108)
#112Peter Eisentraut
peter_e@gmx.net
In reply to: Tom Lane (#108)
#113Robert Haas
robertmhaas@gmail.com
In reply to: Josh Berkus (#111)
#114Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Eisentraut (#110)
#115Peter Eisentraut
peter_e@gmx.net
In reply to: Tom Lane (#114)
#116Robert Haas
robertmhaas@gmail.com
In reply to: Peter Eisentraut (#115)
#117Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#116)
#118Magnus Hagander
magnus@hagander.net
In reply to: Tom Lane (#117)
#119Bruce Momjian
bruce@momjian.us
In reply to: Greg Smith (#81)
#120Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Tom Lane (#117)
In reply to: Bruce Momjian (#119)
#122Greg Smith
gsmith@gregsmith.com
In reply to: Tom Lane (#93)
#123Josh Berkus
josh@agliodbs.com
In reply to: Magnus Hagander (#118)
#124Greg Sabino Mullane
greg@turnstep.com
In reply to: Bruce Momjian (#119)
#125Bruce Momjian
bruce@momjian.us
In reply to: Peter Geoghegan (#121)
#126Josh Berkus
josh@agliodbs.com
In reply to: Bruce Momjian (#125)
#127Bruce Momjian
bruce@momjian.us
In reply to: Bruce Momjian (#125)
#128Greg Smith
gsmith@gregsmith.com
In reply to: Bruce Momjian (#125)
In reply to: Alvaro Herrera (#97)
#130Jay Levitt
jay.levitt@gmail.com
In reply to: Alvaro Herrera (#120)
#131Chris Browne
cbbrowne@acm.org
In reply to: Jay Levitt (#130)
#132Dimitri Fontaine
dimitri@2ndQuadrant.fr
In reply to: Robert Haas (#38)
#133Dimitri Fontaine
dimitri@2ndQuadrant.fr
In reply to: Tom Lane (#85)
#134Dimitri Fontaine
dimitri@2ndQuadrant.fr
In reply to: Robert Haas (#88)
#135Peter Eisentraut
peter_e@gmx.net
In reply to: Josh Berkus (#123)
#136Peter Eisentraut
peter_e@gmx.net
In reply to: Robert Haas (#116)
#137Peter Eisentraut
peter_e@gmx.net
In reply to: Magnus Hagander (#118)
#138Peter Eisentraut
peter_e@gmx.net
In reply to: Chris Browne (#131)
#139Alex Shulgin
ash@commandprompt.com
In reply to: Peter Eisentraut (#136)
#140Greg Smith
gsmith@gregsmith.com
In reply to: Alex Shulgin (#139)
#141Alex Shulgin
ash@commandprompt.com
In reply to: Greg Smith (#140)
#142Alex Shulgin
ash@commandprompt.com
In reply to: Alex Shulgin (#141)
#143Jay Levitt
jay.levitt@gmail.com
In reply to: Chris Browne (#131)
#144Jay Levitt
jay.levitt@gmail.com
In reply to: Alex Shulgin (#139)
#145Robert Haas
robertmhaas@gmail.com
In reply to: Greg Smith (#81)
#146Alex Shulgin
ash@commandprompt.com
In reply to: Jay Levitt (#144)
#147Hitoshi Harada
umi.tanuki@gmail.com
In reply to: Jay Levitt (#143)
#148Simon Riggs
simon@2ndQuadrant.com
In reply to: Tom Lane (#36)
#149Simon Riggs
simon@2ndQuadrant.com
In reply to: Robert Haas (#113)
#150Simon Riggs
simon@2ndQuadrant.com
In reply to: Tom Lane (#39)
#151Simon Riggs
simon@2ndQuadrant.com
In reply to: Robert Haas (#38)
#152Simon Riggs
simon@2ndQuadrant.com
In reply to: Kevin Grittner (#64)
#153Tom Lane
tgl@sss.pgh.pa.us
In reply to: Simon Riggs (#148)
#154Tom Lane
tgl@sss.pgh.pa.us
In reply to: Simon Riggs (#150)
#155Simon Riggs
simon@2ndQuadrant.com
In reply to: Tom Lane (#153)
#156Greg Smith
gsmith@gregsmith.com
In reply to: Robert Haas (#145)
#157Greg Smith
gsmith@gregsmith.com
In reply to: Jay Levitt (#143)
#158Greg Smith
gsmith@gregsmith.com
In reply to: Simon Riggs (#148)
#159Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Alex Shulgin (#146)
#160Simon Riggs
simon@2ndQuadrant.com
In reply to: Greg Smith (#158)
#161Dimitri Fontaine
dimitri@2ndQuadrant.fr
In reply to: Alvaro Herrera (#159)
#162Alex Shulgin
ash@commandprompt.com
In reply to: Dimitri Fontaine (#161)
#163Magnus Hagander
magnus@hagander.net
In reply to: Alex Shulgin (#162)
#164Alex Shulgin
ash@commandprompt.com
In reply to: Magnus Hagander (#163)
#165Greg Smith
gsmith@gregsmith.com
In reply to: Tom Lane (#154)
#166Jay Levitt
jay.levitt@gmail.com
In reply to: Alex Shulgin (#146)
#167Jay Levitt
jay.levitt@gmail.com
In reply to: Alex Shulgin (#162)
#168Joshua D. Drake
jd@commandprompt.com
In reply to: Alex Shulgin (#162)
#169Michael Banck
michael.banck@credativ.de
In reply to: Magnus Hagander (#163)
#170Alex Shulgin
ash@commandprompt.com
In reply to: Joshua D. Drake (#168)
#171Magnus Hagander
magnus@hagander.net
In reply to: Jay Levitt (#167)
#172Greg Sabino Mullane
greg@turnstep.com
In reply to: Jay Levitt (#143)
#173Jay Levitt
jay.levitt@gmail.com
In reply to: Magnus Hagander (#171)
#174Alex Shulgin
ash@commandprompt.com
In reply to: Jay Levitt (#173)
#175Alex Shulgin
ash@commandprompt.com
In reply to: Jay Levitt (#166)
#176Jay Levitt
jay.levitt@gmail.com
In reply to: Alex Shulgin (#174)
#177Greg Smith
gsmith@gregsmith.com
In reply to: Jay Levitt (#173)
#178Robert Haas
robertmhaas@gmail.com
In reply to: Simon Riggs (#151)
#179Jay Levitt
jay.levitt@gmail.com
In reply to: Greg Smith (#177)
#180Tom Lane
tgl@sss.pgh.pa.us
In reply to: Jay Levitt (#179)
#181Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#180)
#182Chris Browne
cbbrowne@acm.org
In reply to: Jay Levitt (#179)
#183Robert Haas
robertmhaas@gmail.com
In reply to: Magnus Hagander (#171)
#184Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#183)
#185Greg Sabino Mullane
greg@turnstep.com
In reply to: Robert Haas (#183)
#186Robert Haas
robertmhaas@gmail.com
In reply to: Greg Sabino Mullane (#185)
#187Greg Smith
gsmith@gregsmith.com
In reply to: Tom Lane (#184)
#188Tom Lane
tgl@sss.pgh.pa.us
In reply to: Greg Smith (#187)
#189Greg Smith
gsmith@gregsmith.com
In reply to: Tom Lane (#188)
#190Brendan Jurd
direvus@gmail.com
In reply to: Tom Lane (#188)
#191Magnus Hagander
magnus@hagander.net
In reply to: Tom Lane (#184)
#192Magnus Hagander
magnus@hagander.net
In reply to: Greg Smith (#177)
#193Magnus Hagander
magnus@hagander.net
In reply to: Tom Lane (#188)
#194Tom Lane
tgl@sss.pgh.pa.us
In reply to: Magnus Hagander (#191)
#195Magnus Hagander
magnus@hagander.net
In reply to: Tom Lane (#194)
#196Tom Lane
tgl@sss.pgh.pa.us
In reply to: Magnus Hagander (#192)
#197Wolfgang Wilhelm
wolfgang20121964@yahoo.de
In reply to: Robert Haas (#183)
#198Alex Shulgin
ash@commandprompt.com
In reply to: Robert Haas (#183)
#199Robert Haas
robertmhaas@gmail.com
In reply to: Magnus Hagander (#193)
#200Peter Eisentraut
peter_e@gmx.net
In reply to: Jay Levitt (#176)
#201Peter Eisentraut
peter_e@gmx.net
In reply to: Robert Haas (#199)
#202Peter Eisentraut
peter_e@gmx.net
In reply to: Alex Shulgin (#198)
#203Robert Haas
robertmhaas@gmail.com
In reply to: Peter Eisentraut (#201)
#204Kevin Grittner
Kevin.Grittner@wicourts.gov
In reply to: Peter Eisentraut (#202)
#205Andrew Dunstan
andrew@dunslane.net
In reply to: Kevin Grittner (#204)
#206Josh Berkus
josh@agliodbs.com
In reply to: Robert Haas (#203)
#207Chris Browne
cbbrowne@acm.org
In reply to: Josh Berkus (#206)
#208Stefan Kaltenbrunner
stefan@kaltenbrunner.cc
In reply to: Andrew Dunstan (#181)
#209Robert Haas
robertmhaas@gmail.com
In reply to: Josh Berkus (#206)
#210Magnus Hagander
magnus@hagander.net
In reply to: Tom Lane (#196)
#211Magnus Hagander
magnus@hagander.net
In reply to: Peter Eisentraut (#200)
#212Magnus Hagander
magnus@hagander.net
In reply to: Stefan Kaltenbrunner (#208)
#213Andrew Dunstan
andrew@dunslane.net
In reply to: Robert Haas (#209)
#214Chris Browne
cbbrowne@acm.org
In reply to: Magnus Hagander (#212)
#215Susanne Ebrecht
susanne@2ndQuadrant.com
In reply to: Robert Haas (#199)
#216Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Tom Lane (#196)
#217Greg Sabino Mullane
greg@turnstep.com
In reply to: Susanne Ebrecht (#215)
#218Greg Sabino Mullane
greg@turnstep.com
In reply to: Magnus Hagander (#211)
#219Magnus Hagander
magnus@hagander.net
In reply to: Greg Sabino Mullane (#218)
#220Chris Browne
cbbrowne@acm.org
In reply to: Magnus Hagander (#219)
#221Andrew Dunstan
andrew@dunslane.net
In reply to: Chris Browne (#220)
#222Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#221)
#223Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#222)
#224Bruce Momjian
bruce@momjian.us
In reply to: Peter Eisentraut (#200)
#225Bruce Momjian
bruce@momjian.us
In reply to: Robert Haas (#203)
#226Daniel Farina
daniel@heroku.com
In reply to: Bruce Momjian (#225)
#227Bruce Momjian
bruce@momjian.us
In reply to: Daniel Farina (#226)
#228Chris Browne
cbbrowne@acm.org
In reply to: Jay Levitt (#173)
#229Bruce Momjian
bruce@momjian.us
In reply to: Chris Browne (#228)
#230Robert Haas
robertmhaas@gmail.com
In reply to: Daniel Farina (#226)
#231Magnus Hagander
magnus@hagander.net
In reply to: Bruce Momjian (#227)
In reply to: Magnus Hagander (#231)
#233Magnus Hagander
magnus@hagander.net
In reply to: Martijn van Oosterhout (#232)
#234Bruce Momjian
bruce@momjian.us
In reply to: Magnus Hagander (#231)
#235Bruce Momjian
bruce@momjian.us
In reply to: Magnus Hagander (#233)
#236Magnus Hagander
magnus@hagander.net
In reply to: Bruce Momjian (#235)
#237Bruce Momjian
bruce@momjian.us
In reply to: Magnus Hagander (#236)
#238Magnus Hagander
magnus@hagander.net
In reply to: Bruce Momjian (#237)
#239Josh Berkus
josh@agliodbs.com
In reply to: Bruce Momjian (#237)
#240Joshua D. Drake
jd@commandprompt.com
In reply to: Josh Berkus (#239)
#241Aidan Van Dyk
aidan@highrise.ca
In reply to: Joshua D. Drake (#240)
#242Josh Berkus
josh@agliodbs.com
In reply to: Aidan Van Dyk (#241)