Re: View definition changes after reloading pg_dump export
От | Tom Lane |
---|---|
Тема | Re: View definition changes after reloading pg_dump export |
Дата | |
Msg-id | 402822.1662041327@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | View definition changes after reloading pg_dump export (Wesley Schwengle <wesley.schwengle@xxllnc.nl>) |
Ответы |
Re: View definition changes after reloading pg_dump export
Re: View definition changes after reloading pg_dump export |
Список | pgsql-general |
Wesley Schwengle <wesley.schwengle@xxllnc.nl> writes: > There is a view that we create and it uses a function and the view > definition changes between runs. I'm not sure why this is happening, > does someone know? The core reason for the discrepancy is that the parser inserts implicit coercion steps into your initial, not-very-consistently-typed query; but the view-dumping logic (ruleutils.c) tends to display those steps as explicit coercions. Formally speaking it shouldn't do that, because the parser may act differently depending on whether a cast is explicitly present, as indeed you see here. But if we don't write the coercions explicitly then there is a risk of the reloaded view being interpreted differently than it was before (perhaps because there are more or different overloaded functions/operators available at reload time). So the dumping logic is kind of between a rock and a hard place. Our experience has been that printing the coercions explicitly causes fewer problems than not doing so, so that's what it does. regards, tom lane
В списке pgsql-general по дате отправления: