"Number of columns exceed limit" on a hierarchy of views

Поиск
Список
Период
Сортировка
От David Waller
Тема "Number of columns exceed limit" on a hierarchy of views
Дата
Msg-id 529635.91604.qm@web86509.mail.ird.yahoo.com
обсуждение исходный текст
Список pgsql-general
Hello all,

I'm struggling with a database query that under some circumstances returns the error "ERROR:  number of columns (2053)
exceedslimit (1664)".  Confusingly, though, no table is that wide. 

The problem seems to be my use of views.  The largest table in the database is 500 columns wide.  However there are a 3
viewslayered on top of it that implement business logic and denormalisation (again, the views are about 500 columns
wide)
 - the first implements rules on how some columns can inherit values from other tables
 - the second hides values that are considered 'invalid' for some reason (usually based on the value in some other
column,sometimes some other table)  
 - the final view handles denormalisation, replacing integer keys with string descriptions taken from other tables.

No table or view has more that 500 columns, but I'm suspicious that the building views on top of views is somehow
producingan intermediate query that is somehow very wide.  It's as if joins to another view don't just involve the
columnsdefined by that view but instead involve all the columns in all the joins in that view. 

Intriguingly, it's only "select * from top_view" that produces this error.  "select column_name from top_view" is fine.
 

Does anyone have any ideas as to how I could avoid this error?  I've hit the same problem on both Postgres 8.1 and 8.3.
 

Thanks,

David


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Out of memory on pg_dump
Следующее
От: Sam Mason
Дата:
Сообщение: Re: join from array or cursor