Re: CREATE OR REPLACE MATERIALIZED VIEW
От | Said Assemlal |
---|---|
Тема | Re: CREATE OR REPLACE MATERIALIZED VIEW |
Дата | |
Msg-id | e55c4930-f788-4bb0-a684-743621d6cfc5@neurorx.com обсуждение исходный текст |
Ответ на | Re: CREATE OR REPLACE MATERIALIZED VIEW (Erik Wienhold <ewie@ewie.name>) |
Ответы |
Re: CREATE OR REPLACE MATERIALIZED VIEW
|
Список | pgsql-hackers |
> That is expected because AccessExclusiveLock is acquired on the existing > matview. This is also the case for CREATE OR REPLACE VIEW. Right, had this case many times. > > My initial idea, while writing the patch, was that one could replace the > matview without populating it and then run the concurrent refresh, like > this: > > CREATE OR REPLACE MATERIALIZED VIEW foo AS ... WITH NO DATA; > REFRESH MATERIALIZED VIEW CONCURRENTLY foo; > > But that won't work because concurrent refresh requires an already > populated matview. > > Right now the patch either populates the replaced matview or leaves it > in an unscannable state. Technically, it's also possible to skip the > refresh and leave the old data in place, perhaps by specifying > WITH *OLD* DATA. New columns would just be null. Of course you can't > tell if you got stale data without knowing how the matview was replaced. > Thoughts? I believe the expectation is to get materialized views updated whenever it gets replaced so likely to confuse users ?
В списке pgsql-hackers по дате отправления: