OSDN Git Service

Fix bugs in relpersistence handling during table creation.
[pg-rex/syncrep.git] / src / backend / executor / execMain.c
index 2f8deb4..eacd863 100644 (file)
@@ -2414,6 +2414,13 @@ OpenIntoRel(QueryDesc *queryDesc)
                                 errmsg("ON COMMIT can only be used on temporary tables")));
 
        /*
+        * Find namespace to create in, check its permissions
+        */
+       intoName = into->rel->relname;
+       namespaceId = RangeVarGetAndCheckCreationNamespace(into->rel);
+       RangeVarAdjustRelationPersistence(into->rel, namespaceId);
+
+       /*
         * Security check: disallow creating temp tables from security-restricted
         * code.  This is needed because calling code might not expect untrusted
         * tables to appear in pg_temp at the front of its search path.
@@ -2425,12 +2432,6 @@ OpenIntoRel(QueryDesc *queryDesc)
                                 errmsg("cannot create temporary table within security-restricted operation")));
 
        /*
-        * Find namespace to create in, check its permissions
-        */
-       intoName = into->rel->relname;
-       namespaceId = RangeVarGetAndCheckCreationNamespace(into->rel);
-
-       /*
         * Select tablespace to use.  If not specified, use default tablespace
         * (which may in turn default to database's default).
         */