Thread: Use RELATION_IS_OTHER_TEMP where possible

Use RELATION_IS_OTHER_TEMP where possible

From
Junwang Zhao
Date:
Hi hackers,

While reviewing the Merge/Split partitions patch[0], I found
some places in tablecmds.c where RELATION_IS_OTHER_TEMP
can be used but not, such as:

/* If the parent is temp, it must belong to this session */
if (rel->rd_rel->relpersistence == RELPERSISTENCE_TEMP &&
!rel->rd_islocaltemp)
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)
ereport(ERROR,
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
errmsg("cannot attach temporary relation of another session as partition")));

All other files perform this check using RELATION_IS_OTHER_TEMP.
Should we update tablecmds.c to do the same for consistency?

[0] https://www.postgresql.org/message-id/884bcf9e-d6e3-4b0c-8dcb-7f2110070ac9@postgrespro.ru

-- 
Regards
Junwang Zhao



Re: Use RELATION_IS_OTHER_TEMP where possible

From
Junwang Zhao
Date:
Hi Nathan,

On Wed, Jun 11, 2025 at 12:30 AM Nathan Bossart
<nathandbossart@gmail.com> wrote:
>
> On Wed, Jun 11, 2025 at 12:07:35AM +0800, Junwang Zhao wrote:
> > All other files perform this check using RELATION_IS_OTHER_TEMP.
> > Should we update tablecmds.c to do the same for consistency?
>
> Seems like a good idea.

Thanks for the comment.

I have attached a patch with the proposed changes.

>
> --
> nathan



--
Regards
Junwang Zhao

Attachment

Re: Use RELATION_IS_OTHER_TEMP where possible

From
Ashutosh Bapat
Date:


On Wed, Jun 11, 2025 at 5:12 AM Junwang Zhao <zhjwpku@gmail.com> wrote:
Hi Nathan,

On Wed, Jun 11, 2025 at 12:30 AM Nathan Bossart
<nathandbossart@gmail.com> wrote:
>
> On Wed, Jun 11, 2025 at 12:07:35AM +0800, Junwang Zhao wrote:
> > All other files perform this check using RELATION_IS_OTHER_TEMP.
> > Should we update tablecmds.c to do the same for consistency?
>
> Seems like a good idea.

Thanks for the comment.

I have attached a patch with the proposed changes.

LGTM. I looked at other instances of is_localtemp, but none of them have (relation)->rd_rel->relpersistence == RELPERSISTENCE_TEMP there. Your patch has covered all the existing ones. 

--
Best Wishes,
Ashutosh Bapat

Re: Use RELATION_IS_OTHER_TEMP where possible

From
Junwang Zhao
Date:
Hi Ashutosh,

On Wed, Jun 11, 2025 at 7:11 PM Ashutosh Bapat
<ashutosh.bapat.oss@gmail.com> wrote:
>
>
>
> On Wed, Jun 11, 2025 at 5:12 AM Junwang Zhao <zhjwpku@gmail.com> wrote:
>>
>> Hi Nathan,
>>
>> On Wed, Jun 11, 2025 at 12:30 AM Nathan Bossart
>> <nathandbossart@gmail.com> wrote:
>> >
>> > On Wed, Jun 11, 2025 at 12:07:35AM +0800, Junwang Zhao wrote:
>> > > All other files perform this check using RELATION_IS_OTHER_TEMP.
>> > > Should we update tablecmds.c to do the same for consistency?
>> >
>> > Seems like a good idea.
>>
>> Thanks for the comment.
>>
>> I have attached a patch with the proposed changes.
>
>
> LGTM. I looked at other instances of is_localtemp, but none of them have (relation)->rd_rel->relpersistence ==
RELPERSISTENCE_TEMPthere. Your patch has covered all the existing ones. 

Thank you for the review and the additional check.

I have created a cf entry to track this.

https://commitfest.postgresql.org/patch/5815/

>
> --
> Best Wishes,
> Ashutosh Bapat



--
Regards
Junwang Zhao



Re: Use RELATION_IS_OTHER_TEMP where possible

From
Junwang Zhao
Date:
On Fri, Jun 13, 2025 at 3:53 AM Nathan Bossart <nathandbossart@gmail.com> wrote:
>
> On Wed, Jun 11, 2025 at 07:35:39PM +0800, Junwang Zhao wrote:
> > I have created a cf entry to track this.
> >
> > https://commitfest.postgresql.org/patch/5815/
>
> I'll plan on committing this once v19 development begins.

Sure, I just checked the CF entry, thanks for taking care of it.

>
> --
> nathan



--
Regards
Junwang Zhao