Hello Atsushi & Melih Thank you both for your further feedback.
On Thu, 29 Aug 2024 at 21:31, Melih Mutlu <m.melihmu...@gmail.com> wrote: > I believe moving "[ ONLY ]" to the definitions of table_and_columns below, as > you did with "[ * ]", might be better to be consistent with other places (see > [1]) Agreed. I have updated this. >> + if ((options & VACOPT_VACUUM) && is_partitioned_table && ! >> include_children) > > There are also some issues with coding conventions in some places (e.g. the > space between "!" and "include_children" abode). I think running pgindent > would resolve such issue in most places. I fixed that extra space, and then ran pgindent. It did not report any more problems. On Fri, 30 Aug 2024 at 16:45, torikoshia <torikos...@oss.nttdata.com> wrote: > -- https://www.postgresql.org/docs/devel/progress-reporting.html > > Note that when ANALYZE is run on a partitioned table, all of its > > partitions are also recursively analyzed. > > Should we also note this is the default, i.e. not using ONLY option > behavior here? > -- https://www.postgresql.org/docs/devel/ddl-partitioning.html > > If you are using manual VACUUM or ANALYZE commands, don't forget that > > you need to run them on each child table individually. A command like: > > > > ANALYZE measurement; > > will only process the root table. > > This part also should be modified, shouldn't it? Agreed. I have updated both of these. > When running ANALYZE VERBOSE ONLY on a partition table, the INFO message > is like this: > > =# ANALYZE VERBOSE ONLY only_parted; > INFO: analyzing "public.only_parted" inheritance tree > > I may be wrong, but 'inheritance tree' makes me feel it includes child > tables. > Removing 'inheritance tree' and just describing the table name as below > might be better: > > INFO: analyzing "public.only_parted" I'm not sure about that one. If I understand the source correctly, that particular progress message tells the user that the system is gathering stats from the inheritance tree in order to update the stats of the given table, not that it is actually updating the stats of the descendant tables. When analyzing an inheritance structure with the ONLY you see something like this: => ANALYZE VERBOSE ONLY only_inh_parent; INFO: analyzing "public.only_inh_parent" INFO: "only_inh_parent": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows INFO: analyzing "public.only_inh_parent" inheritance tree INFO: "only_inh_child": scanned 1 of 1 pages, containing 3 live rows and 0 dead rows; 3 rows in sample, 3 estimated total rows ANALYZE The reason you don't see the first one for partitioned tables is that it corresponds to sampling the contents of the parent table itself, which in the case of a partitioned table is guaranteed to be empty, so it is skipped. I agree the text could be confusing, and in fact is probably confusing even today without the ONLY keyword, but I'm not sure what would be the best wording to cover both the partitioned and inherited cases. v3 of the patch is attached, and I will submit it to the commitfest.
v3-0001-Implementation-of-the-ONLY-feature.patch
Description: Binary data