On Tue, 1 Jan 2019 14:46:25 +0700 Nguyễn Trần Quốc Vinh <ntquocv...@gmail.com> wrote:
> We have some result on incremental update for MVs. We generate triggers on > C to do the incremental maintenance. We posted the code to github about 1 > year ago, but unfortunately i posted a not-right ctrigger.h header. The > mistake was exposed to me when a person could not compile the generated > triggers and reported to me. And now i re-posted with the right ctrigger.h > file. > > You can find the codes of the generator here: > https://github.com/ntqvinh/PgMvIncrementalUpdate/commits/master. You can > find how did we do here: > https://link.springer.com/article/10.1134/S0361768816050066. The paper is > about generating of codes in pl/pgsql. Anyway i see it is useful for > reading the codes. I don't know if i can share the paper or not so that i > don't publish anywhere else. The text about how to generate triggers in C > was published with open-access but unfortunately, it is in Vietnamese. > > We are happy if the codes are useful for someone. I have read your paper. It is interesting and great so that the algorithm is described concretely. After reading this, I have a few questions about your implementation. Although I may be able to understand by reading your paper and code carefully, I would appreciate it if you could answer these. - It is said there are many limitations on the view definition query. How does this work when the query is not supported? - Is it possible to support materialized views that have DISTINCT, OUTER JOIN, or sub-query in your approach? - It is said that AVG is splitted to SUM and COUNT. Are these new additional columns in MV visible for users? - Does this can handle the race condition discussed in [1], that is, if concurrent transactions update different two tables in the join view definition, is MV updated sucessfully? [1] https://www.postgresql.org/message-id/flat/1368561126.64093.YahooMailNeo%40web162904.mail.bf1.yahoo.com Regards, -- Yugo Nagata <nag...@sraoss.co.jp>