Re: speeding up planning with partitions - Mailing list pgsql-hackers

From Amit Langote
Subject Re: speeding up planning with partitions
Date
Msg-id 5d00eb35-375d-0672-0626-96bdb86829d0@lab.ntt.co.jp
Whole thread Raw
In response to RE: speeding up planning with partitions  ("Imai, Yoshikazu" <imai.yoshikazu@jp.fujitsu.com>)
Responses Re: speeding up planning with partitions
RE: speeding up planning with partitions
List pgsql-hackers
Imai-san,

Thanks for the comments.

On 2019/02/08 13:44, Imai, Yoshikazu wrote:
> 3.
> 0001: line 1919-1920
> 
> -        case CONSTRAINT_EXCLUSION_ON:
> -            break;                /* always try to exclude */
> 
> CONSTRAINT_EXCLUSION_ON is no longer used, so should we remove it also from guc parameters?

Well, we haven't removed the "on" setting itself.

> 4.
> 0001:
> 
> Can we remove enum InheritanceKind which is no longer used?

That we can do.

> I also see the patch from a perspective of separating codes from 0001 which are not essential of Overhaul inheritance
update/deleteplanning. Although almost all of codes are related each other, but I found below two things can be moved
toanother patch.
 
> 
> ---
> 0001: line 550-608
> 
> This section seems to be just refinement of set_append_rel_size().
> So can we separate this from 0001 to another patch?
> 
> ---
> 0001: line 812-841, 940-947, 1525-1536, 1938-1947 
> 
> These codes are related to removement of InheritanceKind from relation_excluded_by_constraints(), so I think it is
somethinglike cleaning of unneeded codes. Can we separate this to patch as some-code-clearnups-of-0001.patch? Of
course,we can do that only if removing of these codes from 0001 would not bother success of "make check" of 0001.
 
> I also think that what I pointed out at above 3. and 4. can also be included in some-code-clearnups-of-0001.patch.

Okay, I've broken down those changes into separate patches, so that
cleanup hunks are not fixed with other complex changes.

0001 is now a patch to remove duplicate code from set_append_rel_size.  It
combines multiple blocks that have the same body doing
set_dummy_rel_pathlist().

0002 is the "overhaul inherited update/delete planning"

0003 is a cleanup patch that gets rid of some code that is rendered
useless due to 0002 (partitioned tables no longer use constraint exclusion)

I think 0001 can be committed on its own.  0002+0003 can be committed
together.

0004-0006 are the patches that were previously 0002-0004.

The new version also contains a change to what was previously 0001 patch
(attached 0002) -- eq_classes is now copied right when the child subroot
is created, that is, in create_inherited_target_child_root(), no longer in
the loop in set_inherit_target_rel_sizes().

Thanks,
Amit

Attachment

pgsql-hackers by date:

Previous
From: Rushabh Lathia
Date:
Subject: Re: ON SELECT rule on a table without columns
Next
From: Konstantin Knizhnik
Date:
Subject: Re: libpq compression