]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Make more use of RELATION_IS_OTHER_TEMP().
authorNathan Bossart <nathan@postgresql.org>
Wed, 2 Jul 2025 17:32:19 +0000 (12:32 -0500)
committerNathan Bossart <nathan@postgresql.org>
Wed, 2 Jul 2025 17:32:19 +0000 (12:32 -0500)
A few places were open-coding it instead of using this handy macro.

Author: Junwang Zhao <zhjwpku@gmail.com>
Reviewed-by: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Discussion: https://postgr.es/m/CAEG8a3LjTGJcOcxQx-SUOGoxstG4XuCWLH0ATJKKt_aBTE5K8w%40mail.gmail.com

src/backend/commands/tablecmds.c

index b8837f26cb4fde82979d5295abc8068b362317e3..f9f594b44cf915cec4d2229cd9fb96be1c35b649 100644 (file)
@@ -2711,8 +2711,7 @@ MergeAttributes(List *columns, const List *supers, char relpersistence,
                                                        RelationGetRelationName(relation))));
 
                /* If existing rel is temp, it must belong to this session */
-               if (relation->rd_rel->relpersistence == RELPERSISTENCE_TEMP &&
-                       !relation->rd_islocaltemp)
+               if (RELATION_IS_OTHER_TEMP(relation))
                        ereport(ERROR,
                                        (errcode(ERRCODE_WRONG_OBJECT_TYPE),
                                         errmsg(!is_partition
@@ -17230,15 +17229,13 @@ ATExecAddInherit(Relation child_rel, RangeVar *parent, LOCKMODE lockmode)
                                                RelationGetRelationName(parent_rel))));
 
        /* If parent rel is temp, it must belong to this session */
-       if (parent_rel->rd_rel->relpersistence == RELPERSISTENCE_TEMP &&
-               !parent_rel->rd_islocaltemp)
+       if (RELATION_IS_OTHER_TEMP(parent_rel))
                ereport(ERROR,
                                (errcode(ERRCODE_WRONG_OBJECT_TYPE),
                                 errmsg("cannot inherit from temporary relation of another session")));
 
        /* Ditto for the child */
-       if (child_rel->rd_rel->relpersistence == RELPERSISTENCE_TEMP &&
-               !child_rel->rd_islocaltemp)
+       if (RELATION_IS_OTHER_TEMP(child_rel))
                ereport(ERROR,
                                (errcode(ERRCODE_WRONG_OBJECT_TYPE),
                                 errmsg("cannot inherit to temporary relation of another session")));
@@ -20309,15 +20306,13 @@ ATExecAttachPartition(List **wqueue, Relation rel, PartitionCmd *cmd,
                                                RelationGetRelationName(rel))));
 
        /* If the parent is temp, it must belong to this session */
-       if (rel->rd_rel->relpersistence == RELPERSISTENCE_TEMP &&
-               !rel->rd_islocaltemp)
+       if (RELATION_IS_OTHER_TEMP(rel))
                ereport(ERROR,
                                (errcode(ERRCODE_WRONG_OBJECT_TYPE),
                                 errmsg("cannot attach as partition of temporary relation of another session")));
 
        /* Ditto for the partition */
-       if (attachrel->rd_rel->relpersistence == RELPERSISTENCE_TEMP &&
-               !attachrel->rd_islocaltemp)
+       if (RELATION_IS_OTHER_TEMP(attachrel))
                ereport(ERROR,
                                (errcode(ERRCODE_WRONG_OBJECT_TYPE),
                                 errmsg("cannot attach temporary relation of another session as partition")));