Move any remaining files generated by pg_upgrade into an internal subdir
authorMichael Paquier <[email protected]>
Tue, 13 Sep 2022 01:38:56 +0000 (10:38 +0900)
committerMichael Paquier <[email protected]>
Tue, 13 Sep 2022 01:38:56 +0000 (10:38 +0900)
This change concerns a couple of .txt files (for internal state checks)
that were still written in the path where the binary is executed, and
not in the subdirectory located in the target cluster.  Like the other
.txt files doing already so (like loadable_libraries.txt), these are
saved in the base output directory.  Note that on failure, the logs
report the full path to the .txt file generated, so these are easy to
find.

Oversight in 38bfae3.

Author: Daniel Gustafsson
Reviewed-by: Michael Paquier, Justin Prysby
Discussion: https://postgr.es/m/181A6DA8-3B7F-4B71-82D5-363FF0146820@yesql.se
Back-through: 15

src/bin/pg_upgrade/check.c
src/bin/pg_upgrade/version.c

index f4969bcdad7a34e38e117aa62484690f7e14d9eb..f1bc1e688680ea42b15c7936bf9d657e82c84953 100644 (file)
@@ -1218,7 +1218,9 @@ check_for_composite_data_type_usage(ClusterInfo *cluster)
 
    prep_status("Checking for system-defined composite types in user tables");
 
-   snprintf(output_path, sizeof(output_path), "tables_using_composite.txt");
+   snprintf(output_path, sizeof(output_path), "%s/%s",
+            log_opts.basedir,
+            "tables_using_composite.txt");
 
    /*
     * Look for composite types that were made during initdb *or* belong to
@@ -1275,7 +1277,9 @@ check_for_reg_data_type_usage(ClusterInfo *cluster)
 
    prep_status("Checking for reg* data types in user tables");
 
-   snprintf(output_path, sizeof(output_path), "tables_using_reg.txt");
+   snprintf(output_path, sizeof(output_path), "%s/%s",
+            log_opts.basedir,
+            "tables_using_reg.txt");
 
    /*
     * Note: older servers will not have all of these reg* types, so we have
@@ -1328,7 +1332,9 @@ check_for_jsonb_9_4_usage(ClusterInfo *cluster)
 
    prep_status("Checking for incompatible \"jsonb\" data type");
 
-   snprintf(output_path, sizeof(output_path), "tables_using_jsonb.txt");
+   snprintf(output_path, sizeof(output_path), "%s/%s",
+            log_opts.basedir,
+            "tables_using_jsonb.txt");
 
    if (check_for_data_type_usage(cluster, "pg_catalog.jsonb", output_path))
    {
index 064d23797c54d776ab25ba9cd31c8f9959a71857..dc19fc6ec84a3cbbd7d58338b77085865d67e7d9 100644 (file)
@@ -183,7 +183,9 @@ old_9_3_check_for_line_data_type_usage(ClusterInfo *cluster)
 
    prep_status("Checking for incompatible \"line\" data type");
 
-   snprintf(output_path, sizeof(output_path), "tables_using_line.txt");
+   snprintf(output_path, sizeof(output_path), "%s/%s",
+            log_opts.basedir,
+            "tables_using_line.txt");
 
    if (check_for_data_type_usage(cluster, "pg_catalog.line", output_path))
    {
@@ -221,7 +223,9 @@ old_9_6_check_for_unknown_data_type_usage(ClusterInfo *cluster)
 
    prep_status("Checking for invalid \"unknown\" user columns");
 
-   snprintf(output_path, sizeof(output_path), "tables_using_unknown.txt");
+   snprintf(output_path, sizeof(output_path), "%s/%s",
+            log_opts.basedir,
+            "tables_using_unknown.txt");
 
    if (check_for_data_type_usage(cluster, "pg_catalog.unknown", output_path))
    {
@@ -364,7 +368,9 @@ old_11_check_for_sql_identifier_data_type_usage(ClusterInfo *cluster)
 
    prep_status("Checking for invalid \"sql_identifier\" user columns");
 
-   snprintf(output_path, sizeof(output_path), "tables_using_sql_identifier.txt");
+   snprintf(output_path, sizeof(output_path), "%s/%s",
+            log_opts.basedir,
+            "tables_using_sql_identifier.txt");
 
    if (check_for_data_type_usage(cluster, "information_schema.sql_identifier",
                                  output_path))