Обсуждение: type creates broken view, which can't be deleted

Поиск
Список
Период
Сортировка

type creates broken view, which can't be deleted

От
Charles Hornberger
Дата:
It looks like there's a bug that allows you to create views with columns of type unknown, and then prevents you from
droppingthe view/table. 

alpha_2=> \i brokenview
CREATE VIEW article_contrib_info AS
     SELECT ac.article_id,
            p,firstname,             -- TYPO HERE, USED COMMA INSTEAD OF PERIOD
            p.lastname
       FROM person p, article_contributor ac
      WHERE ac.person_id = p.person_id;
NOTICE:  create: attribute named "p" has an unknown type
NOTICE:  unknown node tag 704 in OffsetVarNodes()
NOTICE:  Node is: { IDENT "p" }
NOTICE:  copyObject: don't know how to copy 704
CREATE
alpha_2=> \d article_contrib_info

Table    = article_contrib_info
+----------------------------------+----------------------------------+-------+
|              Field               |              Type                | Length|
+----------------------------------+----------------------------------+-------+
| article_id                       | int4                             |     4 |
| p                                | unknown                          |   var |
| firstname                        | varchar()                        |     0 |
| lastname                         | varchar()                        |     0 |
+----------------------------------+----------------------------------+-------+

alpha_2=> drop view article_contrib_info;
ERROR:  badly formatted planstring "IDENT "p" "...

alpha_2=> drop table article_contrib_info;
ERROR:  badly formatted planstring "IDENT "p" "...

alpha_2=>

Has anyone else heard of this behavior?  Is it a documented bug?  Or am I missing something obvious about how to
resolvethis kind of problem? 

Charlie

Re: [GENERAL] type creates broken view, which can't be deleted

От
Bruce Momjian
Дата:
> It looks like there's a bug that allows you to create views with columns of type unknown, and then prevents you from
droppingthe view/table. 
>
> alpha_2=> \i brokenview
> CREATE VIEW article_contrib_info AS
>      SELECT ac.article_id,
>             p,firstname,             -- TYPO HERE, USED COMMA INSTEAD OF PERIOD
>             p.lastname
>        FROM person p, article_contributor ac
>       WHERE ac.person_id = p.person_id;
> NOTICE:  create: attribute named "p" has an unknown type
> NOTICE:  unknown node tag 704 in OffsetVarNodes()
> NOTICE:  Node is: { IDENT "p" }
> NOTICE:  copyObject: don't know how to copy 704
> CREATE
> alpha_2=> \d article_contrib_info

I couldn't recreate it in the current source tree:

    create view xxy as select p, relname from pg_class;


--
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026