Re: [HACKERS] Issue with circular references in VIEW
От | Gilles Darold |
---|---|
Тема | Re: [HACKERS] Issue with circular references in VIEW |
Дата | |
Msg-id | ceaadb82-fa69-b5f1-349c-72d4ccf4c1ec@dalibo.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] Issue with circular references in VIEW (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: [HACKERS] Issue with circular references in VIEW
|
Список | pgsql-hackers |
Le 24/07/2017 à 19:19, Tom Lane a écrit : > Gilles Darold <gilles.darold@dalibo.com> writes: >> There is an issue with version prior to 10 when dumping views with circular >> references. I know that these views are now exported as views in 10 but they >> are still exported as TABLE + RULE in prior versions. This conduct to the >> following error when columns of sub-queries doesn't have the same aliases >> names: > The core of this issue, I think, is that pg_get_viewdef() knows that it > should make what it prints have output column names that match the view, > whereas pg_get_ruledef() does not, even when it is printing an ON SELECT > rule. This is a little bit surprising --- you'd really expect those > functions to produce identical SELECT statements --- and I think it's > likely to break other tools even if pg_dump has managed to skirt the > issue. So I'm inclined to think in terms of fixing it at that level > rather than in pg_dump. It doesn't look like it would be hard to fix: > both functions ultimately call get_query_def(), it's just that one passes > down a tuple descriptor for the view while the other currently doesn't. I was thinking that this was intentional that pg_get_ruledef() returns the raw code typed by the user. I will fix it and send a patch following your explanation. Thanks. -- Gilles Darold Consultant PostgreSQL http://dalibo.com - http://dalibo.org
В списке pgsql-hackers по дате отправления: