From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Jeff Davis <pgsql(at)j-davis(dot)com> |
Cc: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: pg_get_constraintdef() doesn't always give an equal constraint |
Date: | 2015-03-30 16:21:57 |
Message-ID: | 17189.1427732517@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Jeff Davis <pgsql(at)j-davis(dot)com> writes:
> 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.
OK. Given the lack of other suggestions, let's press forward with
fixing it this way.
> 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?
Meh. The two switches are considering different things and don't have
exactly the same set of switch labels, so I don't really see that as
an improvement ...
> 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).
... especially since this change is outright wrong. showtype == -1
implies that the caller is going to print a cast; we cannot insert a
COLLATE clause in the middle of that without breaking things. (It may
be that this case is unreachable because a vanilla Const would never
have nondefault collation, but that doesn't make it a good change.)
>> 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.
Agreed, we'll fix HEAD only.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | root | 2015-03-30 16:22:47 | BUG #12918: Segfault in BackendIdGetTransactionIds |
Previous Message | Jon Jensen | 2015-03-30 16:13:58 | Re: pg_get_constraintdef() doesn't always give an equal constraint |