On Tue, 1 Jan 2019 14:46:25 +0700
Nguyễn Trần Quốc Vinh <ntquocvinh@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 <nagata@sraoss.co.jp>