Re: pg_get_constraintdef() doesn't always give an equal constraint
От | Tom Lane |
---|---|
Тема | Re: pg_get_constraintdef() doesn't always give an equal constraint |
Дата | |
Msg-id | 17189.1427732517@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: pg_get_constraintdef() doesn't always give an equal constraint (Jeff Davis <pgsql@j-davis.com>) |
Список | pgsql-bugs |
Jeff Davis <pgsql@j-davis.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
В списке pgsql-bugs по дате отправления: