Re: Needless additional partition check in INSERT?

From: David Rowley <david(dot)rowley(at)2ndquadrant(dot)com>
To: Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp>
Cc: Amit Khandekar <amitdkhan(dot)pg(at)gmail(dot)com>, Simon Riggs <simon(at)2ndquadrant(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Robert Haas <robertmhaas(at)gmail(dot)com>, Amit Langote <amitlangote09(at)gmail(dot)com>
Subject: Re: Needless additional partition check in INSERT?
Date: 2018-05-14 05:00:34
Message-ID: CAKJS1f8zacEwy4b+Nn45+TMtOS+QVgptZd2d2NvsapaV=cQriQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 14 May 2018 at 16:49, Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp> wrote:
> On 2018/05/11 18:43, Amit Khandekar wrote:
>> This looks better (it will avoid unnecessary ExecConstraints() call) :
>>
>> if (resultRelInfo->ri_PartitionRoot == NULL ||
>> (resultRelInfo->ri_TrigDesc &&
>> resultRelInfo->ri_TrigDesc->trig_insert_before_row))
>> check_partition_constr = resultRelInfo->ri_PartitionCheck;
>
> You'd be assigning a List pointer to a bool variable with this. Maybe you
> meant:
>
> check_partition_constr = (resultRelInfo->ri_PartitionCheck != NIL);

I also noticed that. Apart from that, I think your version is correct,
but I just don't think it's quite as easy to understand. Although
that's certainly debatable.

For now, I'll refrain from writing v4 unless there's some consensus
that this is a better way to write it.

--
David Rowley http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Chapman Flack 2018-05-14 05:12:47 SPI/backend equivalent of extended-query Describe(statement)?
Previous Message David Rowley 2018-05-14 04:57:45 Incorrect comment in get_partition_dispatch_recurse