Hi, Chao Li!
Thank you for the bug report, test script, and fix!
>> 0. A bound-overlap bug
I think this fix should be applied without much discussion:
------------------------------------------------------------------------
diff --git a/src/backend/partitioning/partbounds.c
b/src/backend/partitioning/partbounds.c
index 9b4277a4987..8b8f90569fe 100644
--- a/src/backend/partitioning/partbounds.c
+++ b/src/backend/partitioning/partbounds.c
@@ -5419,7 +5419,8 @@ check_partition_bounds_for_split_range(Relation
parent,
"ALTER
TABLE ... SPLIT PARTITION"),
parser_errposition(pstate, exprLocation((Node *) datum)));
}
- else
+
+ if (last)
{
PartitionRangeBound *split_upper;
------------------------------------------------------------------------
>> 1. The documentation about splitting with a DEFAULT partition is a
bit unclear
>> ...
>> 2. I found this hint message confusing:
>> ...
Unfortunately, I cannot comment on these points; it would be good to get
the opinion of people who know English well.
>> 3. SPLIT PARTITION currently provides another way to add a DEFAULT
partition:
>> ...
Agreed, this is another way to add a DEFAULT partition. But I'm not sure
that this way should be disabled (using the special function
check_split_partition_not_same_bound)...
Maybe it's better to keep it "as is"?
--
With best regards,
Dmitry Koval
Postgres Professional: http://postgrespro.com