Re-allow user_catalog_table option for materialized views.
authorTom Lane <[email protected]>
Thu, 10 Nov 2016 20:00:58 +0000 (15:00 -0500)
committerTom Lane <[email protected]>
Thu, 10 Nov 2016 20:00:58 +0000 (15:00 -0500)
The reloptions stuff allows this option to be set on a matview.
While it's questionable whether that is useful or was really intended,
it does work, and we shouldn't change that in minor releases.  Commit
e3e66d8a9 disabled the option since I didn't realize that it was
possible for it to be set on a matview.  Tweak the test to re-allow it.

Discussion: <19749.1478711862@sss.pgh.pa.us>

src/include/utils/rel.h

index c867ebb233dc3acd1a847d3bfd933a8b494f2de0..fa15f28468d5fb363ba1f9acef096f6cfb1b11a5 100644 (file)
@@ -270,8 +270,9 @@ typedef struct StdRdOptions
  *     from the pov of logical decoding.  Note multiple eval of argument!
  */
 #define RelationIsUsedAsCatalogTable(relation) \
-   ((relation)->rd_rel->relkind == RELKIND_RELATION && \
-    (relation)->rd_options ? \
+   ((relation)->rd_options && \
+    ((relation)->rd_rel->relkind == RELKIND_RELATION || \
+     (relation)->rd_rel->relkind == RELKIND_MATVIEW) ? \
     ((StdRdOptions *) (relation)->rd_options)->user_catalog_table : false)
 
 /*