[HACKERS] FK NOT VALID can't be deferrable?

2011-06-15 Thread Jaime Casanova
Hi,

Testing the CHECK NOT VALID patch i found $subject... is this intended?

-- 
Jaime Casanova         www.2ndQuadrant.com
Professional PostgreSQL: Soporte 24x7 y capacitación

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] FK NOT VALID can't be deferrable?

2011-06-15 Thread Dean Rasheed
On 15 June 2011 07:56, Jaime Casanova ja...@2ndquadrant.com wrote:
 Hi,

 Testing the CHECK NOT VALID patch i found $subject... is this intended?


I just noticed that too, and was about to raise it as a bug.

If it is intended, then it's not documented.

I noticed it while browsing gram.y, and thought it looks a bit ugly
having 2 almost identical code blocks, one for the normal case and one
for NOT VALID. The second block doesn't have a
ConstraintAttributeSpec, so won't allow any deferrable options.

Aside from the ugliness of the code, we can't just add a
ConstraintAttributeSpec to the second block, because that would
enforce an order to these options.

OTOH adding NOT VALID to ConstraintAttributeSpec is a bit invasive,
since it's used in quite a few places, including CREATE TABLE, where
NOT VALID is never allowed.

Thoughts?

Regards,
Dean

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] FK NOT VALID can't be deferrable?

2011-06-15 Thread Tom Lane
Dean Rasheed dean.a.rash...@gmail.com writes:
 On 15 June 2011 07:56, Jaime Casanova ja...@2ndquadrant.com wrote:
 Testing the CHECK NOT VALID patch i found $subject... is this intended?

 Aside from the ugliness of the code, we can't just add a
 ConstraintAttributeSpec to the second block, because that would
 enforce an order to these options.

 OTOH adding NOT VALID to ConstraintAttributeSpec is a bit invasive,
 since it's used in quite a few places, including CREATE TABLE, where
 NOT VALID is never allowed.

 Thoughts?

I think we need to do the second one, ie, add it to
ConstraintAttributeSpec and do what's necessary to filter later.
The reason we have a problem here is exactly that somebody took
shortcuts.

It'd probably be sufficient to have one or two places in
parse_utilcmds.c know which variants of Constraint actually support
NOT VALID, and throw an error for the rest.

regards, tom lane

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] FK NOT VALID can't be deferrable?

2011-06-15 Thread Simon Riggs
On Wed, Jun 15, 2011 at 4:54 PM, Tom Lane t...@sss.pgh.pa.us wrote:
 Dean Rasheed dean.a.rash...@gmail.com writes:
 On 15 June 2011 07:56, Jaime Casanova ja...@2ndquadrant.com wrote:
 Testing the CHECK NOT VALID patch i found $subject... is this intended?

 Aside from the ugliness of the code, we can't just add a
 ConstraintAttributeSpec to the second block, because that would
 enforce an order to these options.

 OTOH adding NOT VALID to ConstraintAttributeSpec is a bit invasive,
 since it's used in quite a few places, including CREATE TABLE, where
 NOT VALID is never allowed.

 Thoughts?

 I think we need to do the second one, ie, add it to
 ConstraintAttributeSpec and do what's necessary to filter later.
 The reason we have a problem here is exactly that somebody took
 shortcuts.

There were grammar issues in the NOT VALID patch which I sought to
resolve. Those new suggestions may fall foul of the same issues.

I raised that point and asked for input prior to commit.

-- 
 Simon Riggs   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


Re: [HACKERS] FK NOT VALID can't be deferrable?

2011-06-15 Thread Alvaro Herrera
Excerpts from Tom Lane's message of mié jun 15 11:54:25 -0400 2011:
 Dean Rasheed dean.a.rash...@gmail.com writes:
  On 15 June 2011 07:56, Jaime Casanova ja...@2ndquadrant.com wrote:
  Testing the CHECK NOT VALID patch i found $subject... is this intended?
 
  Aside from the ugliness of the code, we can't just add a
  ConstraintAttributeSpec to the second block, because that would
  enforce an order to these options.
 
  OTOH adding NOT VALID to ConstraintAttributeSpec is a bit invasive,
  since it's used in quite a few places, including CREATE TABLE, where
  NOT VALID is never allowed.
 
 I think we need to do the second one, ie, add it to
 ConstraintAttributeSpec and do what's necessary to filter later.
 The reason we have a problem here is exactly that somebody took
 shortcuts.
 
 It'd probably be sufficient to have one or two places in
 parse_utilcmds.c know which variants of Constraint actually support
 NOT VALID, and throw an error for the rest.

So is somebody from 2nd Quadrant going to supply a patch to fix this?

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

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] FK NOT VALID can't be deferrable?

2011-06-15 Thread Jaime Casanova
On Wed, Jun 15, 2011 at 3:14 PM, Alvaro Herrera
alvhe...@commandprompt.com wrote:

 So is somebody from 2nd Quadrant going to supply a patch to fix this?


well, i was going to give it a try... but in a couple of hours...

-- 
Jaime Casanova         www.2ndQuadrant.com
Professional PostgreSQL: Soporte 24x7 y capacitación

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] FK NOT VALID can't be deferrable?

2011-06-15 Thread Simon Riggs
On Wed, Jun 15, 2011 at 9:14 PM, Alvaro Herrera
alvhe...@commandprompt.com wrote:

 So is somebody from 2nd Quadrant going to supply a patch to fix this?

My understanding was that your patch had a bug, rather than the
existing code. If I misunderstood, please explain the bug.

In terms of 2ndQuadrant supplying patches, you may not be aware that
we all work independently on community contributions...

-- 
 Simon Riggs   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


Re: [HACKERS] FK NOT VALID can't be deferrable?

2011-06-15 Thread Alvaro Herrera
Excerpts from Simon Riggs's message of mié jun 15 16:31:45 -0400 2011:
 On Wed, Jun 15, 2011 at 9:14 PM, Alvaro Herrera
 alvhe...@commandprompt.com wrote:
 
  So is somebody from 2nd Quadrant going to supply a patch to fix this?
 
 My understanding was that your patch had a bug, rather than the
 existing code. If I misunderstood, please explain the bug.

This is about FOREIGN KEY NOT VALID, which is your patch that's already
in 9.1.  My patch doesn't touch foreign keys.  CHECK constraints cannot
be deferrable anyway.

 In terms of 2ndQuadrant supplying patches, you may not be aware that
 we all work independently on community contributions...

I wasn't, but that doesn't change anything -- I mean, you were from 2nd
Quadrant last time I checked.  If Jaime is going to submit a patch to
fix the bug, I assume you're fine with that too?

(The other alternative is to leave the bug open until Robert or Tom fix
it, I guess)

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

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] FK NOT VALID can't be deferrable?

2011-06-15 Thread Tom Lane
Alvaro Herrera alvhe...@commandprompt.com writes:
 So is somebody from 2nd Quadrant going to supply a patch to fix this?

I'm already on it.  The whole patch appears to need some review,
considering this is about the fourth major flaw we've found in it.

regards, tom lane

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] FK NOT VALID can't be deferrable?

2011-06-15 Thread Simon Riggs
On Wed, Jun 15, 2011 at 9:59 PM, Alvaro Herrera
alvhe...@commandprompt.com wrote:
 Excerpts from Simon Riggs's message of mié jun 15 16:31:45 -0400 2011:
 On Wed, Jun 15, 2011 at 9:14 PM, Alvaro Herrera
 alvhe...@commandprompt.com wrote:

  So is somebody from 2nd Quadrant going to supply a patch to fix this?

 My understanding was that your patch had a bug, rather than the
 existing code. If I misunderstood, please explain the bug.

 This is about FOREIGN KEY NOT VALID, which is your patch that's already
 in 9.1.  My patch doesn't touch foreign keys.  CHECK constraints cannot
 be deferrable anyway.

OK, thanks. My bug, my responsibility to provide a solution.

-- 
 Simon Riggs   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


Re: [HACKERS] FK NOT VALID can't be deferrable?

2011-06-15 Thread Simon Riggs
On Wed, Jun 15, 2011 at 10:42 PM, Tom Lane t...@sss.pgh.pa.us wrote:
 Alvaro Herrera alvhe...@commandprompt.com writes:
 So is somebody from 2nd Quadrant going to supply a patch to fix this?

 I'm already on it.  The whole patch appears to need some review,
 considering this is about the fourth major flaw we've found in it.

I'll leave it with you then, but I remain happy to fix.

-- 
 Simon Riggs   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