Re: pg_get_constraintdef() doesn't always give an equal constraint

From: Jeff Davis <pgsql(at)j-davis(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: pg_get_constraintdef() doesn't always give an equal constraint
Date: 2015-03-30 05:43:33
Message-ID: 1427694213.2845.20.camel@jeff-desktop
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Sat, 2015-03-28 at 15:08 -0400, Tom Lane wrote:
> Basically, I think we have to change ruleutils so that it quotes anything
> that wouldn't be seen as a simple integer or numeric constant by the
> lexer+grammar.
>
> The attached patch does this; the regression test changes illustrate
> what's going to happen to the output if we do this.

This fixes my problem, thank you.

There are two switch statements in that function, and they have
overlapping purposes. Can't we just always set needlabel in the first
switch statement, and remove the second switch statement?

When I refactored it to do that (attached), I noticed that if showtype
== -1, it returns before appending the collation. I don't see any reason
those should be related, so I removed the early return (I don't think
there's an actual bug there, though).

There are more diffs in the contrib tests, also included in my version.

> Looking at the changes, I'm not 100% convinced we want to back-patch.
> As you say, nobody's complained of this problem before, and I'm worried
> that people will see the output changes as a bigger deal than the issue
> we're trying to fix.

Fine with me.

Regards,
Jeff Davis

Attachment Content-Type Size
fix-ruleutils-jeff.patch text/x-patch 28.9 KB

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message chjischj 2015-03-30 11:13:34 BUG #12917: C program created by ecpg core dumped due to “varcharsize * offset”
Previous Message Tom Lane 2015-03-29 18:40:41 Re: pg_get_constraintdef() doesn't always give an equal constraint