public inbox for [email protected]
help / color / mirror / Atom feedFrom: Peter Smith <[email protected]>
To: Xiaopeng Wang <[email protected]>
Cc: Chao Li <[email protected]>
Cc: PostgreSQL Hackers <[email protected]>
Subject: Re: Add missing period to DETAIL messages
Date: Wed, 15 Apr 2026 17:41:10 +1000
Message-ID: <CAHut+PsaMX=CF6ASFVyg_mmmz0McDACvNHdV4z77WPE63+YC9Q@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]>
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.
======
Kind Regards,
Peter Smith.
Fujitsu Australia
Attachments:
[application/octet-stream] v4-0001-DETAIL-messages-fix-capitalization-and-add-missin.patch (33.6K, 2-v4-0001-DETAIL-messages-fix-capitalization-and-add-missin.patch)
download | inline diff:
From e2e40fcbb474891e01c1259cb0d769371c739688 Mon Sep 17 00:00:00 2001
From: Peter Smith <[email protected]>
Date: Wed, 15 Apr 2026 16:25:37 +1000
Subject: [PATCH v4] DETAIL messages - fix capitalization and add missing
periods.
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>
Discussion: https://www.postgresql.org/message-id/flat/CAHut%2BPszSntkUgN%2BQa9matGY6MLEoFGSuVbuKDgnnTdZ7YPRwg%40mail.gmail.com
---
contrib/cube/cubescan.l | 4 +-
contrib/cube/expected/cube.out | 46 +++++++++----------
contrib/dblink/dblink.c | 2 +-
.../passwordcheck/expected/passwordcheck.out | 2 +-
.../expected/passwordcheck_1.out | 2 +-
contrib/passwordcheck/passwordcheck.c | 2 +-
.../expected/pg_stash_advice.out | 2 +-
.../expected/pg_stash_advice_utf8.out | 2 +-
contrib/pg_stash_advice/pg_stash_advice.c | 8 ++--
.../postgres_fdw/expected/postgres_fdw.out | 2 +-
contrib/seg/expected/seg.out | 32 ++++++-------
contrib/seg/segscan.l | 4 +-
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 +-
.../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 +-
22 files changed, 74 insertions(+), 74 deletions(-)
diff --git a/contrib/cube/cubescan.l b/contrib/cube/cubescan.l
index e2806dc288f..286efce23aa 100644
--- a/contrib/cube/cubescan.l
+++ b/contrib/cube/cubescan.l
@@ -82,7 +82,7 @@ cube_yyerror(NDBOX **result, Size scanbuflen,
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
errmsg("invalid input syntax for cube"),
/* translator: %s is typically "syntax error" */
- errdetail("%s at end of input", message)));
+ errdetail("%s at end of input.", message)));
}
else
{
@@ -90,7 +90,7 @@ cube_yyerror(NDBOX **result, Size scanbuflen,
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
errmsg("invalid input syntax for cube"),
/* translator: first %s is typically "syntax error" */
- errdetail("%s at or near \"%s\"", message, yytext)));
+ errdetail("%s at or near \"%s\".", message, yytext)));
}
}
diff --git a/contrib/cube/expected/cube.out b/contrib/cube/expected/cube.out
index 47787c50bd9..f685e0acce5 100644
--- a/contrib/cube/expected/cube.out
+++ b/contrib/cube/expected/cube.out
@@ -189,78 +189,78 @@ SELECT ''::cube AS cube;
ERROR: invalid input syntax for cube
LINE 1: SELECT ''::cube AS cube;
^
-DETAIL: syntax error at end of input
+DETAIL: syntax error at end of input.
SELECT 'ABC'::cube AS cube;
ERROR: invalid input syntax for cube
LINE 1: SELECT 'ABC'::cube AS cube;
^
-DETAIL: syntax error at or near "A"
+DETAIL: syntax error at or near "A".
SELECT '[]'::cube AS cube;
ERROR: invalid input syntax for cube
LINE 1: SELECT '[]'::cube AS cube;
^
-DETAIL: syntax error at or near "]"
+DETAIL: syntax error at or near "]".
SELECT '[()]'::cube AS cube;
ERROR: invalid input syntax for cube
LINE 1: SELECT '[()]'::cube AS cube;
^
-DETAIL: syntax error at or near "]"
+DETAIL: syntax error at or near "]".
SELECT '[(1)]'::cube AS cube;
ERROR: invalid input syntax for cube
LINE 1: SELECT '[(1)]'::cube AS cube;
^
-DETAIL: syntax error at or near "]"
+DETAIL: syntax error at or near "]".
SELECT '[(1),]'::cube AS cube;
ERROR: invalid input syntax for cube
LINE 1: SELECT '[(1),]'::cube AS cube;
^
-DETAIL: syntax error at or near "]"
+DETAIL: syntax error at or near "]".
SELECT '[(1),2]'::cube AS cube;
ERROR: invalid input syntax for cube
LINE 1: SELECT '[(1),2]'::cube AS cube;
^
-DETAIL: syntax error at or near "2"
+DETAIL: syntax error at or near "2".
SELECT '[(1),(2),(3)]'::cube AS cube;
ERROR: invalid input syntax for cube
LINE 1: SELECT '[(1),(2),(3)]'::cube AS cube;
^
-DETAIL: syntax error at or near ","
+DETAIL: syntax error at or near ",".
SELECT '1,'::cube AS cube;
ERROR: invalid input syntax for cube
LINE 1: SELECT '1,'::cube AS cube;
^
-DETAIL: syntax error at end of input
+DETAIL: syntax error at end of input.
SELECT '1,2,'::cube AS cube;
ERROR: invalid input syntax for cube
LINE 1: SELECT '1,2,'::cube AS cube;
^
-DETAIL: syntax error at end of input
+DETAIL: syntax error at end of input.
SELECT '1,,2'::cube AS cube;
ERROR: invalid input syntax for cube
LINE 1: SELECT '1,,2'::cube AS cube;
^
-DETAIL: syntax error at or near ","
+DETAIL: syntax error at or near ",".
SELECT '(1,)'::cube AS cube;
ERROR: invalid input syntax for cube
LINE 1: SELECT '(1,)'::cube AS cube;
^
-DETAIL: syntax error at or near ")"
+DETAIL: syntax error at or near ")".
SELECT '(1,2,)'::cube AS cube;
ERROR: invalid input syntax for cube
LINE 1: SELECT '(1,2,)'::cube AS cube;
^
-DETAIL: syntax error at or near ")"
+DETAIL: syntax error at or near ")".
SELECT '(1,,2)'::cube AS cube;
ERROR: invalid input syntax for cube
LINE 1: SELECT '(1,,2)'::cube AS cube;
^
-DETAIL: syntax error at or near ","
+DETAIL: syntax error at or near ",".
-- invalid input: semantic errors and trailing garbage
SELECT '[(1),(2)],'::cube AS cube; -- 0
ERROR: invalid input syntax for cube
LINE 1: SELECT '[(1),(2)],'::cube AS cube;
^
-DETAIL: syntax error at or near ","
+DETAIL: syntax error at or near ",".
SELECT '[(1,2,3),(2,3)]'::cube AS cube; -- 1
ERROR: invalid input syntax for cube
LINE 1: SELECT '[(1,2,3),(2,3)]'::cube AS cube;
@@ -275,7 +275,7 @@ SELECT '(1),(2),'::cube AS cube; -- 2
ERROR: invalid input syntax for cube
LINE 1: SELECT '(1),(2),'::cube AS cube;
^
-DETAIL: syntax error at or near ","
+DETAIL: syntax error at or near ",".
SELECT '(1,2,3),(2,3)'::cube AS cube; -- 3
ERROR: invalid input syntax for cube
LINE 1: SELECT '(1,2,3),(2,3)'::cube AS cube;
@@ -290,37 +290,37 @@ SELECT '(1,2,3)ab'::cube AS cube; -- 4
ERROR: invalid input syntax for cube
LINE 1: SELECT '(1,2,3)ab'::cube AS cube;
^
-DETAIL: syntax error at or near "a"
+DETAIL: syntax error at or near "a".
SELECT '(1,2,3)a'::cube AS cube; -- 5
ERROR: invalid input syntax for cube
LINE 1: SELECT '(1,2,3)a'::cube AS cube;
^
-DETAIL: syntax error at or near "a"
+DETAIL: syntax error at or near "a".
SELECT '(1,2)('::cube AS cube; -- 5
ERROR: invalid input syntax for cube
LINE 1: SELECT '(1,2)('::cube AS cube;
^
-DETAIL: syntax error at or near "("
+DETAIL: syntax error at or near "(".
SELECT '1,2ab'::cube AS cube; -- 6
ERROR: invalid input syntax for cube
LINE 1: SELECT '1,2ab'::cube AS cube;
^
-DETAIL: syntax error at or near "a"
+DETAIL: syntax error at or near "a".
SELECT '1 e7'::cube AS cube; -- 6
ERROR: invalid input syntax for cube
LINE 1: SELECT '1 e7'::cube AS cube;
^
-DETAIL: syntax error at or near "e"
+DETAIL: syntax error at or near "e".
SELECT '1,2a'::cube AS cube; -- 7
ERROR: invalid input syntax for cube
LINE 1: SELECT '1,2a'::cube AS cube;
^
-DETAIL: syntax error at or near "a"
+DETAIL: syntax error at or near "a".
SELECT '1..2'::cube AS cube; -- 7
ERROR: invalid input syntax for cube
LINE 1: SELECT '1..2'::cube AS cube;
^
-DETAIL: syntax error at or near ".2"
+DETAIL: syntax error at or near ".2".
SELECT '-1e-700'::cube AS cube; -- out of range
ERROR: "-1e-700" is out of range for type double precision
LINE 1: SELECT '-1e-700'::cube AS cube;
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/contrib/seg/expected/seg.out b/contrib/seg/expected/seg.out
index cd21139b5a7..b9fbf23c0f1 100644
--- a/contrib/seg/expected/seg.out
+++ b/contrib/seg/expected/seg.out
@@ -405,42 +405,42 @@ SELECT ''::seg AS seg;
ERROR: bad seg representation
LINE 1: SELECT ''::seg AS seg;
^
-DETAIL: syntax error at end of input
+DETAIL: syntax error at end of input.
SELECT 'ABC'::seg AS seg;
ERROR: bad seg representation
LINE 1: SELECT 'ABC'::seg AS seg;
^
-DETAIL: syntax error at or near "A"
+DETAIL: syntax error at or near "A".
SELECT '1ABC'::seg AS seg;
ERROR: bad seg representation
LINE 1: SELECT '1ABC'::seg AS seg;
^
-DETAIL: syntax error at or near "A"
+DETAIL: syntax error at or near "A".
SELECT '1.'::seg AS seg;
ERROR: bad seg representation
LINE 1: SELECT '1.'::seg AS seg;
^
-DETAIL: syntax error at or near "."
+DETAIL: syntax error at or near ".".
SELECT '1.....'::seg AS seg;
ERROR: bad seg representation
LINE 1: SELECT '1.....'::seg AS seg;
^
-DETAIL: syntax error at or near ".."
+DETAIL: syntax error at or near "..".
SELECT '.1'::seg AS seg;
ERROR: bad seg representation
LINE 1: SELECT '.1'::seg AS seg;
^
-DETAIL: syntax error at or near "."
+DETAIL: syntax error at or near ".".
SELECT '1..2.'::seg AS seg;
ERROR: bad seg representation
LINE 1: SELECT '1..2.'::seg AS seg;
^
-DETAIL: syntax error at or near "."
+DETAIL: syntax error at or near ".".
SELECT '1 e7'::seg AS seg;
ERROR: bad seg representation
LINE 1: SELECT '1 e7'::seg AS seg;
^
-DETAIL: syntax error at or near "e"
+DETAIL: syntax error at or near "e".
SELECT '1e700'::seg AS seg;
ERROR: "1e700" is out of range for type real
LINE 1: SELECT '1e700'::seg AS seg;
@@ -1287,13 +1287,13 @@ FROM unnest(ARRAY['-1 .. 1'::text,
'1 e7',
'1e700']) str,
LATERAL pg_input_error_info(str, 'seg') as errinfo;
- seg | ok | sql_error_code | message | detail | hint
-----------+----+----------------+---------------------------------------+------------------------------+------
- -1 .. 1 | t | | | |
- 100(+-)1 | t | | | |
- | f | 42601 | bad seg representation | syntax error at end of input |
- ABC | f | 42601 | bad seg representation | syntax error at or near "A" |
- 1 e7 | f | 42601 | bad seg representation | syntax error at or near "e" |
- 1e700 | f | 22003 | "1e700" is out of range for type real | |
+ seg | ok | sql_error_code | message | detail | hint
+----------+----+----------------+---------------------------------------+-------------------------------+------
+ -1 .. 1 | t | | | |
+ 100(+-)1 | t | | | |
+ | f | 42601 | bad seg representation | syntax error at end of input. |
+ ABC | f | 42601 | bad seg representation | syntax error at or near "A". |
+ 1 e7 | f | 42601 | bad seg representation | syntax error at or near "e". |
+ 1e700 | f | 22003 | "1e700" is out of range for type real | |
(6 rows)
diff --git a/contrib/seg/segscan.l b/contrib/seg/segscan.l
index 3a0cd7ed506..18558688765 100644
--- a/contrib/seg/segscan.l
+++ b/contrib/seg/segscan.l
@@ -79,7 +79,7 @@ seg_yyerror(SEG *result, struct Node *escontext, yyscan_t yyscanner, const char
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("bad seg representation"),
/* translator: %s is typically "syntax error" */
- errdetail("%s at end of input", message)));
+ errdetail("%s at end of input.", message)));
}
else
{
@@ -87,7 +87,7 @@ seg_yyerror(SEG *result, struct Node *escontext, yyscan_t yyscanner, const char
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("bad seg representation"),
/* translator: first %s is typically "syntax error" */
- errdetail("%s at or near \"%s\"", message, yytext)));
+ errdetail("%s at or near \"%s\".", message, yytext)));
}
}
diff --git a/src/backend/commands/copyto.c b/src/backend/commands/copyto.c
index f0e0147c665..2d2a2e84952 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]
Subject: Re: Add missing period to DETAIL messages
In-Reply-To: <CAHut+PsaMX=CF6ASFVyg_mmmz0McDACvNHdV4z77WPE63+YC9Q@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