X-Git-Url: https://granicus.if.org/sourcecode?a=blobdiff_plain;f=src%2Fbackend%2Fcommands%2Fmatview.c;h=fcfc678813d5ce2f02aacb31bec3b5635825c4c4;hb=f566515192461acd8d9c232f48ddac3fc965cfd8;hp=238ccc72f5205ae00a15e6e17f384addfa445552;hpb=1cccce50f374cfc6081850aedce8eb0f8b274bc5;p=postgresql diff --git a/src/backend/commands/matview.c b/src/backend/commands/matview.c index 238ccc72f5..fcfc678813 100644 --- a/src/backend/commands/matview.c +++ b/src/backend/commands/matview.c @@ -562,7 +562,7 @@ refresh_by_match_merge(Oid matviewOid, Oid tempOid) "SELECT newdata FROM %s newdata " "WHERE newdata IS NOT NULL AND EXISTS " "(SELECT * FROM %s newdata2 WHERE newdata2 IS NOT NULL " - "AND newdata2 OPERATOR(pg_catalog.=) newdata " + "AND newdata2 OPERATOR(pg_catalog.*=) newdata " "AND newdata2.ctid OPERATOR(pg_catalog.<>) " "newdata.ctid) LIMIT 1", tempname, tempname); @@ -645,9 +645,6 @@ refresh_by_match_merge(Oid matviewOid, Oid tempOid) /* * Only include the column once regardless of how many times * it shows up in how many indexes. - * - * This is also useful later to omit columns which can not - * have changed from the SET clause of the UPDATE statement. */ if (usedForQual[attnum - 1]) continue; @@ -682,8 +679,9 @@ refresh_by_match_merge(Oid matviewOid, Oid tempOid) errhint("Create a UNIQUE index with no WHERE clause on one or more columns of the materialized view."))); appendStringInfoString(&querybuf, - " AND newdata = mv) WHERE newdata IS NULL OR mv IS NULL" - " ORDER BY tid"); + " AND newdata OPERATOR(pg_catalog.*=) mv) " + "WHERE newdata IS NULL OR mv IS NULL " + "ORDER BY tid"); /* Create the temporary "diff" table. */ if (SPI_exec(querybuf.data, 0) != SPI_OK_UTILITY)