public inbox for [email protected]
help / color / mirror / Atom feedFrom: Peter Smith <[email protected]>
To: Peter Eisentraut <[email protected]>
Cc: Xiaopeng Wang <[email protected]>
Cc: Chao Li <[email protected]>
Cc: PostgreSQL Hackers <[email protected]>
Subject: Re: Add missing period to DETAIL messages
Date: Thu, 16 Apr 2026 10:22:02 +1000
Message-ID: <CAHut+Ps-O6FnQwxTJVUpEQrUQNYvgxWXxUKfrt0AAc74CtFSYg@mail.gmail.com> (raw)
In-Reply-To: <[email protected]>
References: <CAHut+PszSntkUgN+Qa9matGY6MLEoFGSuVbuKDgnnTdZ7YPRwg@mail.gmail.com>
<[email protected]>
<CAHut+PvAaR3h1wyGgO+761Oa_ywjFToX9AmKNnHhQX6e-N=k_w@mail.gmail.com>
<CAHut+PtBNKnBVcidXbx4c-ifq44KRb+J4dCUh-2-2sccy0w3Pg@mail.gmail.com>
<CAHut+Pt=M3AFJjSFHAzgvuxtuQJDnB38FPrA9EH3PsSvZkLcdw@mail.gmail.com>
<[email protected]>
<CAHut+PsaMX=CF6ASFVyg_mmmz0McDACvNHdV4z77WPE63+YC9Q@mail.gmail.com>
<[email protected]>
On Thu, Apr 16, 2026 at 4:26 AM Peter Eisentraut <[email protected]> wrote:
>
> On 15.04.26 09:41, Peter Smith wrote:
> > On Wed, Apr 15, 2026 at 3:48 PM Xiaopeng Wang <[email protected]> wrote:
> >>
> > ...
> >>
> >> Looks good to me.
> >>
> >> A small comment is that, the commit message claims only “add missing period to DETAIL messages”, but apparently the patch also changes capitalization in many places, so the commit message should be updated.
> >>
> >
> > Fair point. Thanks for your review!
> >
> > PSA v4 which has an improved commit message.
>
> Most of these look good, but I don't think this is an improvement:
>
> -DETAIL: syntax error at end of input
> +DETAIL: syntax error at end of input.
>
> The guidelines say that the detail message should be a sentence. But
> this is not a sentence. Just adding a period doesn't make it a
> sentence. IMO, having a period at the end of a thing that is not a
> sentence is worse than not having it be a sentence. The latter just
> violates our quality standards, the former is confusing for a user who
> sees that particular output.
Thanks for your review.
OK, I've removed that "syntax error at end of input." change from the patch.
IIUC, the identical (non-sentence) issue also applies to other ones
like 'syntax error at or near \"%s\".'
So I removed those from the patch, too.
PSA v5, which makes the above changes.
~~
Now I am having doubts about those '%s depends on column \"%s\".' changes.
Despite looking like sentences, I have no control over the first word
capitalisation, so the results are like:
-DETAIL: rule _RETURN on view usersview depends on column "seq"
+DETAIL: rule _RETURN on view usersview depends on column "seq".
In hindsight, maybe just adding periods for these was also not
warranted? What do you think about those?
======
Kind Regards,
Peter Smith.
Fujitsu Australia
Attachments:
[application/octet-stream] v5-0001-Change-DETAIL-messages-to-conform-to-the-style-gu.patch (22.8K, 2-v5-0001-Change-DETAIL-messages-to-conform-to-the-style-gu.patch)
download | inline diff:
From 05bfe46802b6bbff220b59cb123bf02a3a83ed90 Mon Sep 17 00:00:00 2001
From: Peter Smith <[email protected]>
Date: Thu, 16 Apr 2026 10:13:56 +1000
Subject: [PATCH v5] Change DETAIL messages to conform to the style guide by
capitalizing the first word of sentences and ending sentences with a period.
Author: Peter Smith <[email protected]>
Reviewed-by: Chao Li <[email protected]>
Reviewed-by: vignesh C <vignesh21.gmail.com>
Reviewed-by: Xiaopeng Wang <wxp_728.163.com>
Reviewed-by: Peter Eisentraut <[email protected]>
Discussion: https://www.postgresql.org/message-id/flat/CAHut%2BPszSntkUgN%2BQa9matGY6MLEoFGSuVbuKDgnnTdZ7YPRwg%40mail.gmail.com
---
contrib/dblink/dblink.c | 2 +-
contrib/passwordcheck/expected/passwordcheck.out | 2 +-
contrib/passwordcheck/expected/passwordcheck_1.out | 2 +-
contrib/passwordcheck/passwordcheck.c | 2 +-
contrib/pg_stash_advice/expected/pg_stash_advice.out | 2 +-
.../pg_stash_advice/expected/pg_stash_advice_utf8.out | 2 +-
contrib/pg_stash_advice/pg_stash_advice.c | 8 ++++----
contrib/postgres_fdw/expected/postgres_fdw.out | 2 +-
src/backend/commands/copyto.c | 2 +-
src/backend/commands/extension.c | 2 +-
src/backend/commands/tablecmds.c | 10 +++++-----
src/backend/libpq/be-secure-openssl.c | 2 +-
src/backend/partitioning/partbounds.c | 4 ++--
.../test_extensions/expected/test_extensions.out | 2 +-
src/test/regress/expected/create_view.out | 2 +-
src/test/regress/expected/partition_merge.out | 4 ++--
src/test/regress/expected/partition_split.out | 10 +++++-----
src/test/regress/expected/rangefuncs.out | 2 +-
18 files changed, 31 insertions(+), 31 deletions(-)
diff --git a/contrib/dblink/dblink.c b/contrib/dblink/dblink.c
index 9798cb535bc..2113aa41333 100644
--- a/contrib/dblink/dblink.c
+++ b/contrib/dblink/dblink.c
@@ -2710,7 +2710,7 @@ dblink_security_check(PGconn *conn, const char *connname, const char *connstr)
ereport(ERROR,
(errcode(ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED),
errmsg("password or GSSAPI delegated credentials required"),
- errdetail("Non-superusers may only connect using credentials they provide, eg: password in connection string or delegated GSSAPI credentials"),
+ errdetail("Non-superusers may only connect using credentials they provide, eg: password in connection string or delegated GSSAPI credentials."),
errhint("Ensure provided credentials match target server's authentication method.")));
}
diff --git a/contrib/passwordcheck/expected/passwordcheck.out b/contrib/passwordcheck/expected/passwordcheck.out
index 83472c76d27..9d02129e936 100644
--- a/contrib/passwordcheck/expected/passwordcheck.out
+++ b/contrib/passwordcheck/expected/passwordcheck.out
@@ -6,7 +6,7 @@ ALTER USER regress_passwordcheck_user1 PASSWORD 'a_nice_long_password';
-- error: too short
ALTER USER regress_passwordcheck_user1 PASSWORD 'tooshrt';
ERROR: password is too short
-DETAIL: password must be at least "passwordcheck.min_password_length" (8) bytes long
+DETAIL: Password must be at least "passwordcheck.min_password_length" (8) bytes long.
-- ok
SET passwordcheck.min_password_length = 6;
ALTER USER regress_passwordcheck_user1 PASSWORD 'v_shrt';
diff --git a/contrib/passwordcheck/expected/passwordcheck_1.out b/contrib/passwordcheck/expected/passwordcheck_1.out
index fb12ec45cc4..a334720431d 100644
--- a/contrib/passwordcheck/expected/passwordcheck_1.out
+++ b/contrib/passwordcheck/expected/passwordcheck_1.out
@@ -6,7 +6,7 @@ ALTER USER regress_passwordcheck_user1 PASSWORD 'a_nice_long_password';
-- error: too short
ALTER USER regress_passwordcheck_user1 PASSWORD 'tooshrt';
ERROR: password is too short
-DETAIL: password must be at least "passwordcheck.min_password_length" (8) bytes long
+DETAIL: Password must be at least "passwordcheck.min_password_length" (8) bytes long.
-- ok
SET passwordcheck.min_password_length = 6;
ALTER USER regress_passwordcheck_user1 PASSWORD 'v_shrt';
diff --git a/contrib/passwordcheck/passwordcheck.c b/contrib/passwordcheck/passwordcheck.c
index 13fd5c976a0..b45187cce9e 100644
--- a/contrib/passwordcheck/passwordcheck.c
+++ b/contrib/passwordcheck/passwordcheck.c
@@ -101,7 +101,7 @@ check_password(const char *username,
ereport(ERROR,
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
errmsg("password is too short"),
- errdetail("password must be at least \"passwordcheck.min_password_length\" (%d) bytes long",
+ errdetail("Password must be at least \"passwordcheck.min_password_length\" (%d) bytes long.",
min_password_length)));
/* check if the password contains the username */
diff --git a/contrib/pg_stash_advice/expected/pg_stash_advice.out b/contrib/pg_stash_advice/expected/pg_stash_advice.out
index 788da854aa7..8c24a21295e 100644
--- a/contrib/pg_stash_advice/expected/pg_stash_advice.out
+++ b/contrib/pg_stash_advice/expected/pg_stash_advice.out
@@ -315,7 +315,7 @@ SELECT pg_create_advice_stash(' ');
ERROR: advice stash name must begin with a letter or underscore and contain only letters, digits, and underscores
SET pg_stash_advice.stash_name = '99bottles';
ERROR: invalid value for parameter "pg_stash_advice.stash_name": "99bottles"
-DETAIL: advice stash name must begin with a letter or underscore and contain only letters, digits, and underscores
+DETAIL: Advice stash name must begin with a letter or underscore and contain only letters, digits, and underscores.
-- Clean up state in dynamic shared memory.
SELECT pg_drop_advice_stash('regress_stash');
pg_drop_advice_stash
diff --git a/contrib/pg_stash_advice/expected/pg_stash_advice_utf8.out b/contrib/pg_stash_advice/expected/pg_stash_advice_utf8.out
index 7c532571ed5..c4bc93c8efb 100644
--- a/contrib/pg_stash_advice/expected/pg_stash_advice_utf8.out
+++ b/contrib/pg_stash_advice/expected/pg_stash_advice_utf8.out
@@ -13,4 +13,4 @@ SELECT pg_create_advice_stash('café');
ERROR: advice stash name must not contain non-ASCII characters
SET pg_stash_advice.stash_name = 'café';
ERROR: invalid value for parameter "pg_stash_advice.stash_name": "café"
-DETAIL: advice stash name must not contain non-ASCII characters
+DETAIL: Advice stash name must not contain non-ASCII characters.
diff --git a/contrib/pg_stash_advice/pg_stash_advice.c b/contrib/pg_stash_advice/pg_stash_advice.c
index 1858c6a135a..343258c88b1 100644
--- a/contrib/pg_stash_advice/pg_stash_advice.c
+++ b/contrib/pg_stash_advice/pg_stash_advice.c
@@ -385,7 +385,7 @@ pgsa_check_stash_name_guc(char **newval, void **extra, GucSource source)
if (strlen(stash_name) + 1 > NAMEDATALEN)
{
GUC_check_errcode(ERRCODE_INVALID_PARAMETER_VALUE);
- GUC_check_errdetail("advice stash names may not be longer than %d bytes",
+ GUC_check_errdetail("Advice stash names may not be longer than %d bytes.",
NAMEDATALEN - 1);
return false;
}
@@ -397,7 +397,7 @@ pgsa_check_stash_name_guc(char **newval, void **extra, GucSource source)
if (!pg_is_ascii(stash_name))
{
GUC_check_errcode(ERRCODE_INVALID_PARAMETER_VALUE);
- GUC_check_errdetail("advice stash name must not contain non-ASCII characters");
+ GUC_check_errdetail("Advice stash name must not contain non-ASCII characters.");
return false;
}
@@ -409,7 +409,7 @@ pgsa_check_stash_name_guc(char **newval, void **extra, GucSource source)
if (!pgsa_is_identifier(stash_name))
{
GUC_check_errcode(ERRCODE_INVALID_PARAMETER_VALUE);
- GUC_check_errdetail("advice stash name must begin with a letter or underscore and contain only letters, digits, and underscores");
+ GUC_check_errdetail("Advice stash name must begin with a letter or underscore and contain only letters, digits, and underscores.");
return false;
}
@@ -698,7 +698,7 @@ pgsa_set_advice_string(char *stash_name, int64 queryId, char *advice_string)
ereport(ERROR,
errcode(ERRCODE_OUT_OF_MEMORY),
errmsg("out of memory"),
- errdetail("could not insert advice string into shared hash table"));
+ errdetail("Could not insert advice string into shared hash table."));
}
/* Update the entry and release the lock. */
diff --git a/contrib/postgres_fdw/expected/postgres_fdw.out b/contrib/postgres_fdw/expected/postgres_fdw.out
index 10e87acabef..f0bf16b3bd5 100644
--- a/contrib/postgres_fdw/expected/postgres_fdw.out
+++ b/contrib/postgres_fdw/expected/postgres_fdw.out
@@ -11664,7 +11664,7 @@ DELETE FROM result_tbl;
-- Test COPY TO when foreign table is partition
COPY async_pt TO stdout; --error
ERROR: cannot copy from foreign table "async_p1"
-DETAIL: Partition "async_p1" is a foreign table in partitioned table "async_pt"
+DETAIL: Partition "async_p1" is a foreign table in partitioned table "async_pt".
HINT: Try the COPY (SELECT ...) TO variant.
DROP FOREIGN TABLE async_p3;
DROP TABLE base_tbl3;
diff --git a/src/backend/commands/copyto.c b/src/backend/commands/copyto.c
index 85d15353647..5fa3bba8b56 100644
--- a/src/backend/commands/copyto.c
+++ b/src/backend/commands/copyto.c
@@ -838,7 +838,7 @@ BeginCopyTo(ParseState *pstate,
ereport(ERROR,
errcode(ERRCODE_WRONG_OBJECT_TYPE),
errmsg("cannot copy from foreign table \"%s\"", relation_name),
- errdetail("Partition \"%s\" is a foreign table in partitioned table \"%s\"",
+ errdetail("Partition \"%s\" is a foreign table in partitioned table \"%s\".",
relation_name, RelationGetRelationName(rel)),
errhint("Try the COPY (SELECT ...) TO variant."));
}
diff --git a/src/backend/commands/extension.c b/src/backend/commands/extension.c
index a330b5fd6ce..cd8810e7dbd 100644
--- a/src/backend/commands/extension.c
+++ b/src/backend/commands/extension.c
@@ -3431,7 +3431,7 @@ AlterExtensionNamespace(const char *extensionName, const char *newschema, Oid *o
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("extension \"%s\" does not support SET SCHEMA",
NameStr(extForm->extname)),
- errdetail("%s is not in the extension's schema \"%s\"",
+ errdetail("%s is not in the extension's schema \"%s\".",
getObjectDescription(&dep, false),
get_namespace_name(oldNspOid))));
}
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index 803a0e47567..d9d5622aa46 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -15377,7 +15377,7 @@ RememberAllDependentForRebuilding(AlteredTableInfo *tab, AlterTableType subtype,
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("cannot alter type of a column used by a function or procedure"),
- errdetail("%s depends on column \"%s\"",
+ errdetail("%s depends on column \"%s\".",
getObjectDescription(&foundObject, false),
colName)));
break;
@@ -15392,7 +15392,7 @@ RememberAllDependentForRebuilding(AlteredTableInfo *tab, AlterTableType subtype,
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("cannot alter type of a column used by a view or rule"),
- errdetail("%s depends on column \"%s\"",
+ errdetail("%s depends on column \"%s\".",
getObjectDescription(&foundObject, false),
colName)));
break;
@@ -15412,7 +15412,7 @@ RememberAllDependentForRebuilding(AlteredTableInfo *tab, AlterTableType subtype,
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("cannot alter type of a column used in a trigger definition"),
- errdetail("%s depends on column \"%s\"",
+ errdetail("%s depends on column \"%s\".",
getObjectDescription(&foundObject, false),
colName)));
break;
@@ -15431,7 +15431,7 @@ RememberAllDependentForRebuilding(AlteredTableInfo *tab, AlterTableType subtype,
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("cannot alter type of a column used in a policy definition"),
- errdetail("%s depends on column \"%s\"",
+ errdetail("%s depends on column \"%s\".",
getObjectDescription(&foundObject, false),
colName)));
break;
@@ -15490,7 +15490,7 @@ RememberAllDependentForRebuilding(AlteredTableInfo *tab, AlterTableType subtype,
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("cannot alter type of a column used by a publication WHERE clause"),
- errdetail("%s depends on column \"%s\"",
+ errdetail("%s depends on column \"%s\".",
getObjectDescription(&foundObject, false),
colName)));
break;
diff --git a/src/backend/libpq/be-secure-openssl.c b/src/backend/libpq/be-secure-openssl.c
index a3e222f3a3d..c7fe2dc7b99 100644
--- a/src/backend/libpq/be-secure-openssl.c
+++ b/src/backend/libpq/be-secure-openssl.c
@@ -473,7 +473,7 @@ be_tls_init(bool isServerStart)
ereport(isServerStart ? FATAL : LOG,
(errcode(ERRCODE_CONFIG_FILE_ERROR),
errmsg("could not set SSL protocol version range"),
- errdetail("\"%s\" cannot be higher than \"%s\"",
+ errdetail("\"%s\" cannot be higher than \"%s\".",
"ssl_min_protocol_version",
"ssl_max_protocol_version")));
goto error;
diff --git a/src/backend/partitioning/partbounds.c b/src/backend/partitioning/partbounds.c
index 5afa781f086..8b1ac2a90a9 100644
--- a/src/backend/partitioning/partbounds.c
+++ b/src/backend/partitioning/partbounds.c
@@ -5032,7 +5032,7 @@ check_two_partitions_bounds_range(Relation parent,
errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
errmsg("can not merge partition \"%s\" together with partition \"%s\"",
second_name->relname, first_name->relname),
- errdetail("lower bound of partition \"%s\" is not equal to the upper bound of partition \"%s\"",
+ errdetail("Lower bound of partition \"%s\" is not equal to the upper bound of partition \"%s\".",
second_name->relname, first_name->relname),
errhint("ALTER TABLE ... MERGE PARTITIONS requires the partition bounds to be adjacent."),
parser_errposition(pstate, datum->location));
@@ -5041,7 +5041,7 @@ check_two_partitions_bounds_range(Relation parent,
errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
errmsg("can not split to partition \"%s\" together with partition \"%s\"",
second_name->relname, first_name->relname),
- errdetail("lower bound of partition \"%s\" is not equal to the upper bound of partition \"%s\"",
+ errdetail("Lower bound of partition \"%s\" is not equal to the upper bound of partition \"%s\".",
second_name->relname, first_name->relname),
errhint("ALTER TABLE ... SPLIT PARTITION requires the partition bounds to be adjacent."),
parser_errposition(pstate, datum->location));
diff --git a/src/test/modules/test_extensions/expected/test_extensions.out b/src/test/modules/test_extensions/expected/test_extensions.out
index fdae52d6ab2..1b5debdeeb1 100644
--- a/src/test/modules/test_extensions/expected/test_extensions.out
+++ b/src/test/modules/test_extensions/expected/test_extensions.out
@@ -566,7 +566,7 @@ SELECT pg_describe_object(classid, objid, objsubid) as obj,
-- fails, as function dep_req1 is not in the same schema as the extension.
ALTER EXTENSION test_ext_req_schema1 SET SCHEMA test_func_dep3;
ERROR: extension "test_ext_req_schema1" does not support SET SCHEMA
-DETAIL: function test_func_dep2.dep_req1() is not in the extension's schema "test_func_dep1"
+DETAIL: function test_func_dep2.dep_req1() is not in the extension's schema "test_func_dep1".
-- Move back the function, and the extension can be moved.
ALTER FUNCTION test_func_dep2.dep_req1() SET SCHEMA test_func_dep1;
ALTER EXTENSION test_ext_req_schema1 SET SCHEMA test_func_dep3;
diff --git a/src/test/regress/expected/create_view.out b/src/test/regress/expected/create_view.out
index 63cf4b4371d..053fa56573f 100644
--- a/src/test/regress/expected/create_view.out
+++ b/src/test/regress/expected/create_view.out
@@ -1720,7 +1720,7 @@ rollback;
-- likewise, altering a referenced column's type is prohibited ...
alter table tt14t alter column f4 type integer using f4::integer; -- fail
ERROR: cannot alter type of a column used by a view or rule
-DETAIL: rule _RETURN on view tt14v depends on column "f4"
+DETAIL: rule _RETURN on view tt14v depends on column "f4".
-- ... but some bug might let it happen, so check defenses
begin;
-- destroy the dependency entry that prevents the ALTER:
diff --git a/src/test/regress/expected/partition_merge.out b/src/test/regress/expected/partition_merge.out
index 883110e25d9..9b8f5ee137c 100644
--- a/src/test/regress/expected/partition_merge.out
+++ b/src/test/regress/expected/partition_merge.out
@@ -35,14 +35,14 @@ HINT: ALTER TABLE ... MERGE PARTITIONS can only merge partitions don't have sub
-- (space between sections sales_jan2022 and sales_mar2022)
ALTER TABLE sales_range MERGE PARTITIONS (sales_jan2022, sales_mar2022) INTO sales_jan_mar2022;
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"
+DETAIL: Lower bound of partition "sales_mar2022" is not equal to the upper bound of partition "sales_jan2022".
HINT: ALTER TABLE ... MERGE PARTITIONS requires the partition bounds to be adjacent.
-- ERROR: can not merge partition "sales_jan2022" together with partition "sales_dec2021"
-- DETAIL: lower bound of partition "sales_jan2022" is not equal to the upper bound of partition "sales_dec2021"
-- (space between sections sales_dec2021 and sales_jan2022)
ALTER TABLE sales_range MERGE PARTITIONS (sales_dec2021, sales_jan2022, sales_feb2022) INTO sales_dec_jan_feb2022;
ERROR: can not merge partition "sales_jan2022" together with partition "sales_dec2021"
-DETAIL: lower bound of partition "sales_jan2022" is not equal to the upper bound of partition "sales_dec2021"
+DETAIL: Lower bound of partition "sales_jan2022" is not equal to the upper bound of partition "sales_dec2021".
HINT: ALTER TABLE ... MERGE PARTITIONS requires the partition bounds to be adjacent.
-- ERROR: partition with name "sales_feb2022" is already used
ALTER TABLE sales_range MERGE PARTITIONS (sales_feb2022, sales_mar2022, partitions_merge_schema.sales_feb2022) INTO sales_feb_mar_apr2022;
diff --git a/src/test/regress/expected/partition_split.out b/src/test/regress/expected/partition_split.out
index 43ca299648e..e35e859cc13 100644
--- a/src/test/regress/expected/partition_split.out
+++ b/src/test/regress/expected/partition_split.out
@@ -109,7 +109,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
ERROR: can not split to partition "sales_mar2022" together with partition "sales_feb2022"
LINE 3: PARTITION sales_mar2022 FOR VALUES FROM ('2022-02-01') TO...
^
-DETAIL: lower bound of partition "sales_mar2022" is not equal to the upper bound of partition "sales_feb2022"
+DETAIL: Lower bound of partition "sales_mar2022" is not equal to the upper bound of partition "sales_feb2022".
HINT: ALTER TABLE ... SPLIT PARTITION requires the partition bounds to be adjacent.
-- Tests for spaces between partitions, them should be executed without DEFAULT partition
ALTER TABLE sales_range DETACH PARTITION sales_others;
@@ -470,7 +470,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_others INTO
ERROR: can not split to partition "sales_error" together with partition "sales_dec2021"
LINE 3: PARTITION sales_error FOR VALUES FROM ('2021-12-30') TO (...
^
-DETAIL: lower bound of partition "sales_error" is not equal to the upper bound of partition "sales_dec2021"
+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.
-- sales_error intersects with sales_feb2022 (upper bound)
-- ERROR: can not split to partition "sales_feb2022" together with partition "sales_error"
@@ -482,7 +482,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_others INTO
ERROR: can not split to partition "sales_feb2022" together with partition "sales_error"
LINE 4: PARTITION sales_feb2022 FOR VALUES FROM ('2022-02-01') TO...
^
-DETAIL: lower bound of partition "sales_feb2022" is not equal to the upper bound of partition "sales_error"
+DETAIL: Lower bound of partition "sales_feb2022" is not equal to the upper bound of partition "sales_error".
HINT: ALTER TABLE ... SPLIT PARTITION requires the partition bounds to be adjacent.
-- sales_error intersects with sales_dec2021 (inside bound)
-- ERROR: can not split to partition "sales_error" together with partition "sales_dec2021"
@@ -494,7 +494,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_others INTO
ERROR: can not split to partition "sales_error" together with partition "sales_dec2021"
LINE 3: PARTITION sales_error FOR VALUES FROM ('2021-12-10') TO (...
^
-DETAIL: lower bound of partition "sales_error" is not equal to the upper bound of partition "sales_dec2021"
+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.
-- sales_error intersects with sales_dec2021 (exactly the same bounds)
-- ERROR: can not split to partition "sales_error" together with partition "sales_dec2021"
@@ -506,7 +506,7 @@ ALTER TABLE sales_range SPLIT PARTITION sales_others INTO
ERROR: can not split to partition "sales_error" together with partition "sales_dec2021"
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"
+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 must be DEFAULT.
diff --git a/src/test/regress/expected/rangefuncs.out b/src/test/regress/expected/rangefuncs.out
index 5cc94011e97..a7cb1b5611d 100644
--- a/src/test/regress/expected/rangefuncs.out
+++ b/src/test/regress/expected/rangefuncs.out
@@ -2279,7 +2279,7 @@ ERROR: attribute 5 of type record has been dropped
rollback;
alter table users alter column seq type numeric; -- fail, view has reference
ERROR: cannot alter type of a column used by a view or rule
-DETAIL: rule _RETURN on view usersview depends on column "seq"
+DETAIL: rule _RETURN on view usersview depends on column "seq".
-- likewise, check we don't crash if the dependency goes wrong
begin;
-- destroy the dependency entry that prevents the ALTER:
--
2.47.3
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected], [email protected], [email protected]
Subject: Re: Add missing period to DETAIL messages
In-Reply-To: <CAHut+Ps-O6FnQwxTJVUpEQrUQNYvgxWXxUKfrt0AAc74CtFSYg@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox