Re: BUG #6050: Dump and restore of view after a schema change: can't restore the view

Поиск
Список
Период
Сортировка
От Daniel Cristian Cruz
Тема Re: BUG #6050: Dump and restore of view after a schema change: can't restore the view
Дата
Msg-id BANLkTin_zsmAMnfGOqDeHjwkca5TNM7Xig@mail.gmail.com
обсуждение исходный текст
Ответ на Re: BUG #6050: Dump and restore of view after a schema change: can't restore the view  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
I understood that USING is not a cool thing to use inside views, will avoid
it.

Still gonna use it in reports and applications, since there is no risk to
affect backups and raises an error.

It would be nice to had an NOTICE or WARNING about the USING clause inside
VIEWs, saying that it's not recommended since a schema change would crash
backups.

2011/6/3 Tom Lane <tgl@sss.pgh.pa.us>

> "Daniel Cristian Cruz" <danielcristian@gmail.com> writes:
> > CREATE TABLE a (
> >  id_a serial primary key,
> >  v text
> > );
> > CREATE TABLE b (
> >  id_b serial primary key,
> >  id_a integer REFERENCES a (id_a),
> >  v text
> > );
> > CREATE TABLE c (
> >  id_c serial primary key,
> >  id_b integer references b (id_b),
> >  v text
> > );
>
> > CREATE VIEW cba AS
> >  SELECT c.v AS vc, b.v AS vb, a.v AS va
> >  FROM c
> >  JOIN b USING (id_b)
> >  JOIN a USING (id_a);
>
> > ALTER TABLE c ADD id_a integer;
>
> > [ view definition now fails due to multiple "id_a" columns ]
>
> I'm inclined to write this off as "so don't do that".  There's nothing
> that pg_dump can do to make this work: it has to use the USING syntax
> for the join, and that doesn't offer any way to qualify the column name
> on just one side.  The only possible fix would be to try to make ALTER
> TABLE reject the addition of the conflicting column name to "c" in the
> first place.  That doesn't seem very practical; it would require ALTER
> TABLE to do a tremendous amount of analysis, and exclusively lock all
> the dependent views, and then lock all the other tables used in the
> views, and so on.
>
> Personally my advice is to avoid USING: it wasn't one of the SQL
> committee's better ideas.
>
>                        regards, tom lane
>



--=20
Daniel Cristian Cruz
=E3=82=AF=E3=83=AB=E3=82=BA =E3=82=AF=E3=83=AA=E3=82=B9=E3=83=81=E3=82=A2=
=E3=83=B3 =E3=83=80=E3=83=8B=E3=82=A8=E3=83=AB

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: BUG #6050: Dump and restore of view after a schema change: can't restore the view
Следующее
От: Robert Haas
Дата:
Сообщение: Re: BUG #6050: Dump and restore of view after a schema change: can't restore the view