Hi, Nagata-san
I am very interested in IMMV and read your patch but have some comments in
v25-0007-Add-Incremental-View-Maintenance-support.patch and want to discuss
with you.
+ /* For IMMV, we need to rewrite matview query */
+ query = rewriteQueryForIMMV(query, into->colNames);
+ query_immv = copyObject(query);
/* Create triggers on incremental maintainable materialized view */
+ Assert(query_immv != NULL);
+ CreateIvmTriggersOnBaseTables(query_immv,
matviewOid, true);
1. Do we need copy query?Is it okay that CreateIvmTriggersOnBaseTables
directly use (Query *) into->viewQuery instead of query_immv like
CreateIndexOnIMMV? It seems only planner may change query, but it shouldn't
affect us finding the correct base table in CreateIvmTriggersOnBaseTables .
+void
+CreateIndexOnIMMV(Query *query, Relation matviewRel)
+{
+ Query *qry = (Query *) copyObject(query);
2. Also, is it okay to not copy query in CreateIndexOnIMMV? It seems we only
read query in CreateIndexOnIMMV.
Regards,