public inbox for [email protected]  
help / color / mirror / Atom feed
Add missing period to HINT messages
15+ messages / 7 participants
[nested] [flat]

* Add missing period to HINT messages
@ 2026-04-08 23:30  Peter Smith <[email protected]>
  0 siblings, 1 reply; 15+ messages in thread

From: Peter Smith @ 2026-04-08 23:30 UTC (permalink / raw)
  To: PostgreSQL Hackers <[email protected]>

Hi,

According to the error message style guide [1], "Detail and hint
messages: Use complete sentences, and end each with a period."

I found there is a small group of HINT messages not following that period rule.

PSA a patch that fixes the missing period. In passing, also fixed a
typo in a hint message /msut/must/.

~~~

On further inspection, lots of these affected messages don't even seem
grammatically correct to me.

I did not modify them, but here are examples of what I mean.

e.g.
"ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have
sub-partitions."
/don't have/that don't have/

e.g.
"ALTER TABLE ... SPLIT PARTITION can only split partitions don't have
sub-partitions."
/don't have/that don't have/

e.g.
"To split DEFAULT partition one of the new partition must be DEFAULT."
missing word? -- "To split the DEFAULT partition"
should be plural? -- "one of the new partitions"

e.g.
"%s require combined bounds of new partitions must exactly match the
bound of the split partition."
/require/requires/ ?
/match the bound/match the bounds/

======
[1] https://www.postgresql.org/docs/devel/error-style-guide.html#ERROR-STYLE-GUIDE-GRAMMAR-PUNCTUATION

Kind Regards,
Peter Smith.
Fujitsu Australia


Attachments:

  [application/octet-stream] v1-0001-Add-missing-period-to-HINT-messages.patch (17.7K, 2-v1-0001-Add-missing-period-to-HINT-messages.patch)
  download | inline diff:
From 14b39e0c5c6735f1b513e5d3549ea0ece77a7040 Mon Sep 17 00:00:00 2001
From: Peter Smith <[email protected]>
Date: Thu, 9 Apr 2026 09:11:59 +1000
Subject: [PATCH v1] Add missing period to HINT messages

---
 src/backend/parser/parse_utilcmd.c            | 14 +++++++-------
 src/backend/partitioning/partbounds.c         | 12 ++++++------
 src/test/regress/expected/partition_merge.out | 12 ++++++------
 src/test/regress/expected/partition_split.out | 18 +++++++++---------
 src/test/regress/sql/partition_split.sql      |  2 +-
 5 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/src/backend/parser/parse_utilcmd.c b/src/backend/parser/parse_utilcmd.c
index 347f0259e5d..37071502a9f 100644
--- a/src/backend/parser/parse_utilcmd.c
+++ b/src/backend/parser/parse_utilcmd.c
@@ -3536,8 +3536,8 @@ checkPartition(Relation rel, Oid partRelOid, bool isMerge)
 				errcode(ERRCODE_WRONG_OBJECT_TYPE),
 				errmsg("\"%s\" is not a table", RelationGetRelationName(partRel)),
 				isMerge
-				? errhint("ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions")
-				: errhint("ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions"));
+				? errhint("ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.")
+				: errhint("ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions."));
 
 	if (!partRel->rd_rel->relispartition)
 		ereport(ERROR,
@@ -3545,8 +3545,8 @@ checkPartition(Relation rel, Oid partRelOid, bool isMerge)
 				errmsg("\"%s\" is not a partition of partitioned table \"%s\"",
 					   RelationGetRelationName(partRel), RelationGetRelationName(rel)),
 				isMerge
-				? errhint("ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions")
-				: errhint("ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions"));
+				? errhint("ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.")
+				: errhint("ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions."));
 
 	if (get_partition_parent(partRelOid, false) != RelationGetRelid(rel))
 		ereport(ERROR,
@@ -3554,8 +3554,8 @@ checkPartition(Relation rel, Oid partRelOid, bool isMerge)
 				errmsg("relation \"%s\" is not a partition of relation \"%s\"",
 					   RelationGetRelationName(partRel), RelationGetRelationName(rel)),
 				isMerge
-				? errhint("ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions")
-				: errhint("ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions"));
+				? errhint("ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.")
+				: errhint("ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions."));
 
 	table_close(partRel, NoLock);
 }
@@ -3647,7 +3647,7 @@ transformPartitionCmdForSplit(CreateStmtContext *cxt, PartitionCmd *partcmd)
 				errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
 				errmsg("can not split DEFAULT partition \"%s\"",
 					   get_rel_name(splitPartOid)),
-				errhint("To split DEFAULT partition one of the new partition msut be DEFAULT"),
+				errhint("To split DEFAULT partition one of the new partition must be DEFAULT."),
 				parser_errposition(cxt->pstate, ((SinglePartitionSpec *) linitial(splitlist))->name->location));
 
 	/*
diff --git a/src/backend/partitioning/partbounds.c b/src/backend/partitioning/partbounds.c
index f867d1b75a5..5afa781f086 100644
--- a/src/backend/partitioning/partbounds.c
+++ b/src/backend/partitioning/partbounds.c
@@ -5405,7 +5405,7 @@ check_partition_bounds_for_split_range(Relation parent,
 							errmsg("lower bound of partition \"%s\" is not equal to lower bound of split partition \"%s\"",
 								   relname,
 								   get_rel_name(splitPartOid)),
-							errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition",
+							errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition.",
 									"ALTER TABLE ... SPLIT PARTITION"),
 							parser_errposition(pstate, exprLocation((Node *) datum)));
 			}
@@ -5415,7 +5415,7 @@ check_partition_bounds_for_split_range(Relation parent,
 						errmsg("lower bound of partition \"%s\" is less than lower bound of split partition \"%s\"",
 							   relname,
 							   get_rel_name(splitPartOid)),
-						errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition",
+						errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition.",
 								"ALTER TABLE ... SPLIT PARTITION"),
 						parser_errposition(pstate, exprLocation((Node *) datum)));
 		}
@@ -5447,7 +5447,7 @@ check_partition_bounds_for_split_range(Relation parent,
 							errmsg("upper bound of partition \"%s\" is not equal to upper bound of split partition \"%s\"",
 								   relname,
 								   get_rel_name(splitPartOid)),
-							errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition",
+							errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition.",
 									"ALTER TABLE ... SPLIT PARTITION"),
 							parser_errposition(pstate, exprLocation((Node *) datum)));
 			}
@@ -5457,7 +5457,7 @@ check_partition_bounds_for_split_range(Relation parent,
 						errmsg("upper bound of partition \"%s\" is greater than upper bound of split partition \"%s\"",
 							   relname,
 							   get_rel_name(splitPartOid)),
-						errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition",
+						errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition.",
 								"ALTER TABLE ... SPLIT PARTITION"),
 						parser_errposition(pstate, exprLocation((Node *) datum)));
 		}
@@ -5653,7 +5653,7 @@ check_parent_values_in_new_partitions(Relation parent,
 				errmsg("new partitions combined partition bounds do not contain value (%s) but split partition \"%s\" does",
 					   "NULL",
 					   get_rel_name(partOid)),
-				errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition",
+				errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition.",
 						"ALTER TABLE ... SPLIT PARTITION"));
 
 	/*
@@ -5696,7 +5696,7 @@ check_parent_values_in_new_partitions(Relation parent,
 				errmsg("new partitions combined partition bounds do not contain value (%s) but split partition \"%s\" does",
 					   deparse_expression((Node *) notFoundVal, NIL, false, false),
 					   get_rel_name(partOid)),
-				errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition",
+				errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition.",
 						"ALTER TABLE ... SPLIT PARTITION"));
 	}
 }
diff --git a/src/test/regress/expected/partition_merge.out b/src/test/regress/expected/partition_merge.out
index 925fe4f570a..883110e25d9 100644
--- a/src/test/regress/expected/partition_merge.out
+++ b/src/test/regress/expected/partition_merge.out
@@ -29,7 +29,7 @@ LINE 1: ...e MERGE PARTITIONS (sales_feb2022, sales_mar2022, sales_feb2...
 -- ERROR:  "sales_apr2022" is not a table
 ALTER TABLE sales_range MERGE PARTITIONS (sales_feb2022, sales_mar2022, sales_apr2022) INTO sales_feb_mar_apr2022;
 ERROR:  "sales_apr2022" is not a table
-HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions
+HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.
 -- ERROR:  can not merge partition "sales_mar2022" together with partition "sales_jan2022"
 -- DETAIL:  lower bound of partition "sales_mar2022" is not equal to the upper bound of partition "sales_jan2022"
 -- (space between sections sales_jan2022 and sales_mar2022)
@@ -483,15 +483,15 @@ CREATE TABLE sales_external2 (vch VARCHAR(5));
 -- ERROR:  "sales_external" is not a partition of partitioned table "sales_list"
 ALTER TABLE sales_list MERGE PARTITIONS (sales_west, sales_east, sales_external) INTO sales_all;
 ERROR:  "sales_external" is not a partition of partitioned table "sales_list"
-HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions
+HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.
 -- ERROR:  "sales_external2" is not a partition of partitioned table "sales_list"
 ALTER TABLE sales_list MERGE PARTITIONS (sales_west, sales_east, sales_external2) INTO sales_all;
 ERROR:  "sales_external2" is not a partition of partitioned table "sales_list"
-HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions
+HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.
 -- ERROR:  relation "sales_nord2" is not a partition of relation "sales_list"
 ALTER TABLE sales_list MERGE PARTITIONS (sales_west, sales_nord2, sales_east) INTO sales_all;
 ERROR:  relation "sales_nord2" is not a partition of relation "sales_list"
-HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions
+HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.
 DROP TABLE sales_external2;
 DROP TABLE sales_external;
 DROP TABLE sales_list2;
@@ -633,11 +633,11 @@ CREATE TABLE t3 (i int, t text);
 -- ERROR:  relation "t1p1" is not a partition of relation "t2"
 ALTER TABLE t2 MERGE PARTITIONS (t1p1, t2pa) INTO t2p;
 ERROR:  relation "t1p1" is not a partition of relation "t2"
-HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions
+HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.
 -- ERROR:  "t3" is not a partition of partitioned table "t2"
 ALTER TABLE t2 MERGE PARTITIONS (t2pa, t3) INTO t2p;
 ERROR:  "t3" is not a partition of partitioned table "t2"
-HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions
+HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.
 DROP TABLE t3;
 DROP TABLE t2;
 DROP TABLE t1;
diff --git a/src/test/regress/expected/partition_split.out b/src/test/regress/expected/partition_split.out
index 13ca733f9fa..dbcb9a4f6b7 100644
--- a/src/test/regress/expected/partition_split.out
+++ b/src/test/regress/expected/partition_split.out
@@ -57,7 +57,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
 ERROR:  lower bound of partition "sales_feb2022" is not equal to lower bound of split partition "sales_feb_mar_apr2022"
 LINE 2:   (PARTITION sales_feb2022 FOR VALUES FROM ('2022-01-01') TO...
                                                     ^
-HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 -- ERROR:  partition with name "sales_feb_mar_apr2022" is already used
 -- (We can create partition with the same name as split partition, but can't create two partitions with the same name)
 ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
@@ -100,7 +100,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
 ERROR:  upper bound of partition "sales_apr2022" is not equal to upper bound of split partition "sales_feb_mar_apr2022"
 LINE 4: ... sales_apr2022 FOR VALUES FROM ('2022-04-01') TO ('2022-06-0...
                                                              ^
-HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 -- ERROR:  can not split to partition "sales_mar2022" together with partition "sales_feb2022"
 ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
   (PARTITION sales_feb2022 FOR VALUES FROM ('2022-02-01') TO ('2022-03-01'),
@@ -122,7 +122,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
 ERROR:  lower bound of partition "sales_feb2022" is not equal to lower bound of split partition "sales_feb_mar_apr2022"
 LINE 2:   (PARTITION sales_feb2022 FOR VALUES FROM ('2022-02-02') TO...
                                                     ^
-HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 -- Check the source partition not in the search path
 SET search_path = partition_split_schema2, public;
 ALTER TABLE partition_split_schema.sales_range
@@ -159,7 +159,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
 ERROR:  upper bound of partition "sales_apr2022" is not equal to upper bound of split partition "sales_feb_mar_apr2022"
 LINE 4: ... sales_apr2022 FOR VALUES FROM ('2022-04-01') TO ('2022-06-0...
                                                              ^
-HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 DROP TABLE sales_range;
 --
 -- Add rows into partitioned table then split partition
@@ -509,7 +509,7 @@ LINE 3:    PARTITION sales_error FOR VALUES FROM ('2021-12-01') TO (...
 DETAIL:  lower bound of partition "sales_error" is not equal to the upper bound of partition "sales_dec2021"
 HINT:  ALTER TABLE ... SPLIT PARTITION requires the partition bounds to be adjacent.
 -- ERROR:  can not split DEFAULT partition "sales_others"
--- HINT:  To split DEFAULT partition one of the new partition msut be DEFAULT
+-- HINT:  To split DEFAULT partition one of the new partition must be DEFAULT.
 ALTER TABLE sales_range SPLIT PARTITION sales_others INTO
   (PARTITION sales_dec2021 FOR VALUES FROM ('2021-12-01') TO ('2022-01-01'),
    PARTITION sales_jan2022 FOR VALUES FROM ('2022-01-01') TO ('2022-02-01'),
@@ -517,7 +517,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_others INTO
 ERROR:  can not split DEFAULT partition "sales_others"
 LINE 2:   (PARTITION sales_dec2021 FOR VALUES FROM ('2021-12-01') TO...
                      ^
-HINT:  To split DEFAULT partition one of the new partition msut be DEFAULT
+HINT:  To split DEFAULT partition one of the new partition must be DEFAULT.
 -- no error: bounds of sales_noerror are between sales_dec2021 and sales_feb2022
 ALTER TABLE sales_range SPLIT PARTITION sales_others INTO
   (PARTITION sales_dec2021 FOR VALUES FROM ('2021-12-01') TO ('2022-01-01'),
@@ -925,7 +925,7 @@ ALTER TABLE sales_list SPLIT PARTITION sales_all INTO
    PARTITION sales_east FOR VALUES IN ('Beijing', 'Delhi', 'Vladivostok'),
    PARTITION sales_central FOR VALUES IN ('Warsaw', 'Berlin', 'Kyiv'));
 ERROR:  new partitions combined partition bounds do not contain value (NULL) but split partition "sales_all" does
-HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 -- ERROR:  new partitions combined partition bounds do not contain value ('Kyiv'::character varying(20)) but split partition "sales_all" does
 -- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
 ALTER TABLE sales_list SPLIT PARTITION sales_all INTO
@@ -933,7 +933,7 @@ ALTER TABLE sales_list SPLIT PARTITION sales_all INTO
    PARTITION sales_east FOR VALUES IN ('Beijing', 'Delhi', 'Vladivostok'),
    PARTITION sales_central FOR VALUES IN ('Warsaw', 'Berlin', NULL));
 ERROR:  new partitions combined partition bounds do not contain value ('Kyiv'::character varying(20)) but split partition "sales_all" does
-HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 -- ERROR  DEFAULT partition should be one
 ALTER TABLE sales_list SPLIT PARTITION sales_all INTO
   (PARTITION sales_west FOR VALUES IN ('Lisbon', 'New York', 'Madrid'),
@@ -1207,7 +1207,7 @@ ALTER TABLE t2 SPLIT PARTITION t1pa INTO
    (PARTITION t2a FOR VALUES FROM ('A') TO ('B'),
     PARTITION t2b FOR VALUES FROM ('B') TO ('C'));
 ERROR:  relation "t1pa" is not a partition of relation "t2"
-HINT:  ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions
+HINT:  ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions.
 DROP TABLE t2;
 DROP TABLE t1;
 --
diff --git a/src/test/regress/sql/partition_split.sql b/src/test/regress/sql/partition_split.sql
index 37c6d730840..3f97adc6767 100644
--- a/src/test/regress/sql/partition_split.sql
+++ b/src/test/regress/sql/partition_split.sql
@@ -331,7 +331,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_others INTO
    PARTITION sales_others DEFAULT);
 
 -- ERROR:  can not split DEFAULT partition "sales_others"
--- HINT:  To split DEFAULT partition one of the new partition msut be DEFAULT
+-- HINT:  To split DEFAULT partition one of the new partition must be DEFAULT.
 ALTER TABLE sales_range SPLIT PARTITION sales_others INTO
   (PARTITION sales_dec2021 FOR VALUES FROM ('2021-12-01') TO ('2022-01-01'),
    PARTITION sales_jan2022 FOR VALUES FROM ('2022-01-01') TO ('2022-02-01'),
-- 
2.47.3



^ permalink  raw  reply  [nested|flat] 15+ messages in thread

* Re: Add missing period to HINT messages
@ 2026-04-09 02:09  Chao Li <[email protected]>
  parent: Peter Smith <[email protected]>
  0 siblings, 1 reply; 15+ messages in thread

From: Chao Li @ 2026-04-09 02:09 UTC (permalink / raw)
  To: Peter Smith <[email protected]>; +Cc: PostgreSQL Hackers <[email protected]>



> On Apr 9, 2026, at 07:30, Peter Smith <[email protected]> wrote:
> 
> Hi,
> 
> According to the error message style guide [1], "Detail and hint
> messages: Use complete sentences, and end each with a period."
> 
> I found there is a small group of HINT messages not following that period rule.
> 
> PSA a patch that fixes the missing period. In passing, also fixed a
> typo in a hint message /msut/must/.
> 
> ~~~
> 
> On further inspection, lots of these affected messages don't even seem
> grammatically correct to me.
> 
> I did not modify them, but here are examples of what I mean.
> 
> e.g.
> "ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have
> sub-partitions."
> /don't have/that don't have/
> 
> e.g.
> "ALTER TABLE ... SPLIT PARTITION can only split partitions don't have
> sub-partitions."
> /don't have/that don't have/
> 
> e.g.
> "To split DEFAULT partition one of the new partition must be DEFAULT."
> missing word? -- "To split the DEFAULT partition"
> should be plural? -- "one of the new partitions"
> 
> e.g.
> "%s require combined bounds of new partitions must exactly match the
> bound of the split partition."
> /require/requires/ ?
> /match the bound/match the bounds/
> 
> ======
> [1] https://www.postgresql.org/docs/devel/error-style-guide.html#ERROR-STYLE-GUIDE-GRAMMAR-PUNCTUATION
> 
> Kind Regards,
> Peter Smith.
> Fujitsu Australia
> <v1-0001-Add-missing-period-to-HINT-messages.patch>

LGTM.

BTW, errdetail should follow the same style, and I see some detail messages miss periods, maybe this patch can include those as well.

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/









^ permalink  raw  reply  [nested|flat] 15+ messages in thread

* Re: Add missing period to HINT messages
@ 2026-04-09 03:24  Peter Smith <[email protected]>
  parent: Chao Li <[email protected]>
  0 siblings, 1 reply; 15+ messages in thread

From: Peter Smith @ 2026-04-09 03:24 UTC (permalink / raw)
  To: Chao Li <[email protected]>; +Cc: PostgreSQL Hackers <[email protected]>

On Thu, Apr 9, 2026 at 12:09 PM Chao Li <[email protected]> wrote:
>
>
>
> > On Apr 9, 2026, at 07:30, Peter Smith <[email protected]> wrote:
> >
> > Hi,
> >
> > According to the error message style guide [1], "Detail and hint
> > messages: Use complete sentences, and end each with a period."
> >
> > I found there is a small group of HINT messages not following that period rule.
> >
> > PSA a patch that fixes the missing period. In passing, also fixed a
> > typo in a hint message /msut/must/.
> >
> > ~~~
> >
> > On further inspection, lots of these affected messages don't even seem
> > grammatically correct to me.
> >
> > I did not modify them, but here are examples of what I mean.
> >
> > e.g.
> > "ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have
> > sub-partitions."
> > /don't have/that don't have/
> >
> > e.g.
> > "ALTER TABLE ... SPLIT PARTITION can only split partitions don't have
> > sub-partitions."
> > /don't have/that don't have/
> >
> > e.g.
> > "To split DEFAULT partition one of the new partition must be DEFAULT."
> > missing word? -- "To split the DEFAULT partition"
> > should be plural? -- "one of the new partitions"
> >
> > e.g.
> > "%s require combined bounds of new partitions must exactly match the
> > bound of the split partition."
> > /require/requires/ ?
> > /match the bound/match the bounds/
> >
> > ======
> > [1] https://www.postgresql.org/docs/devel/error-style-guide.html#ERROR-STYLE-GUIDE-GRAMMAR-PUNCTUATION
> >
> > Kind Regards,
> > Peter Smith.
> > Fujitsu Australia
> > <v1-0001-Add-missing-period-to-HINT-messages.patch>
>
> LGTM.
>
> BTW, errdetail should follow the same style, and I see some detail messages miss periods, maybe this patch can include those as well.
>

Yep. It is already under way. I will post the equivalent errdetail
patch shortly. (as soon as it passes running make- check-world).

======
Kind Regards,
Peter Smith.
Fujitsu Australia





^ permalink  raw  reply  [nested|flat] 15+ messages in thread

* Re: Add missing period to HINT messages
@ 2026-04-09 03:33  Chao Li <[email protected]>
  parent: Peter Smith <[email protected]>
  0 siblings, 1 reply; 15+ messages in thread

From: Chao Li @ 2026-04-09 03:33 UTC (permalink / raw)
  To: Peter Smith <[email protected]>; +Cc: PostgreSQL Hackers <[email protected]>



> On Apr 9, 2026, at 11:24, Peter Smith <[email protected]> wrote:
> 
> On Thu, Apr 9, 2026 at 12:09 PM Chao Li <[email protected]> wrote:
>> 
>> 
>> 
>>> On Apr 9, 2026, at 07:30, Peter Smith <[email protected]> wrote:
>>> 
>>> Hi,
>>> 
>>> According to the error message style guide [1], "Detail and hint
>>> messages: Use complete sentences, and end each with a period."
>>> 
>>> I found there is a small group of HINT messages not following that period rule.
>>> 
>>> PSA a patch that fixes the missing period. In passing, also fixed a
>>> typo in a hint message /msut/must/.
>>> 
>>> ~~~
>>> 
>>> On further inspection, lots of these affected messages don't even seem
>>> grammatically correct to me.
>>> 
>>> I did not modify them, but here are examples of what I mean.
>>> 
>>> e.g.
>>> "ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have
>>> sub-partitions."
>>> /don't have/that don't have/
>>> 
>>> e.g.
>>> "ALTER TABLE ... SPLIT PARTITION can only split partitions don't have
>>> sub-partitions."
>>> /don't have/that don't have/
>>> 
>>> e.g.
>>> "To split DEFAULT partition one of the new partition must be DEFAULT."
>>> missing word? -- "To split the DEFAULT partition"
>>> should be plural? -- "one of the new partitions"
>>> 
>>> e.g.
>>> "%s require combined bounds of new partitions must exactly match the
>>> bound of the split partition."
>>> /require/requires/ ?
>>> /match the bound/match the bounds/
>>> 
>>> ======
>>> [1] https://www.postgresql.org/docs/devel/error-style-guide.html#ERROR-STYLE-GUIDE-GRAMMAR-PUNCTUATION
>>> 
>>> Kind Regards,
>>> Peter Smith.
>>> Fujitsu Australia
>>> <v1-0001-Add-missing-period-to-HINT-messages.patch>
>> 
>> LGTM.
>> 
>> BTW, errdetail should follow the same style, and I see some detail messages miss periods, maybe this patch can include those as well.
>> 
> 
> Yep. It is already under way. I will post the equivalent errdetail
> patch shortly. (as soon as it passes running make- check-world).
> 
> ======
> Kind Regards,
> Peter Smith.
> Fujitsu Australia

I am not sure if your scope includes contrib/, if yes, I am sure you will find some occurrences there.

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/









^ permalink  raw  reply  [nested|flat] 15+ messages in thread

* Re: Add missing period to HINT messages
@ 2026-04-10 01:05  Peter Smith <[email protected]>
  parent: Chao Li <[email protected]>
  0 siblings, 1 reply; 15+ messages in thread

From: Peter Smith @ 2026-04-10 01:05 UTC (permalink / raw)
  To: Chao Li <[email protected]>; +Cc: PostgreSQL Hackers <[email protected]>

On Thu, Apr 9, 2026 at 1:34 PM Chao Li <[email protected]> wrote:
>
...
>
> I am not sure if your scope includes contrib/, if yes, I am sure you will find some occurrences there.
>

Updated one more message found in contrib.

PSA v2.

======
Kind Regards,
Peter Smith.
Fujitsu Australia


Attachments:

  [application/octet-stream] v2-0001-Add-missing-period-to-HINT-messages.patch (18.4K, 2-v2-0001-Add-missing-period-to-HINT-messages.patch)
  download | inline diff:
From 5a0bc307ce58dcfaa9381baa4ee2ef9a579b6a97 Mon Sep 17 00:00:00 2001
From: Peter Smith <[email protected]>
Date: Fri, 10 Apr 2026 09:31:51 +1000
Subject: [PATCH v2] Add missing period to HINT messages

---
 contrib/pgcrypto/crypt-sha.c                  |  2 +-
 src/backend/parser/parse_utilcmd.c            | 14 +++++++-------
 src/backend/partitioning/partbounds.c         | 12 ++++++------
 src/test/regress/expected/partition_merge.out | 12 ++++++------
 src/test/regress/expected/partition_split.out | 18 +++++++++---------
 src/test/regress/sql/partition_split.sql      |  2 +-
 6 files changed, 30 insertions(+), 30 deletions(-)

diff --git a/contrib/pgcrypto/crypt-sha.c b/contrib/pgcrypto/crypt-sha.c
index e8f32bc3896..8191ba02b23 100644
--- a/contrib/pgcrypto/crypt-sha.c
+++ b/contrib/pgcrypto/crypt-sha.c
@@ -147,7 +147,7 @@ px_crypt_shacrypt(const char *pw, const char *salt, char *passwd, unsigned dstle
 		ereport(ERROR,
 				errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 				errmsg("invalid format of salt"),
-				errhint("magic byte format for shacrypt is either \"$5$\" or \"$6$\""));
+				errhint("Magic byte format for shacrypt is either \"$5$\" or \"$6$\"."));
 
 	/*
 	 * Check magic byte for supported shacrypt digest.
diff --git a/src/backend/parser/parse_utilcmd.c b/src/backend/parser/parse_utilcmd.c
index 347f0259e5d..37071502a9f 100644
--- a/src/backend/parser/parse_utilcmd.c
+++ b/src/backend/parser/parse_utilcmd.c
@@ -3536,8 +3536,8 @@ checkPartition(Relation rel, Oid partRelOid, bool isMerge)
 				errcode(ERRCODE_WRONG_OBJECT_TYPE),
 				errmsg("\"%s\" is not a table", RelationGetRelationName(partRel)),
 				isMerge
-				? errhint("ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions")
-				: errhint("ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions"));
+				? errhint("ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.")
+				: errhint("ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions."));
 
 	if (!partRel->rd_rel->relispartition)
 		ereport(ERROR,
@@ -3545,8 +3545,8 @@ checkPartition(Relation rel, Oid partRelOid, bool isMerge)
 				errmsg("\"%s\" is not a partition of partitioned table \"%s\"",
 					   RelationGetRelationName(partRel), RelationGetRelationName(rel)),
 				isMerge
-				? errhint("ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions")
-				: errhint("ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions"));
+				? errhint("ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.")
+				: errhint("ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions."));
 
 	if (get_partition_parent(partRelOid, false) != RelationGetRelid(rel))
 		ereport(ERROR,
@@ -3554,8 +3554,8 @@ checkPartition(Relation rel, Oid partRelOid, bool isMerge)
 				errmsg("relation \"%s\" is not a partition of relation \"%s\"",
 					   RelationGetRelationName(partRel), RelationGetRelationName(rel)),
 				isMerge
-				? errhint("ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions")
-				: errhint("ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions"));
+				? errhint("ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.")
+				: errhint("ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions."));
 
 	table_close(partRel, NoLock);
 }
@@ -3647,7 +3647,7 @@ transformPartitionCmdForSplit(CreateStmtContext *cxt, PartitionCmd *partcmd)
 				errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
 				errmsg("can not split DEFAULT partition \"%s\"",
 					   get_rel_name(splitPartOid)),
-				errhint("To split DEFAULT partition one of the new partition msut be DEFAULT"),
+				errhint("To split DEFAULT partition one of the new partition must be DEFAULT."),
 				parser_errposition(cxt->pstate, ((SinglePartitionSpec *) linitial(splitlist))->name->location));
 
 	/*
diff --git a/src/backend/partitioning/partbounds.c b/src/backend/partitioning/partbounds.c
index f867d1b75a5..5afa781f086 100644
--- a/src/backend/partitioning/partbounds.c
+++ b/src/backend/partitioning/partbounds.c
@@ -5405,7 +5405,7 @@ check_partition_bounds_for_split_range(Relation parent,
 							errmsg("lower bound of partition \"%s\" is not equal to lower bound of split partition \"%s\"",
 								   relname,
 								   get_rel_name(splitPartOid)),
-							errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition",
+							errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition.",
 									"ALTER TABLE ... SPLIT PARTITION"),
 							parser_errposition(pstate, exprLocation((Node *) datum)));
 			}
@@ -5415,7 +5415,7 @@ check_partition_bounds_for_split_range(Relation parent,
 						errmsg("lower bound of partition \"%s\" is less than lower bound of split partition \"%s\"",
 							   relname,
 							   get_rel_name(splitPartOid)),
-						errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition",
+						errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition.",
 								"ALTER TABLE ... SPLIT PARTITION"),
 						parser_errposition(pstate, exprLocation((Node *) datum)));
 		}
@@ -5447,7 +5447,7 @@ check_partition_bounds_for_split_range(Relation parent,
 							errmsg("upper bound of partition \"%s\" is not equal to upper bound of split partition \"%s\"",
 								   relname,
 								   get_rel_name(splitPartOid)),
-							errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition",
+							errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition.",
 									"ALTER TABLE ... SPLIT PARTITION"),
 							parser_errposition(pstate, exprLocation((Node *) datum)));
 			}
@@ -5457,7 +5457,7 @@ check_partition_bounds_for_split_range(Relation parent,
 						errmsg("upper bound of partition \"%s\" is greater than upper bound of split partition \"%s\"",
 							   relname,
 							   get_rel_name(splitPartOid)),
-						errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition",
+						errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition.",
 								"ALTER TABLE ... SPLIT PARTITION"),
 						parser_errposition(pstate, exprLocation((Node *) datum)));
 		}
@@ -5653,7 +5653,7 @@ check_parent_values_in_new_partitions(Relation parent,
 				errmsg("new partitions combined partition bounds do not contain value (%s) but split partition \"%s\" does",
 					   "NULL",
 					   get_rel_name(partOid)),
-				errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition",
+				errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition.",
 						"ALTER TABLE ... SPLIT PARTITION"));
 
 	/*
@@ -5696,7 +5696,7 @@ check_parent_values_in_new_partitions(Relation parent,
 				errmsg("new partitions combined partition bounds do not contain value (%s) but split partition \"%s\" does",
 					   deparse_expression((Node *) notFoundVal, NIL, false, false),
 					   get_rel_name(partOid)),
-				errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition",
+				errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition.",
 						"ALTER TABLE ... SPLIT PARTITION"));
 	}
 }
diff --git a/src/test/regress/expected/partition_merge.out b/src/test/regress/expected/partition_merge.out
index 925fe4f570a..883110e25d9 100644
--- a/src/test/regress/expected/partition_merge.out
+++ b/src/test/regress/expected/partition_merge.out
@@ -29,7 +29,7 @@ LINE 1: ...e MERGE PARTITIONS (sales_feb2022, sales_mar2022, sales_feb2...
 -- ERROR:  "sales_apr2022" is not a table
 ALTER TABLE sales_range MERGE PARTITIONS (sales_feb2022, sales_mar2022, sales_apr2022) INTO sales_feb_mar_apr2022;
 ERROR:  "sales_apr2022" is not a table
-HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions
+HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.
 -- ERROR:  can not merge partition "sales_mar2022" together with partition "sales_jan2022"
 -- DETAIL:  lower bound of partition "sales_mar2022" is not equal to the upper bound of partition "sales_jan2022"
 -- (space between sections sales_jan2022 and sales_mar2022)
@@ -483,15 +483,15 @@ CREATE TABLE sales_external2 (vch VARCHAR(5));
 -- ERROR:  "sales_external" is not a partition of partitioned table "sales_list"
 ALTER TABLE sales_list MERGE PARTITIONS (sales_west, sales_east, sales_external) INTO sales_all;
 ERROR:  "sales_external" is not a partition of partitioned table "sales_list"
-HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions
+HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.
 -- ERROR:  "sales_external2" is not a partition of partitioned table "sales_list"
 ALTER TABLE sales_list MERGE PARTITIONS (sales_west, sales_east, sales_external2) INTO sales_all;
 ERROR:  "sales_external2" is not a partition of partitioned table "sales_list"
-HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions
+HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.
 -- ERROR:  relation "sales_nord2" is not a partition of relation "sales_list"
 ALTER TABLE sales_list MERGE PARTITIONS (sales_west, sales_nord2, sales_east) INTO sales_all;
 ERROR:  relation "sales_nord2" is not a partition of relation "sales_list"
-HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions
+HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.
 DROP TABLE sales_external2;
 DROP TABLE sales_external;
 DROP TABLE sales_list2;
@@ -633,11 +633,11 @@ CREATE TABLE t3 (i int, t text);
 -- ERROR:  relation "t1p1" is not a partition of relation "t2"
 ALTER TABLE t2 MERGE PARTITIONS (t1p1, t2pa) INTO t2p;
 ERROR:  relation "t1p1" is not a partition of relation "t2"
-HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions
+HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.
 -- ERROR:  "t3" is not a partition of partitioned table "t2"
 ALTER TABLE t2 MERGE PARTITIONS (t2pa, t3) INTO t2p;
 ERROR:  "t3" is not a partition of partitioned table "t2"
-HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions
+HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.
 DROP TABLE t3;
 DROP TABLE t2;
 DROP TABLE t1;
diff --git a/src/test/regress/expected/partition_split.out b/src/test/regress/expected/partition_split.out
index 13ca733f9fa..dbcb9a4f6b7 100644
--- a/src/test/regress/expected/partition_split.out
+++ b/src/test/regress/expected/partition_split.out
@@ -57,7 +57,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
 ERROR:  lower bound of partition "sales_feb2022" is not equal to lower bound of split partition "sales_feb_mar_apr2022"
 LINE 2:   (PARTITION sales_feb2022 FOR VALUES FROM ('2022-01-01') TO...
                                                     ^
-HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 -- ERROR:  partition with name "sales_feb_mar_apr2022" is already used
 -- (We can create partition with the same name as split partition, but can't create two partitions with the same name)
 ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
@@ -100,7 +100,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
 ERROR:  upper bound of partition "sales_apr2022" is not equal to upper bound of split partition "sales_feb_mar_apr2022"
 LINE 4: ... sales_apr2022 FOR VALUES FROM ('2022-04-01') TO ('2022-06-0...
                                                              ^
-HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 -- ERROR:  can not split to partition "sales_mar2022" together with partition "sales_feb2022"
 ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
   (PARTITION sales_feb2022 FOR VALUES FROM ('2022-02-01') TO ('2022-03-01'),
@@ -122,7 +122,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
 ERROR:  lower bound of partition "sales_feb2022" is not equal to lower bound of split partition "sales_feb_mar_apr2022"
 LINE 2:   (PARTITION sales_feb2022 FOR VALUES FROM ('2022-02-02') TO...
                                                     ^
-HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 -- Check the source partition not in the search path
 SET search_path = partition_split_schema2, public;
 ALTER TABLE partition_split_schema.sales_range
@@ -159,7 +159,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
 ERROR:  upper bound of partition "sales_apr2022" is not equal to upper bound of split partition "sales_feb_mar_apr2022"
 LINE 4: ... sales_apr2022 FOR VALUES FROM ('2022-04-01') TO ('2022-06-0...
                                                              ^
-HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 DROP TABLE sales_range;
 --
 -- Add rows into partitioned table then split partition
@@ -509,7 +509,7 @@ LINE 3:    PARTITION sales_error FOR VALUES FROM ('2021-12-01') TO (...
 DETAIL:  lower bound of partition "sales_error" is not equal to the upper bound of partition "sales_dec2021"
 HINT:  ALTER TABLE ... SPLIT PARTITION requires the partition bounds to be adjacent.
 -- ERROR:  can not split DEFAULT partition "sales_others"
--- HINT:  To split DEFAULT partition one of the new partition msut be DEFAULT
+-- HINT:  To split DEFAULT partition one of the new partition must be DEFAULT.
 ALTER TABLE sales_range SPLIT PARTITION sales_others INTO
   (PARTITION sales_dec2021 FOR VALUES FROM ('2021-12-01') TO ('2022-01-01'),
    PARTITION sales_jan2022 FOR VALUES FROM ('2022-01-01') TO ('2022-02-01'),
@@ -517,7 +517,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_others INTO
 ERROR:  can not split DEFAULT partition "sales_others"
 LINE 2:   (PARTITION sales_dec2021 FOR VALUES FROM ('2021-12-01') TO...
                      ^
-HINT:  To split DEFAULT partition one of the new partition msut be DEFAULT
+HINT:  To split DEFAULT partition one of the new partition must be DEFAULT.
 -- no error: bounds of sales_noerror are between sales_dec2021 and sales_feb2022
 ALTER TABLE sales_range SPLIT PARTITION sales_others INTO
   (PARTITION sales_dec2021 FOR VALUES FROM ('2021-12-01') TO ('2022-01-01'),
@@ -925,7 +925,7 @@ ALTER TABLE sales_list SPLIT PARTITION sales_all INTO
    PARTITION sales_east FOR VALUES IN ('Beijing', 'Delhi', 'Vladivostok'),
    PARTITION sales_central FOR VALUES IN ('Warsaw', 'Berlin', 'Kyiv'));
 ERROR:  new partitions combined partition bounds do not contain value (NULL) but split partition "sales_all" does
-HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 -- ERROR:  new partitions combined partition bounds do not contain value ('Kyiv'::character varying(20)) but split partition "sales_all" does
 -- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
 ALTER TABLE sales_list SPLIT PARTITION sales_all INTO
@@ -933,7 +933,7 @@ ALTER TABLE sales_list SPLIT PARTITION sales_all INTO
    PARTITION sales_east FOR VALUES IN ('Beijing', 'Delhi', 'Vladivostok'),
    PARTITION sales_central FOR VALUES IN ('Warsaw', 'Berlin', NULL));
 ERROR:  new partitions combined partition bounds do not contain value ('Kyiv'::character varying(20)) but split partition "sales_all" does
-HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 -- ERROR  DEFAULT partition should be one
 ALTER TABLE sales_list SPLIT PARTITION sales_all INTO
   (PARTITION sales_west FOR VALUES IN ('Lisbon', 'New York', 'Madrid'),
@@ -1207,7 +1207,7 @@ ALTER TABLE t2 SPLIT PARTITION t1pa INTO
    (PARTITION t2a FOR VALUES FROM ('A') TO ('B'),
     PARTITION t2b FOR VALUES FROM ('B') TO ('C'));
 ERROR:  relation "t1pa" is not a partition of relation "t2"
-HINT:  ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions
+HINT:  ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions.
 DROP TABLE t2;
 DROP TABLE t1;
 --
diff --git a/src/test/regress/sql/partition_split.sql b/src/test/regress/sql/partition_split.sql
index 37c6d730840..3f97adc6767 100644
--- a/src/test/regress/sql/partition_split.sql
+++ b/src/test/regress/sql/partition_split.sql
@@ -331,7 +331,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_others INTO
    PARTITION sales_others DEFAULT);
 
 -- ERROR:  can not split DEFAULT partition "sales_others"
--- HINT:  To split DEFAULT partition one of the new partition msut be DEFAULT
+-- HINT:  To split DEFAULT partition one of the new partition must be DEFAULT.
 ALTER TABLE sales_range SPLIT PARTITION sales_others INTO
   (PARTITION sales_dec2021 FOR VALUES FROM ('2021-12-01') TO ('2022-01-01'),
    PARTITION sales_jan2022 FOR VALUES FROM ('2022-01-01') TO ('2022-02-01'),
-- 
2.47.3



^ permalink  raw  reply  [nested|flat] 15+ messages in thread

* Re: Add missing period to HINT messages
@ 2026-04-10 13:10  Robert Treat <[email protected]>
  parent: Peter Smith <[email protected]>
  0 siblings, 1 reply; 15+ messages in thread

From: Robert Treat @ 2026-04-10 13:10 UTC (permalink / raw)
  To: Peter Smith <[email protected]>; +Cc: Chao Li <[email protected]>; PostgreSQL Hackers <[email protected]>

On Thu, Apr 9, 2026 at 9:05 PM Peter Smith <[email protected]> wrote:
> On Thu, Apr 9, 2026 at 1:34 PM Chao Li <[email protected]> wrote:
> >
> ...
> >
> > I am not sure if your scope includes contrib/, if yes, I am sure you will find some occurrences there.
> >
>
> Updated one more message found in contrib.
>
> PSA v2.
>

+1 to the general idea here, although at the risk of looking at
patches before the morning coffee has settled in, ISTM you might have
missed some entries? And/or this patch isn't against HEAD?  For
example, you seem to be catching the line here
https://github.com/postgres/postgres/blame/009ea1b08d7b8843435bd0f1137fa3df09aac79f/src/test/regress...,
but not the one on line 52, maybe because it looks like a comment (but
istm we should clean these all up. no?)

Also FWIW, it might seem a little weird not to clean up the grammar
issues too, but I think this is the right move, to update these
changes cleanly/separately and do those changes as a separate patch, I
can imagine that some of those will require more futzing, for example

> "To split DEFAULT partition one of the new partition must be DEFAULT."
> missing word? -- "To split the DEFAULT partition"
> should be plural? -- "one of the new partitions"
>

I guess there is a balance wrt terseness, and maybe needs a comma:

"To split DEFAULT partition, one new partition must be DEFAULT."
"To split the DEFAULT partition, one of the new partitions must be DEFAULT."
 "To split a DEFAULT partition, one of the new partitions must be
created as DEFAULT."


Robert Treat
https://xzilla.net





^ permalink  raw  reply  [nested|flat] 15+ messages in thread

* Re: Add missing period to HINT messages
@ 2026-04-13 01:01  Peter Smith <[email protected]>
  parent: Robert Treat <[email protected]>
  0 siblings, 1 reply; 15+ messages in thread

From: Peter Smith @ 2026-04-13 01:01 UTC (permalink / raw)
  To: Robert Treat <[email protected]>; +Cc: Chao Li <[email protected]>; PostgreSQL Hackers <[email protected]>

On Fri, Apr 10, 2026 at 11:10 PM Robert Treat <[email protected]> wrote:
>
> On Thu, Apr 9, 2026 at 9:05 PM Peter Smith <[email protected]> wrote:
> > On Thu, Apr 9, 2026 at 1:34 PM Chao Li <[email protected]> wrote:
> > >
> > ...
> > >
> > > I am not sure if your scope includes contrib/, if yes, I am sure you will find some occurrences there.
> > >
> >
> > Updated one more message found in contrib.
> >
> > PSA v2.
> >
>
> +1 to the general idea here, although at the risk of looking at
> patches before the morning coffee has settled in, ISTM you might have
> missed some entries? And/or this patch isn't against HEAD?  For
> example, you seem to be catching the line here
> https://github.com/postgres/postgres/blame/009ea1b08d7b8843435bd0f1137fa3df09aac79f/src/test/regress...,
> but not the one on line 52, maybe because it looks like a comment (but
> istm we should clean these all up. no?)
>

Thanks for your review!

Yes, the patch applies to HEAD. It looks like I was a bit slack in
updating some test comments. Hopefully, I have found them all now.

> Also FWIW, it might seem a little weird not to clean up the grammar
> issues too, but I think this is the right move, to update these
> changes cleanly/separately and do those changes as a separate patch, I
> can imagine that some of those will require more futzing, for example
>

Yes, the idea was just to fight one battle at a time.

PSA v3.

======
Kind Regards,
Peter Smith.
Fujitsu Australia


Attachments:

  [application/octet-stream] v3-0001-Add-missing-period-to-HINT-messages.patch (27.4K, 2-v3-0001-Add-missing-period-to-HINT-messages.patch)
  download | inline diff:
From 55f332e8448aed58c99b03db4b9c2a9bbaa29d20 Mon Sep 17 00:00:00 2001
From: Peter Smith <[email protected]>
Date: Mon, 13 Apr 2026 10:47:13 +1000
Subject: [PATCH v3] Add missing period to HINT messages

---
 contrib/pgcrypto/crypt-sha.c                  |  2 +-
 src/backend/parser/parse_utilcmd.c            | 14 ++++-----
 src/backend/partitioning/partbounds.c         | 12 ++++----
 src/test/regress/expected/partition_merge.out | 12 ++++----
 src/test/regress/expected/partition_split.out | 30 +++++++++----------
 src/test/regress/sql/partition_split.sql      | 14 ++++-----
 6 files changed, 42 insertions(+), 42 deletions(-)

diff --git a/contrib/pgcrypto/crypt-sha.c b/contrib/pgcrypto/crypt-sha.c
index e8f32bc3896..8191ba02b23 100644
--- a/contrib/pgcrypto/crypt-sha.c
+++ b/contrib/pgcrypto/crypt-sha.c
@@ -147,7 +147,7 @@ px_crypt_shacrypt(const char *pw, const char *salt, char *passwd, unsigned dstle
 		ereport(ERROR,
 				errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 				errmsg("invalid format of salt"),
-				errhint("magic byte format for shacrypt is either \"$5$\" or \"$6$\""));
+				errhint("Magic byte format for shacrypt is either \"$5$\" or \"$6$\"."));
 
 	/*
 	 * Check magic byte for supported shacrypt digest.
diff --git a/src/backend/parser/parse_utilcmd.c b/src/backend/parser/parse_utilcmd.c
index 347f0259e5d..37071502a9f 100644
--- a/src/backend/parser/parse_utilcmd.c
+++ b/src/backend/parser/parse_utilcmd.c
@@ -3536,8 +3536,8 @@ checkPartition(Relation rel, Oid partRelOid, bool isMerge)
 				errcode(ERRCODE_WRONG_OBJECT_TYPE),
 				errmsg("\"%s\" is not a table", RelationGetRelationName(partRel)),
 				isMerge
-				? errhint("ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions")
-				: errhint("ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions"));
+				? errhint("ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.")
+				: errhint("ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions."));
 
 	if (!partRel->rd_rel->relispartition)
 		ereport(ERROR,
@@ -3545,8 +3545,8 @@ checkPartition(Relation rel, Oid partRelOid, bool isMerge)
 				errmsg("\"%s\" is not a partition of partitioned table \"%s\"",
 					   RelationGetRelationName(partRel), RelationGetRelationName(rel)),
 				isMerge
-				? errhint("ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions")
-				: errhint("ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions"));
+				? errhint("ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.")
+				: errhint("ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions."));
 
 	if (get_partition_parent(partRelOid, false) != RelationGetRelid(rel))
 		ereport(ERROR,
@@ -3554,8 +3554,8 @@ checkPartition(Relation rel, Oid partRelOid, bool isMerge)
 				errmsg("relation \"%s\" is not a partition of relation \"%s\"",
 					   RelationGetRelationName(partRel), RelationGetRelationName(rel)),
 				isMerge
-				? errhint("ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions")
-				: errhint("ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions"));
+				? errhint("ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.")
+				: errhint("ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions."));
 
 	table_close(partRel, NoLock);
 }
@@ -3647,7 +3647,7 @@ transformPartitionCmdForSplit(CreateStmtContext *cxt, PartitionCmd *partcmd)
 				errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
 				errmsg("can not split DEFAULT partition \"%s\"",
 					   get_rel_name(splitPartOid)),
-				errhint("To split DEFAULT partition one of the new partition msut be DEFAULT"),
+				errhint("To split DEFAULT partition one of the new partition must be DEFAULT."),
 				parser_errposition(cxt->pstate, ((SinglePartitionSpec *) linitial(splitlist))->name->location));
 
 	/*
diff --git a/src/backend/partitioning/partbounds.c b/src/backend/partitioning/partbounds.c
index f867d1b75a5..5afa781f086 100644
--- a/src/backend/partitioning/partbounds.c
+++ b/src/backend/partitioning/partbounds.c
@@ -5405,7 +5405,7 @@ check_partition_bounds_for_split_range(Relation parent,
 							errmsg("lower bound of partition \"%s\" is not equal to lower bound of split partition \"%s\"",
 								   relname,
 								   get_rel_name(splitPartOid)),
-							errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition",
+							errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition.",
 									"ALTER TABLE ... SPLIT PARTITION"),
 							parser_errposition(pstate, exprLocation((Node *) datum)));
 			}
@@ -5415,7 +5415,7 @@ check_partition_bounds_for_split_range(Relation parent,
 						errmsg("lower bound of partition \"%s\" is less than lower bound of split partition \"%s\"",
 							   relname,
 							   get_rel_name(splitPartOid)),
-						errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition",
+						errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition.",
 								"ALTER TABLE ... SPLIT PARTITION"),
 						parser_errposition(pstate, exprLocation((Node *) datum)));
 		}
@@ -5447,7 +5447,7 @@ check_partition_bounds_for_split_range(Relation parent,
 							errmsg("upper bound of partition \"%s\" is not equal to upper bound of split partition \"%s\"",
 								   relname,
 								   get_rel_name(splitPartOid)),
-							errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition",
+							errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition.",
 									"ALTER TABLE ... SPLIT PARTITION"),
 							parser_errposition(pstate, exprLocation((Node *) datum)));
 			}
@@ -5457,7 +5457,7 @@ check_partition_bounds_for_split_range(Relation parent,
 						errmsg("upper bound of partition \"%s\" is greater than upper bound of split partition \"%s\"",
 							   relname,
 							   get_rel_name(splitPartOid)),
-						errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition",
+						errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition.",
 								"ALTER TABLE ... SPLIT PARTITION"),
 						parser_errposition(pstate, exprLocation((Node *) datum)));
 		}
@@ -5653,7 +5653,7 @@ check_parent_values_in_new_partitions(Relation parent,
 				errmsg("new partitions combined partition bounds do not contain value (%s) but split partition \"%s\" does",
 					   "NULL",
 					   get_rel_name(partOid)),
-				errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition",
+				errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition.",
 						"ALTER TABLE ... SPLIT PARTITION"));
 
 	/*
@@ -5696,7 +5696,7 @@ check_parent_values_in_new_partitions(Relation parent,
 				errmsg("new partitions combined partition bounds do not contain value (%s) but split partition \"%s\" does",
 					   deparse_expression((Node *) notFoundVal, NIL, false, false),
 					   get_rel_name(partOid)),
-				errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition",
+				errhint("%s require combined bounds of new partitions must exactly match the bound of the split partition.",
 						"ALTER TABLE ... SPLIT PARTITION"));
 	}
 }
diff --git a/src/test/regress/expected/partition_merge.out b/src/test/regress/expected/partition_merge.out
index 925fe4f570a..883110e25d9 100644
--- a/src/test/regress/expected/partition_merge.out
+++ b/src/test/regress/expected/partition_merge.out
@@ -29,7 +29,7 @@ LINE 1: ...e MERGE PARTITIONS (sales_feb2022, sales_mar2022, sales_feb2...
 -- ERROR:  "sales_apr2022" is not a table
 ALTER TABLE sales_range MERGE PARTITIONS (sales_feb2022, sales_mar2022, sales_apr2022) INTO sales_feb_mar_apr2022;
 ERROR:  "sales_apr2022" is not a table
-HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions
+HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.
 -- ERROR:  can not merge partition "sales_mar2022" together with partition "sales_jan2022"
 -- DETAIL:  lower bound of partition "sales_mar2022" is not equal to the upper bound of partition "sales_jan2022"
 -- (space between sections sales_jan2022 and sales_mar2022)
@@ -483,15 +483,15 @@ CREATE TABLE sales_external2 (vch VARCHAR(5));
 -- ERROR:  "sales_external" is not a partition of partitioned table "sales_list"
 ALTER TABLE sales_list MERGE PARTITIONS (sales_west, sales_east, sales_external) INTO sales_all;
 ERROR:  "sales_external" is not a partition of partitioned table "sales_list"
-HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions
+HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.
 -- ERROR:  "sales_external2" is not a partition of partitioned table "sales_list"
 ALTER TABLE sales_list MERGE PARTITIONS (sales_west, sales_east, sales_external2) INTO sales_all;
 ERROR:  "sales_external2" is not a partition of partitioned table "sales_list"
-HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions
+HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.
 -- ERROR:  relation "sales_nord2" is not a partition of relation "sales_list"
 ALTER TABLE sales_list MERGE PARTITIONS (sales_west, sales_nord2, sales_east) INTO sales_all;
 ERROR:  relation "sales_nord2" is not a partition of relation "sales_list"
-HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions
+HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.
 DROP TABLE sales_external2;
 DROP TABLE sales_external;
 DROP TABLE sales_list2;
@@ -633,11 +633,11 @@ CREATE TABLE t3 (i int, t text);
 -- ERROR:  relation "t1p1" is not a partition of relation "t2"
 ALTER TABLE t2 MERGE PARTITIONS (t1p1, t2pa) INTO t2p;
 ERROR:  relation "t1p1" is not a partition of relation "t2"
-HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions
+HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.
 -- ERROR:  "t3" is not a partition of partitioned table "t2"
 ALTER TABLE t2 MERGE PARTITIONS (t2pa, t3) INTO t2p;
 ERROR:  "t3" is not a partition of partitioned table "t2"
-HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions
+HINT:  ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub-partitions.
 DROP TABLE t3;
 DROP TABLE t2;
 DROP TABLE t1;
diff --git a/src/test/regress/expected/partition_split.out b/src/test/regress/expected/partition_split.out
index 13ca733f9fa..43ca299648e 100644
--- a/src/test/regress/expected/partition_split.out
+++ b/src/test/regress/expected/partition_split.out
@@ -49,7 +49,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
   (PARTITION sales_feb2022 FOR VALUES FROM ('2022-02-01') TO ('2022-10-01'));
 ERROR:  list of new partitions should contain at least two partitions
 -- ERROR:  lower bound of partition "sales_feb2022" is not equal to lower bound of split partition "sales_feb_mar_apr2022"
--- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+-- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
   (PARTITION sales_feb2022 FOR VALUES FROM ('2022-01-01') TO ('2022-03-01'),
    PARTITION sales_mar2022 FOR VALUES FROM ('2022-03-01') TO ('2022-04-01'),
@@ -57,7 +57,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
 ERROR:  lower bound of partition "sales_feb2022" is not equal to lower bound of split partition "sales_feb_mar_apr2022"
 LINE 2:   (PARTITION sales_feb2022 FOR VALUES FROM ('2022-01-01') TO...
                                                     ^
-HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 -- ERROR:  partition with name "sales_feb_mar_apr2022" is already used
 -- (We can create partition with the same name as split partition, but can't create two partitions with the same name)
 ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
@@ -92,7 +92,7 @@ ALTER TABLE sales_feb_mar_apr2022 SPLIT PARTITION sales_feb_mar_apr2022 INTO
 ERROR:  ALTER action SPLIT PARTITION cannot be performed on relation "sales_feb_mar_apr2022"
 DETAIL:  This operation is not supported for tables.
 -- ERROR:  upper bound of partition "sales_apr2022" is not equal to upper bound of split partition "sales_feb_mar_apr2022"
--- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+-- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
   (PARTITION sales_feb2022 FOR VALUES FROM ('2022-02-01') TO ('2022-03-01'),
    PARTITION sales_mar2022 FOR VALUES FROM ('2022-03-01') TO ('2022-04-01'),
@@ -100,7 +100,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
 ERROR:  upper bound of partition "sales_apr2022" is not equal to upper bound of split partition "sales_feb_mar_apr2022"
 LINE 4: ... sales_apr2022 FOR VALUES FROM ('2022-04-01') TO ('2022-06-0...
                                                              ^
-HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 -- ERROR:  can not split to partition "sales_mar2022" together with partition "sales_feb2022"
 ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
   (PARTITION sales_feb2022 FOR VALUES FROM ('2022-02-01') TO ('2022-03-01'),
@@ -114,7 +114,7 @@ HINT:  ALTER TABLE ... SPLIT PARTITION requires the partition bounds to be adjac
 -- Tests for spaces between partitions, them should be executed without DEFAULT partition
 ALTER TABLE sales_range DETACH PARTITION sales_others;
 -- ERROR:  lower bound of partition "sales_feb2022" is not equal to lower bound of split partition "sales_feb_mar_apr2022"
--- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+-- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
   (PARTITION sales_feb2022 FOR VALUES FROM ('2022-02-02') TO ('2022-03-01'),
    PARTITION sales_mar2022 FOR VALUES FROM ('2022-03-01') TO ('2022-04-01'),
@@ -122,7 +122,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
 ERROR:  lower bound of partition "sales_feb2022" is not equal to lower bound of split partition "sales_feb_mar_apr2022"
 LINE 2:   (PARTITION sales_feb2022 FOR VALUES FROM ('2022-02-02') TO...
                                                     ^
-HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 -- Check the source partition not in the search path
 SET search_path = partition_split_schema2, public;
 ALTER TABLE partition_split_schema.sales_range
@@ -151,7 +151,7 @@ CREATE TABLE sales_range (sales_date date) PARTITION BY RANGE (sales_date);
 CREATE TABLE sales_jan2022 PARTITION OF sales_range FOR VALUES FROM ('2022-01-01') TO ('2022-02-01');
 CREATE TABLE sales_feb_mar_apr2022 PARTITION OF sales_range FOR VALUES FROM ('2022-02-01') TO ('2022-05-01');
 -- ERROR:  upper bound of partition "sales_apr2022" is not equal to upper bound of split partition "sales_feb_mar_apr2022"
--- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+-- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
   (PARTITION sales_feb2022 FOR VALUES FROM ('2022-02-01') TO ('2022-03-01'),
    PARTITION sales_mar2022 FOR VALUES FROM ('2022-03-01') TO ('2022-04-01'),
@@ -159,7 +159,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
 ERROR:  upper bound of partition "sales_apr2022" is not equal to upper bound of split partition "sales_feb_mar_apr2022"
 LINE 4: ... sales_apr2022 FOR VALUES FROM ('2022-04-01') TO ('2022-06-0...
                                                              ^
-HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 DROP TABLE sales_range;
 --
 -- Add rows into partitioned table then split partition
@@ -509,7 +509,7 @@ LINE 3:    PARTITION sales_error FOR VALUES FROM ('2021-12-01') TO (...
 DETAIL:  lower bound of partition "sales_error" is not equal to the upper bound of partition "sales_dec2021"
 HINT:  ALTER TABLE ... SPLIT PARTITION requires the partition bounds to be adjacent.
 -- ERROR:  can not split DEFAULT partition "sales_others"
--- HINT:  To split DEFAULT partition one of the new partition msut be DEFAULT
+-- HINT:  To split DEFAULT partition one of the new partition must be DEFAULT.
 ALTER TABLE sales_range SPLIT PARTITION sales_others INTO
   (PARTITION sales_dec2021 FOR VALUES FROM ('2021-12-01') TO ('2022-01-01'),
    PARTITION sales_jan2022 FOR VALUES FROM ('2022-01-01') TO ('2022-02-01'),
@@ -517,7 +517,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_others INTO
 ERROR:  can not split DEFAULT partition "sales_others"
 LINE 2:   (PARTITION sales_dec2021 FOR VALUES FROM ('2021-12-01') TO...
                      ^
-HINT:  To split DEFAULT partition one of the new partition msut be DEFAULT
+HINT:  To split DEFAULT partition one of the new partition must be DEFAULT.
 -- no error: bounds of sales_noerror are between sales_dec2021 and sales_feb2022
 ALTER TABLE sales_range SPLIT PARTITION sales_others INTO
   (PARTITION sales_dec2021 FOR VALUES FROM ('2021-12-01') TO ('2022-01-01'),
@@ -919,21 +919,21 @@ CREATE TABLE sales_list(sales_state VARCHAR(20)) PARTITION BY LIST (sales_state)
 CREATE TABLE sales_nord PARTITION OF sales_list FOR VALUES IN ('Helsinki', 'St. Petersburg', 'Oslo');
 CREATE TABLE sales_all PARTITION OF sales_list FOR VALUES IN ('Warsaw', 'Lisbon', 'New York', 'Madrid', 'Beijing', 'Berlin', 'Delhi', 'Kyiv', 'Vladivostok', NULL);
 -- ERROR:  new partitions combined partition bounds do not contain value (NULL) but split partition "sales_all" does
--- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+-- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 ALTER TABLE sales_list SPLIT PARTITION sales_all INTO
   (PARTITION sales_west FOR VALUES IN ('Lisbon', 'New York', 'Madrid'),
    PARTITION sales_east FOR VALUES IN ('Beijing', 'Delhi', 'Vladivostok'),
    PARTITION sales_central FOR VALUES IN ('Warsaw', 'Berlin', 'Kyiv'));
 ERROR:  new partitions combined partition bounds do not contain value (NULL) but split partition "sales_all" does
-HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 -- ERROR:  new partitions combined partition bounds do not contain value ('Kyiv'::character varying(20)) but split partition "sales_all" does
--- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+-- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 ALTER TABLE sales_list SPLIT PARTITION sales_all INTO
   (PARTITION sales_west FOR VALUES IN ('Lisbon', 'New York', 'Madrid'),
    PARTITION sales_east FOR VALUES IN ('Beijing', 'Delhi', 'Vladivostok'),
    PARTITION sales_central FOR VALUES IN ('Warsaw', 'Berlin', NULL));
 ERROR:  new partitions combined partition bounds do not contain value ('Kyiv'::character varying(20)) but split partition "sales_all" does
-HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 -- ERROR  DEFAULT partition should be one
 ALTER TABLE sales_list SPLIT PARTITION sales_all INTO
   (PARTITION sales_west FOR VALUES IN ('Lisbon', 'New York', 'Madrid'),
@@ -1207,7 +1207,7 @@ ALTER TABLE t2 SPLIT PARTITION t1pa INTO
    (PARTITION t2a FOR VALUES FROM ('A') TO ('B'),
     PARTITION t2b FOR VALUES FROM ('B') TO ('C'));
 ERROR:  relation "t1pa" is not a partition of relation "t2"
-HINT:  ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions
+HINT:  ALTER TABLE ... SPLIT PARTITION can only split partitions don't have sub-partitions.
 DROP TABLE t2;
 DROP TABLE t1;
 --
diff --git a/src/test/regress/sql/partition_split.sql b/src/test/regress/sql/partition_split.sql
index 37c6d730840..44fcf208ac6 100644
--- a/src/test/regress/sql/partition_split.sql
+++ b/src/test/regress/sql/partition_split.sql
@@ -48,7 +48,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
   (PARTITION sales_feb2022 FOR VALUES FROM ('2022-02-01') TO ('2022-10-01'));
 
 -- ERROR:  lower bound of partition "sales_feb2022" is not equal to lower bound of split partition "sales_feb_mar_apr2022"
--- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+-- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
   (PARTITION sales_feb2022 FOR VALUES FROM ('2022-01-01') TO ('2022-03-01'),
    PARTITION sales_mar2022 FOR VALUES FROM ('2022-03-01') TO ('2022-04-01'),
@@ -81,7 +81,7 @@ ALTER TABLE sales_feb_mar_apr2022 SPLIT PARTITION sales_feb_mar_apr2022 INTO
    PARTITION sales_apr2022 FOR VALUES FROM ('2022-04-01') TO ('2022-05-01'));
 
 -- ERROR:  upper bound of partition "sales_apr2022" is not equal to upper bound of split partition "sales_feb_mar_apr2022"
--- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+-- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
   (PARTITION sales_feb2022 FOR VALUES FROM ('2022-02-01') TO ('2022-03-01'),
    PARTITION sales_mar2022 FOR VALUES FROM ('2022-03-01') TO ('2022-04-01'),
@@ -97,7 +97,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
 ALTER TABLE sales_range DETACH PARTITION sales_others;
 
 -- ERROR:  lower bound of partition "sales_feb2022" is not equal to lower bound of split partition "sales_feb_mar_apr2022"
--- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+-- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
   (PARTITION sales_feb2022 FOR VALUES FROM ('2022-02-02') TO ('2022-03-01'),
    PARTITION sales_mar2022 FOR VALUES FROM ('2022-03-01') TO ('2022-04-01'),
@@ -122,7 +122,7 @@ CREATE TABLE sales_jan2022 PARTITION OF sales_range FOR VALUES FROM ('2022-01-01
 CREATE TABLE sales_feb_mar_apr2022 PARTITION OF sales_range FOR VALUES FROM ('2022-02-01') TO ('2022-05-01');
 
 -- ERROR:  upper bound of partition "sales_apr2022" is not equal to upper bound of split partition "sales_feb_mar_apr2022"
--- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+-- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
   (PARTITION sales_feb2022 FOR VALUES FROM ('2022-02-01') TO ('2022-03-01'),
    PARTITION sales_mar2022 FOR VALUES FROM ('2022-03-01') TO ('2022-04-01'),
@@ -331,7 +331,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_others INTO
    PARTITION sales_others DEFAULT);
 
 -- ERROR:  can not split DEFAULT partition "sales_others"
--- HINT:  To split DEFAULT partition one of the new partition msut be DEFAULT
+-- HINT:  To split DEFAULT partition one of the new partition must be DEFAULT.
 ALTER TABLE sales_range SPLIT PARTITION sales_others INTO
   (PARTITION sales_dec2021 FOR VALUES FROM ('2021-12-01') TO ('2022-01-01'),
    PARTITION sales_jan2022 FOR VALUES FROM ('2022-01-01') TO ('2022-02-01'),
@@ -661,14 +661,14 @@ CREATE TABLE sales_nord PARTITION OF sales_list FOR VALUES IN ('Helsinki', 'St.
 CREATE TABLE sales_all PARTITION OF sales_list FOR VALUES IN ('Warsaw', 'Lisbon', 'New York', 'Madrid', 'Beijing', 'Berlin', 'Delhi', 'Kyiv', 'Vladivostok', NULL);
 
 -- ERROR:  new partitions combined partition bounds do not contain value (NULL) but split partition "sales_all" does
--- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+-- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 ALTER TABLE sales_list SPLIT PARTITION sales_all INTO
   (PARTITION sales_west FOR VALUES IN ('Lisbon', 'New York', 'Madrid'),
    PARTITION sales_east FOR VALUES IN ('Beijing', 'Delhi', 'Vladivostok'),
    PARTITION sales_central FOR VALUES IN ('Warsaw', 'Berlin', 'Kyiv'));
 
 -- ERROR:  new partitions combined partition bounds do not contain value ('Kyiv'::character varying(20)) but split partition "sales_all" does
--- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition
+-- HINT:  ALTER TABLE ... SPLIT PARTITION require combined bounds of new partitions must exactly match the bound of the split partition.
 ALTER TABLE sales_list SPLIT PARTITION sales_all INTO
   (PARTITION sales_west FOR VALUES IN ('Lisbon', 'New York', 'Madrid'),
    PARTITION sales_east FOR VALUES IN ('Beijing', 'Delhi', 'Vladivostok'),
-- 
2.47.3



^ permalink  raw  reply  [nested|flat] 15+ messages in thread

* Re: Add missing period to HINT messages
@ 2026-04-13 11:28  Amit Kapila <[email protected]>
  parent: Peter Smith <[email protected]>
  0 siblings, 2 replies; 15+ messages in thread

From: Amit Kapila @ 2026-04-13 11:28 UTC (permalink / raw)
  To: Peter Smith <[email protected]>; +Cc: Robert Treat <[email protected]>; Chao Li <[email protected]>; PostgreSQL Hackers <[email protected]>

On Mon, Apr 13, 2026 at 6:32 AM Peter Smith <[email protected]> wrote:
>
> On Fri, Apr 10, 2026 at 11:10 PM Robert Treat <[email protected]> wrote:
> >
> > On Thu, Apr 9, 2026 at 9:05 PM Peter Smith <[email protected]> wrote:
> > > On Thu, Apr 9, 2026 at 1:34 PM Chao Li <[email protected]> wrote:
> > > >
> > > ...
> > > >
> > > > I am not sure if your scope includes contrib/, if yes, I am sure you will find some occurrences there.
> > > >
> > >
> > > Updated one more message found in contrib.
> > >
> > > PSA v2.
> > >
> >
> > +1 to the general idea here, although at the risk of looking at
> > patches before the morning coffee has settled in, ISTM you might have
> > missed some entries? And/or this patch isn't against HEAD?  For
> > example, you seem to be catching the line here
> > https://github.com/postgres/postgres/blame/009ea1b08d7b8843435bd0f1137fa3df09aac79f/src/test/regress...,
> > but not the one on line 52, maybe because it looks like a comment (but
> > istm we should clean these all up. no?)
> >
>
> Thanks for your review!
>
> Yes, the patch applies to HEAD. It looks like I was a bit slack in
> updating some test comments. Hopefully, I have found them all now.
>

BTW, I find such a code cleanup exercise can be done even after
feature freeze. If so, shall we do it as a HEAD-only patch or do it in
bank branches as well?

-- 
With Regards,
Amit Kapila.





^ permalink  raw  reply  [nested|flat] 15+ messages in thread

* Re: Add missing period to HINT messages
@ 2026-04-14 00:39  Robert Treat <[email protected]>
  parent: Amit Kapila <[email protected]>
  1 sibling, 2 replies; 15+ messages in thread

From: Robert Treat @ 2026-04-14 00:39 UTC (permalink / raw)
  To: Amit Kapila <[email protected]>; +Cc: Peter Smith <[email protected]>; Chao Li <[email protected]>; PostgreSQL Hackers <[email protected]>

On Mon, Apr 13, 2026 at 4:28 AM Amit Kapila <[email protected]> wrote:
> On Mon, Apr 13, 2026 at 6:32 AM Peter Smith <[email protected]> wrote:
> > On Fri, Apr 10, 2026 at 11:10 PM Robert Treat <[email protected]> wrote:
> > >
> > > On Thu, Apr 9, 2026 at 9:05 PM Peter Smith <[email protected]> wrote:
> > > > On Thu, Apr 9, 2026 at 1:34 PM Chao Li <[email protected]> wrote:
> > > > >
> > > > ...
> > > > >
> > > > > I am not sure if your scope includes contrib/, if yes, I am sure you will find some occurrences there.
> > > > >
> > > >
> > > > Updated one more message found in contrib.
> > > >
> > > > PSA v2.
> > > >
> > >
> > > +1 to the general idea here, although at the risk of looking at
> > > patches before the morning coffee has settled in, ISTM you might have
> > > missed some entries? And/or this patch isn't against HEAD?  For
> > > example, you seem to be catching the line here
> > > https://github.com/postgres/postgres/blame/009ea1b08d7b8843435bd0f1137fa3df09aac79f/src/test/regress...,
> > > but not the one on line 52, maybe because it looks like a comment (but
> > > istm we should clean these all up. no?)
> > >
> >
> > Thanks for your review!
> >
> > Yes, the patch applies to HEAD. It looks like I was a bit slack in
> > updating some test comments. Hopefully, I have found them all now.
> >
>
> BTW, I find such a code cleanup exercise can be done even after
> feature freeze. If so, shall we do it as a HEAD-only patch or do it in
> bank branches as well?
>

I don't have a strong opinion on it, but I think generally that clean
up patches (where we aren't fixing some kind of document mistake or
misleading information) generally just go into HEAD for the next
release, though if it easily applies cleanly to back branches and you
want to do it, it's probably ok to apply it backwards, but I wouldn't
spend any time on it if it didn't.

Robert Treat
https://xzilla.net





^ permalink  raw  reply  [nested|flat] 15+ messages in thread

* Re: Add missing period to HINT messages
@ 2026-04-14 01:00  David G. Johnston <[email protected]>
  parent: Robert Treat <[email protected]>
  1 sibling, 1 reply; 15+ messages in thread

From: David G. Johnston @ 2026-04-14 01:00 UTC (permalink / raw)
  To: Robert Treat <[email protected]>; +Cc: Amit Kapila <[email protected]>; Peter Smith <[email protected]>; Chao Li <[email protected]>; PostgreSQL Hackers <[email protected]>

On Monday, April 13, 2026, Robert Treat <[email protected]> wrote:

>
>
> I don't have a strong opinion on it, but I think generally that clean
> up patches (where we aren't fixing some kind of document mistake or
> misleading information) generally just go into HEAD for the next
> release, though if it easily applies cleanly to back branches and you
> want to do it, it's probably ok to apply it backwards, but I wouldn't
> spend any time on it if it didn't.
>

I was under the impression that on both user-facing behavior changes
grounds, and translation grounds, back-patching changes to existing
messages is not allowed absent a true factual bug.

David J.


^ permalink  raw  reply  [nested|flat] 15+ messages in thread

* Re: Add missing period to HINT messages
@ 2026-04-14 01:07  Tom Lane <[email protected]>
  parent: David G. Johnston <[email protected]>
  0 siblings, 0 replies; 15+ messages in thread

From: Tom Lane @ 2026-04-14 01:07 UTC (permalink / raw)
  To: David G. Johnston <[email protected]>; +Cc: Robert Treat <[email protected]>; Amit Kapila <[email protected]>; Peter Smith <[email protected]>; Chao Li <[email protected]>; PostgreSQL Hackers <[email protected]>

"David G. Johnston" <[email protected]> writes:
> I was under the impression that on both user-facing behavior changes
> grounds, and translation grounds, back-patching changes to existing
> messages is not allowed absent a true factual bug.

"Not allowed" is a bit strong, but yeah we don't usually mess with
translatable strings in back branches without a pretty good reason.
The translators have enough work as it is.

			regards, tom lane





^ permalink  raw  reply  [nested|flat] 15+ messages in thread

* Re: Add missing period to HINT messages
@ 2026-04-14 01:10  Chao Li <[email protected]>
  parent: Robert Treat <[email protected]>
  1 sibling, 2 replies; 15+ messages in thread

From: Chao Li @ 2026-04-14 01:10 UTC (permalink / raw)
  To: Robert Treat <[email protected]>; +Cc: Amit Kapila <[email protected]>; Peter Smith <[email protected]>; PostgreSQL Hackers <[email protected]>



> On Apr 14, 2026, at 08:39, Robert Treat <[email protected]> wrote:
> 
> On Mon, Apr 13, 2026 at 4:28 AM Amit Kapila <[email protected]> wrote:
>> On Mon, Apr 13, 2026 at 6:32 AM Peter Smith <[email protected]> wrote:
>>> On Fri, Apr 10, 2026 at 11:10 PM Robert Treat <[email protected]> wrote:
>>>> 
>>>> On Thu, Apr 9, 2026 at 9:05 PM Peter Smith <[email protected]> wrote:
>>>>> On Thu, Apr 9, 2026 at 1:34 PM Chao Li <[email protected]> wrote:
>>>>>> 
>>>>> ...
>>>>>> 
>>>>>> I am not sure if your scope includes contrib/, if yes, I am sure you will find some occurrences there.
>>>>>> 
>>>>> 
>>>>> Updated one more message found in contrib.
>>>>> 
>>>>> PSA v2.
>>>>> 
>>>> 
>>>> +1 to the general idea here, although at the risk of looking at
>>>> patches before the morning coffee has settled in, ISTM you might have
>>>> missed some entries? And/or this patch isn't against HEAD?  For
>>>> example, you seem to be catching the line here
>>>> https://github.com/postgres/postgres/blame/009ea1b08d7b8843435bd0f1137fa3df09aac79f/src/test/regress...,
>>>> but not the one on line 52, maybe because it looks like a comment (but
>>>> istm we should clean these all up. no?)
>>>> 
>>> 
>>> Thanks for your review!
>>> 
>>> Yes, the patch applies to HEAD. It looks like I was a bit slack in
>>> updating some test comments. Hopefully, I have found them all now.
>>> 
>> 
>> BTW, I find such a code cleanup exercise can be done even after
>> feature freeze. If so, shall we do it as a HEAD-only patch or do it in
>> bank branches as well?
>> 
> 
> I don't have a strong opinion on it, but I think generally that clean
> up patches (where we aren't fixing some kind of document mistake or
> misleading information) generally just go into HEAD for the next
> release, though if it easily applies cleanly to back branches and you
> want to do it, it's probably ok to apply it backwards, but I wouldn't
> spend any time on it if it didn't.
> 
> Robert Treat
> https://xzilla.net

I don’t see a branch for 19 is cut out, so is HEAD still 19 today?

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/









^ permalink  raw  reply  [nested|flat] 15+ messages in thread

* Re: Add missing period to HINT messages
@ 2026-04-14 01:15  Bruce Momjian <[email protected]>
  parent: Chao Li <[email protected]>
  1 sibling, 0 replies; 15+ messages in thread

From: Bruce Momjian @ 2026-04-14 01:15 UTC (permalink / raw)
  To: Chao Li <[email protected]>; +Cc: Robert Treat <[email protected]>; Amit Kapila <[email protected]>; Peter Smith <[email protected]>; PostgreSQL Hackers <[email protected]>

On Tue, Apr 14, 2026 at 09:10:42AM +0800, Chao Li wrote:
> I don’t see a branch for 19 is cut out, so is HEAD still 19 today?

Yes.

-- 
  Bruce Momjian  <[email protected]>        https://momjian.us
  EDB                                      https://enterprisedb.com

  Do not let urgent matters crowd out time for investment in the future.





^ permalink  raw  reply  [nested|flat] 15+ messages in thread

* Re: Add missing period to HINT messages
@ 2026-04-14 01:18  Tom Lane <[email protected]>
  parent: Chao Li <[email protected]>
  1 sibling, 0 replies; 15+ messages in thread

From: Tom Lane @ 2026-04-14 01:18 UTC (permalink / raw)
  To: Chao Li <[email protected]>; +Cc: Robert Treat <[email protected]>; Amit Kapila <[email protected]>; Peter Smith <[email protected]>; PostgreSQL Hackers <[email protected]>

Chao Li <[email protected]> writes:
> I don’t see a branch for 19 is cut out, so is HEAD still 19 today?

Yes.  We typically don't make the branch until after beta1.
It definitely has to happen before the first CF for the new cycle
opens, but up till that point we tend to think it'd just double
the committing work for bug fixes, as well as encourage people
to work on new development at a time they should be working on
stabilizing/testing the release.

In recent years it's tended to happen late June (grep the commit
log for "Stamp HEAD as ...").

			regards, tom lane





^ permalink  raw  reply  [nested|flat] 15+ messages in thread

* Re: Add missing period to HINT messages
@ 2026-04-14 23:23  Peter Smith <[email protected]>
  parent: Amit Kapila <[email protected]>
  1 sibling, 0 replies; 15+ messages in thread

From: Peter Smith @ 2026-04-14 23:23 UTC (permalink / raw)
  To: Amit Kapila <[email protected]>; +Cc: Robert Treat <[email protected]>; Chao Li <[email protected]>; PostgreSQL Hackers <[email protected]>

On Mon, Apr 13, 2026 at 9:28 PM Amit Kapila <[email protected]> wrote:
>
> On Mon, Apr 13, 2026 at 6:32 AM Peter Smith <[email protected]> wrote:
> >
> > On Fri, Apr 10, 2026 at 11:10 PM Robert Treat <[email protected]> wrote:
> > >
> > > On Thu, Apr 9, 2026 at 9:05 PM Peter Smith <[email protected]> wrote:
> > > > On Thu, Apr 9, 2026 at 1:34 PM Chao Li <[email protected]> wrote:
> > > > >
> > > > ...
> > > > >
> > > > > I am not sure if your scope includes contrib/, if yes, I am sure you will find some occurrences there.
> > > > >
> > > >
> > > > Updated one more message found in contrib.
> > > >
> > > > PSA v2.
> > > >
> > >
> > > +1 to the general idea here, although at the risk of looking at
> > > patches before the morning coffee has settled in, ISTM you might have
> > > missed some entries? And/or this patch isn't against HEAD?  For
> > > example, you seem to be catching the line here
> > > https://github.com/postgres/postgres/blame/009ea1b08d7b8843435bd0f1137fa3df09aac79f/src/test/regress...,
> > > but not the one on line 52, maybe because it looks like a comment (but
> > > istm we should clean these all up. no?)
> > >
> >
> > Thanks for your review!
> >
> > Yes, the patch applies to HEAD. It looks like I was a bit slack in
> > updating some test comments. Hopefully, I have found them all now.
> >
>
> BTW, I find such a code cleanup exercise can be done even after
> feature freeze. If so, shall we do it as a HEAD-only patch or do it in
> bank branches as well?
>

Thanks for pushing.

======
Kind Regards,
Peter Smith.
Fujitsu Australia.





^ permalink  raw  reply  [nested|flat] 15+ messages in thread


end of thread, other threads:[~2026-04-14 23:23 UTC | newest]

Thread overview: 15+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2026-04-08 23:30 Add missing period to HINT messages Peter Smith <[email protected]>
2026-04-09 02:09 ` Chao Li <[email protected]>
2026-04-09 03:24   ` Peter Smith <[email protected]>
2026-04-09 03:33     ` Chao Li <[email protected]>
2026-04-10 01:05       ` Peter Smith <[email protected]>
2026-04-10 13:10         ` Robert Treat <[email protected]>
2026-04-13 01:01           ` Peter Smith <[email protected]>
2026-04-13 11:28             ` Amit Kapila <[email protected]>
2026-04-14 00:39               ` Robert Treat <[email protected]>
2026-04-14 01:00                 ` David G. Johnston <[email protected]>
2026-04-14 01:07                   ` Tom Lane <[email protected]>
2026-04-14 01:10                 ` Chao Li <[email protected]>
2026-04-14 01:15                   ` Bruce Momjian <[email protected]>
2026-04-14 01:18                   ` Tom Lane <[email protected]>
2026-04-14 23:23               ` Peter Smith <[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