sock.diff
text/x-diff
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: unified
| File | + | − |
|---|---|---|
| contrib/pg_upgrade/check.c | 0 | 0 |
| contrib/pg_upgrade/option.c | 0 | 0 |
| contrib/pg_upgrade/pg_upgrade.c | 0 | 0 |
diff --git a/contrib/pg_upgrade/check.c b/contrib/pg_upgrade/check.c
new file mode 100644
index 0fec73e..e7574a2
*** a/contrib/pg_upgrade/check.c
--- b/contrib/pg_upgrade/check.c
*************** output_check_banner(bool *live_check)
*** 29,40 ****
if (user_opts.check && is_server_running(old_cluster.pgdata))
{
*live_check = true;
- if (old_cluster.port == DEF_PGUPORT)
- pg_log(PG_FATAL, "When checking a live old server, "
- "you must specify the old server's port number.\n");
- if (old_cluster.port == new_cluster.port)
- pg_log(PG_FATAL, "When checking a live server, "
- "the old and new port numbers must be different.\n");
pg_log(PG_REPORT, "Performing Consistency Checks on Old Live Server\n");
pg_log(PG_REPORT, "------------------------------------------------\n");
}
--- 29,34 ----
*************** check_cluster_compatibility(bool live_ch
*** 291,296 ****
--- 285,300 ----
new_cluster.controldata.cat_ver < TABLE_SPACE_SUBDIRS_CAT_VER)
pg_log(PG_FATAL, "This utility can only upgrade to PostgreSQL version 9.0 after 2010-01-11\n"
"because of backend API changes made during development.\n");
+
+ /* We read the real port number for PG >= 9.1 */
+ if (GET_MAJOR_VERSION(old_cluster.major_version) < 901 &&
+ old_cluster.port == DEF_PGUPORT)
+ pg_log(PG_FATAL, "When checking a pre-PG 9.1 live old server, "
+ "you must specify the old server's port number.\n");
+
+ if (old_cluster.port == new_cluster.port)
+ pg_log(PG_FATAL, "When checking a live server, "
+ "the old and new port numbers must be different.\n");
}
diff --git a/contrib/pg_upgrade/option.c b/contrib/pg_upgrade/option.c
new file mode 100644
index 94bce50..e511839
*** a/contrib/pg_upgrade/option.c
--- b/contrib/pg_upgrade/option.c
*************** adjust_data_dir(ClusterInfo *cluster)
*** 376,378 ****
--- 376,439 ----
check_ok();
}
+
+
+ /*
+ * get_sockdir_and_live_port
+ *
+ * Set the socket directory to either the configured location (live check)
+ * or the current directory, and live port number.
+ */
+ void
+ get_sockdir_and_live_port(bool live_check)
+ {
+ if (!live_check)
+ {
+ #ifdef HAVE_UNIX_SOCKETS
+ /* Use the current directory for the socket */
+ if (!getcwd(os_info.sockdir, MAXPGPATH))
+ pg_log(PG_FATAL, "cannot find current directory\n");
+ #endif
+ }
+ /* port/sockdir added to the 4th/5th line of postmaster.pid in PG 9.1 */
+ else if (GET_MAJOR_VERSION(old_cluster.major_version) >= 901)
+ {
+ /* get live port number and sockdir */
+
+ char filename[MAXPGPATH], line[MAXPGPATH];
+ FILE *fp;
+ int i;
+ unsigned short orig_old_port = old_cluster.port;
+
+ snprintf(filename, sizeof(filename), "%s/postmaster.pid", old_cluster.pgdata);
+ if ((fp = fopen(filename, "r")) == NULL)
+ pg_log(PG_FATAL, "Cannot open file %s: %m\n", filename);
+
+ for (i = 0; i < 5; i++)
+ {
+ if (fgets(line, sizeof(line), fp) == NULL)
+ pg_log(PG_FATAL, "Cannot read line %d from %s: %m\n", i + 1, filename);
+ /* potentially overwrite user-supplied value */
+ if (i == 3)
+ sscanf(line, "%hu", &old_cluster.port);
+ #ifdef HAVE_UNIX_SOCKETS
+ if (i == 4)
+ /* strip off newline */
+ sscanf(line, "%s\n", os_info.sockdir);
+ #endif
+ }
+
+ /* warn of port number correction */
+ if (old_cluster.port != orig_old_port && orig_old_port != DEF_PGUPORT)
+ pg_log(PG_WARNING, "User-supplied old port number %hu corrected to %hu\n",
+ orig_old_port, old_cluster.port);
+
+ fclose(fp);
+ }
+
+ #ifdef HAVE_UNIX_SOCKETS
+ if (strlen(os_info.sockdir) != 0)
+ /* For client communication */
+ pg_putenv("PGHOST", os_info.sockdir);
+ #endif
+ }
diff --git a/contrib/pg_upgrade/pg_upgrade.c b/contrib/pg_upgrade/pg_upgrade.c
new file mode 100644
index c47c8bb..6b41559
*** a/contrib/pg_upgrade/pg_upgrade.c
--- b/contrib/pg_upgrade/pg_upgrade.c
*************** main(int argc, char **argv)
*** 86,96 ****
setup(argv[0], live_check);
check_cluster_versions();
check_cluster_compatibility(live_check);
check_old_cluster(live_check, &sequence_script_file_name);
-
/* -- NEW -- */
start_postmaster(&new_cluster);
--- 86,97 ----
setup(argv[0], live_check);
check_cluster_versions();
+ get_sockdir_and_live_port(live_check);
+
check_cluster_compatibility(live_check);
check_old_cluster(live_check, &sequence_script_file_name);
/* -- NEW -- */
start_postmaster(&new_cluster);