Re: Incremental View Maintenance, take 2
От | jian he |
---|---|
Тема | Re: Incremental View Maintenance, take 2 |
Дата | |
Msg-id | CACJufxHMG9Pmc=W8QMHvk_RwUBABDZNh9HgO4JSQtp1+JUPTJg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Incremental View Maintenance, take 2 (jian he <jian.universality@gmail.com>) |
Ответы |
Re: Incremental View Maintenance, take 2
Re: Incremental View Maintenance, take 2 |
Список | pgsql-hackers |
This is probably not trivial.
In function apply_new_delta_with_count.
appendStringInfo(&querybuf,
"WITH updt AS (" /* update a tuple if this exists in the view */
"UPDATE %s AS mv SET %s = mv.%s OPERATOR(pg_catalog.+) diff.%s "
"%s " /* SET clauses for aggregates */
"FROM %s AS diff "
"WHERE %s " /* tuple matching condition */
"RETURNING %s" /* returning keys of updated tuples */
") INSERT INTO %s (%s)" /* insert a new tuple if this doesn't existw */
"SELECT %s FROM %s AS diff "
"WHERE NOT EXISTS (SELECT 1 FROM updt AS mv WHERE %s);",
"WITH updt AS (" /* update a tuple if this exists in the view */
"UPDATE %s AS mv SET %s = mv.%s OPERATOR(pg_catalog.+) diff.%s "
"%s " /* SET clauses for aggregates */
"FROM %s AS diff "
"WHERE %s " /* tuple matching condition */
"RETURNING %s" /* returning keys of updated tuples */
") INSERT INTO %s (%s)" /* insert a new tuple if this doesn't existw */
"SELECT %s FROM %s AS diff "
"WHERE NOT EXISTS (SELECT 1 FROM updt AS mv WHERE %s);",
---------------------
") INSERT INTO %s (%s)" /* insert a new tuple if this doesn't existw */
"SELECT %s FROM %s AS diff "
"SELECT %s FROM %s AS diff "
the INSERT INTO line, should have one white space in the end?
also "existw" should be "exists"
В списке pgsql-hackers по дате отправления: