Two more minor things on this:

I found it a bit silly to mention the ALTER command in the error message
and then output only the three-part-qualified name in the output file
(and no specific command to run) -- so for an instant I was tempted to
write the full ALTER TABLE command in the output file instead.  However
I then noticed that check.c does not use fmtId() or fmtQualifiedId()
anywhere, so that code would look out of place in check.c and perhaps
even be a problem for backpatching.  Do people thing it'd be an
improvement to change it that way?

On 2017-Dec-13, Justin Pryzby wrote:

> Here are some spelling and grammar fixes to that patch:
> 
> but nullabe in its children: nullable
> child column is not market: marked
> with adding: by adding
> and restart: and restarting
> the problem columns: the problematic columns
> 9.5, 9.6, 10: 9.5, 9.6, and 10
> restore, that will cause error.: restore phase of pg_upgrade, that would 
> cause an error.

So the phrase "the problem columns" appears in multiple places in
pg_upgrade/check.c.  Should we fix them all?  It turns out that I
rewrote the message as submitted into completely different wording
(without realizing that this had been reported), so these words don't
appear anymore in the new commit.  But we could fix these old ones while
we're here -- yes?  (See below)

My rewrite is this:
       pg_fatal("Your installation contains inconsistent NOT NULL 
constraints.\n"
                "If the parent column(s) are NOT NULL, then the child column 
must\n"
                "also be marked NOT NULL, or the upgrade will fail.\n"
                "You can fix this by running\n"
                "  ALTER TABLE tablename ALTER column SET NOT NULL;\n"
                "on each column listed in the file:\n"
                "    %s", report.path);


Here's what a patch looks like to change "problem columns" to
"problematic columns".

diff --git a/src/bin/pg_upgrade/check.c b/src/bin/pg_upgrade/check.c
index 2106869b999..ad80f00c055 100644
--- a/src/bin/pg_upgrade/check.c
+++ b/src/bin/pg_upgrade/check.c
@@ -119,7 +119,7 @@ static DataTypesUsageChecks data_types_usage_checks[] =
                gettext_noop("Your installation contains system-defined 
composite types in user tables.\n"
                                         "These type OIDs are not stable across 
PostgreSQL versions,\n"
                                         "so this cluster cannot currently be 
upgraded.  You can drop the\n"
-                                        "problem columns and restart the 
upgrade.\n"),
+                                        "problematic columns and restart the 
upgrade.\n"),
                .threshold_version = ALL_VERSIONS
        },
 
@@ -139,7 +139,7 @@ static DataTypesUsageChecks data_types_usage_checks[] =
                                         "This data type changed its internal 
and input/output format\n"
                                         "between your old and new versions so 
this\n"
                                         "cluster cannot currently be upgraded. 
 You can\n"
-                                        "drop the problem columns and restart 
the upgrade.\n"),
+                                        "drop the problematic columns and 
restart the upgrade.\n"),
                .threshold_version = 903
        },
 
@@ -183,7 +183,7 @@ static DataTypesUsageChecks data_types_usage_checks[] =
                gettext_noop("Your installation contains one of the reg* data 
types in user tables.\n"
                                         "These data types reference system 
OIDs that are not preserved by\n"
                                         "pg_upgrade, so this cluster cannot 
currently be upgraded.  You can\n"
-                                        "drop the problem columns and restart 
the upgrade.\n"),
+                                        "drop the problematic columns and 
restart the upgrade.\n"),
                .threshold_version = ALL_VERSIONS
        },
 
@@ -200,7 +200,7 @@ static DataTypesUsageChecks data_types_usage_checks[] =
                gettext_noop("Your installation contains the \"aclitem\" data 
type in user tables.\n"
                                         "The internal format of \"aclitem\" 
changed in PostgreSQL version 16\n"
                                         "so this cluster cannot currently be 
upgraded.  You can drop the\n"
-                                        "problem columns and restart the 
upgrade.\n"),
+                                        "problematic columns and restart the 
upgrade.\n"),
                .threshold_version = 1500
        },
 
@@ -223,7 +223,7 @@ static DataTypesUsageChecks data_types_usage_checks[] =
                .report_text =
                gettext_noop("Your installation contains the \"unknown\" data 
type in user tables.\n"
                                         "This data type is no longer allowed 
in tables, so this cluster\n"
-                                        "cannot currently be upgraded.  You 
can drop the problem columns\n"
+                                        "cannot currently be upgraded.  You 
can drop the problematic columns\n"
                                         "and restart the upgrade.\n"),
                .threshold_version = 906
        },
@@ -279,7 +279,7 @@ static DataTypesUsageChecks data_types_usage_checks[] =
                gettext_noop("Your installation contains the \"abstime\" data 
type in user tables.\n"
                                         "The \"abstime\" type has been removed 
in PostgreSQL version 12,\n"
                                         "so this cluster cannot currently be 
upgraded.  You can drop the\n"
-                                        "problem columns, or change them to 
another data type, and restart\n"
+                                        "problematic columns, or change them 
to another data type, and restart\n"
                                         "the upgrade.\n"),
                .threshold_version = 1100
        },
@@ -292,7 +292,7 @@ static DataTypesUsageChecks data_types_usage_checks[] =
                gettext_noop("Your installation contains the \"reltime\" data 
type in user tables.\n"
                                         "The \"reltime\" type has been removed 
in PostgreSQL version 12,\n"
                                         "so this cluster cannot currently be 
upgraded.  You can drop the\n"
-                                        "problem columns, or change them to 
another data type, and restart\n"
+                                        "problematic columns, or change them 
to another data type, and restart\n"
                                         "the upgrade.\n"),
                .threshold_version = 1100
        },
@@ -305,7 +305,7 @@ static DataTypesUsageChecks data_types_usage_checks[] =
                gettext_noop("Your installation contains the \"tinterval\" data 
type in user tables.\n"
                                         "The \"tinterval\" type has been 
removed in PostgreSQL version 12,\n"
                                         "so this cluster cannot currently be 
upgraded.  You can drop the\n"
-                                        "problem columns, or change them to 
another data type, and restart\n"
+                                        "problematic columns, or change them 
to another data type, and restart\n"
                                         "the upgrade.\n"),
                .threshold_version = 1100
        },
@@ -423,7 +423,7 @@ process_data_type_check(DbInfo *dbinfo, PGresult *res, void 
*arg)
                pg_log(PG_REPORT, "failed check: %s", _(state->check->status));
                appendPQExpBuffer(*state->report, "\n%s\n%s    %s\n",
                                                  _(state->check->report_text),
-                                                 _("A list of the problem 
columns is in the file:"),
+                                                 _("A list of the problematic 
columns is in the file:"),
                                                  output_path);
        }
        state->result = true;

-- 
Álvaro Herrera         PostgreSQL Developer  —  https://www.EnterpriseDB.com/
"Ed is the standard text editor."
      http://groups.google.com/group/alt.religion.emacs/msg/8d94ddab6a9b0ad3


Reply via email to