public inbox for [email protected]help / color / mirror / Atom feed
pgsql: Reject degenerate SPLIT PARTITION with DEFAULT partition 2+ messages / 1 participants [nested] [flat]
* pgsql: Reject degenerate SPLIT PARTITION with DEFAULT partition @ 2026-05-20 11:45 Alexander Korotkov <[email protected]> 0 siblings, 0 replies; 2+ messages in thread From: Alexander Korotkov @ 2026-05-20 11:45 UTC (permalink / raw) To: [email protected] Reject degenerate SPLIT PARTITION with DEFAULT partition ALTER TABLE ... SPLIT PARTITION allows a DEFAULT partition to be created as one of the replacement partitions when the parent table does not already have one. However, it should not allow the degenerate case where a non-DEFAULT partition keeps exactly the same bound as the split partition and the command merely adds a DEFAULT partition through the SPLIT PARTITION path. Detect that case by comparing the bound of the split partition with the bound of the only non-DEFAULT replacement partition, and raise an error when they are the same. Users should add a DEFAULT partition directly with CREATE TABLE ... PARTITION OF ... DEFAULT or ALTER TABLE ... ATTACH PARTITION ... DEFAULT instead. Author: Chao Li <[email protected]> Reviewed-by: Alexander Korotkov <[email protected]> Discussion: https://postgr.es/m/[email protected] Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/d8af73010033cb8ad6c941942d6b03d74d7e4f7e Modified Files -------------- src/backend/partitioning/partbounds.c | 150 ++++++++++++++++++++++++++ src/test/regress/expected/partition_split.out | 59 ++++++++++ src/test/regress/sql/partition_split.sql | 52 +++++++++ 3 files changed, 261 insertions(+) ^ permalink raw reply [nested|flat] 2+ messages in thread
* pgsql: Reject degenerate SPLIT PARTITION with DEFAULT partition @ 2026-05-25 08:59 Alexander Korotkov <[email protected]> 0 siblings, 0 replies; 2+ messages in thread From: Alexander Korotkov @ 2026-05-25 08:59 UTC (permalink / raw) To: [email protected] Reject degenerate SPLIT PARTITION with DEFAULT partition ALTER TABLE ... SPLIT PARTITION allows a DEFAULT partition to be created as one of the replacement partitions when the parent table does not already have one. However, it should not allow the degenerate case where a non-DEFAULT partition keeps exactly the same bound as the split partition and the command merely adds a DEFAULT partition through the SPLIT PARTITION path. Detect that case by comparing the bound of the split partition with the bound of the only non-DEFAULT replacement partition, and raise an error when they are the same. Users should add a DEFAULT partition directly with CREATE TABLE ... PARTITION OF ... DEFAULT or ALTER TABLE ... ATTACH PARTITION ... DEFAULT instead. The comparison goes through the partition operator family rather than byte equality so that values which are binary-different but compare equal under the partition key's comparator are treated as the same bound. The corresponding regression test uses a float8 LIST partition with -0.0 and 0.0 -- they have different bit patterns but are equal under float8 -- to verify that a datumIsEqual()-based check would let the degenerate split through while the partsupfunc-based check correctly rejects it. Author: Chao Li <[email protected]> Reviewed-by: Alexander Korotkov <[email protected]> Discussion: https://postgr.es/m/[email protected] Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/e64a9ba2b4fcd8956369ac6e2146ac816e590df2 Modified Files -------------- src/backend/partitioning/partbounds.c | 150 ++++++++++++++++++++++++++ src/test/regress/expected/partition_split.out | 58 ++++++++++ src/test/regress/sql/partition_split.sql | 51 +++++++++ 3 files changed, 259 insertions(+) ^ permalink raw reply [nested|flat] 2+ messages in thread
end of thread, other threads:[~2026-05-25 08:59 UTC | newest] Thread overview: 2+ messages (download: mbox mbox.gz follow: Atom feed) -- links below jump to the message on this page -- 2026-05-20 11:45 pgsql: Reject degenerate SPLIT PARTITION with DEFAULT partition Alexander Korotkov <[email protected]> 2026-05-25 08:59 pgsql: Reject degenerate SPLIT PARTITION with DEFAULT partition Alexander Korotkov <[email protected]>
This inbox is served by agora; see mirroring instructions for how to clone and mirror all data and code used for this inbox