From: | Fabien COELHO <coelho(at)cri(dot)ensmp(dot)fr> |
---|---|
To: | Dilip Kumar <dilipbalaut(at)gmail(dot)com> |
Cc: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Asif Rehman <asifr(dot)rehman(at)gmail(dot)com>, PostgreSQL Developers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: pgbench - allow to create partitioned tables |
Date: | 2019-09-13 08:35:07 |
Message-ID: | alpine.DEB.2.21.1909131031250.20765@lancre |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hello Dilip,
> + /* For RANGE, we use open-ended partitions at the beginning and end */
> + if (p == 1)
> + sprintf(minvalue, "minvalue");
> + else
> + sprintf(minvalue, INT64_FORMAT, (p-1) * part_size + 1);
> +
> + if (p < partitions)
> + sprintf(maxvalue, INT64_FORMAT, p * part_size + 1);
> + else
> + sprintf(maxvalue, "maxvalue");
>
> I do not understand the reason why first partition need to be
> open-ended? Because we are clear that the minimum value of the aid is 1
> in pgbench_accout. So if you directly use sprintf(minvalue,
> INT64_FORMAT, (p-1) * part_size + 1); then also it will give 1 as
> minvalue for the first partition and that will be the right thing to do.
> Am I missing something here?
This is simply for the principle that any value allowed for the primary
key type has a corresponding partition, and also that it exercices these
special values.
It also probably reduces the cost of checking whether a value belongs to
the first partition because one test is removed, so there is a small
additional performance benefit beyond principle and coverage.
--
Fabien.
From | Date | Subject | |
---|---|---|---|
Next Message | Konstantin Knizhnik | 2019-09-13 08:49:16 | Re: Why overhead of SPI is so large? |
Previous Message | Michael Paquier | 2019-09-13 08:29:08 | Re: [PATCH][PROPOSAL] Add enum releation option type |