Re: Needless additional partition check in INSERT?

Amit Langote <langote_amit_f8@lab.ntt.co.jp>

From: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
To: Alvaro Herrera <alvherre@2ndquadrant.com>, David Rowley <david.rowley@2ndquadrant.com>
Cc: Simon Riggs <simon@2ndquadrant.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Robert Haas <robertmhaas@gmail.com>, Amit Langote <amitlangote09@gmail.com>, Amit Khandekar <amitdkhan.pg@gmail.com>
Date: 2018-06-07T04:05:22Z
Lists: pgsql-hackers
On 2018/06/07 12:57, Alvaro Herrera wrote:
> On 2018-Jun-07, David Rowley wrote:
>> I'm personally not really for or against having the function. I agree
>> that it's slightly weird, but anyway, here's the patch. I'll leave it
>> up to you to which one you prefer, v3 or v4.
> 
> Hm I was thinking this new function would be companion to ExecConstrains
> (a fact I used in the name I proposed,) so it'd be in the same file
> (probably right after it.)

Or we could just not have a separate function and put the logic that
determines whether or not to check the partition constraint right before
the following piece of code in ExecConstraints

    if (check_partition_constraint && resultRelInfo->ri_PartitionCheck &&
        !ExecPartitionCheck(resultRelInfo, slot, estate))
        ExecPartitionCheckEmitError(resultRelInfo, slot, estate);

It seems that ExecConstraint receives all the information that's needed to
make that happen.

Thanks,
Amit



Commits

  1. Don't needlessly check the partition contraint twice