Differential (transactional) REFRESH

Поиск
Список
Период
Сортировка
От Kevin Grittner
Тема Differential (transactional) REFRESH
Дата
Msg-id 1368557513.95389.YahooMailNeo@web162903.mail.bf1.yahoo.com
обсуждение исходный текст
Ответы Re: Differential (transactional) REFRESH
Список pgsql-hackers
<div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt">In
thefirst CF for 9.4 I plan to submit a patch to allow<br />transactional REFRESH of a materialized view using
differential<br/>update.  Essentially I expect this to be the equivalent of running<br />the query specified for the
viewand saving the results into a<br />temporary table, and then doing DELETE and INSERT passes to make<br />the
matviewmatch the new data.  If mv is the matview and mv_temp<br />is the temporary storage for the new value for its
data,the logic<br />would be roughly the equivalent of:<br /><br />BEGIN;<br />LOCK mv IN SHARE ROW EXCLUSIVE MODE;<br
/>CREATETEMP TABLE mv_temp AS [mv query];<br />-- Create indexes here???  Capture statistics on temp table???<br
/>DELETEFROM mv WHERE NOT EXISTS (SELECT * FROM mv_temp<br />  WHERE (mv_temp.*) IS NOT DISTINCT FROM (mv.*));<br
/>INSERTINTO mv SELECT * FROM mv_temp WHERE NOT EXISTS<br />  (SELECT * FROM mv WHERE (mv.*) IS NOT DISTINCT FROM
(mv_temp.*));<br/>COMMIT;<br /><br />I can see more than one way to code this, but would appreciate<br />input on the
bestway sooner rather than later, if anyone is going<br />to have an opinion.<br /><br />Thoughts?<br /><br />-- <br
/>KevinGrittner<br />EnterpriseDB: http://www.enterprisedb.com<br />The Enterprise PostgreSQL Company</div> 

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

Предыдущее
От: Heikki Linnakangas
Дата:
Сообщение: Re: Slicing TOAST
Следующее
От: Thom Brown
Дата:
Сообщение: Re: Slicing TOAST