Commit Graph

72 Commits

Author SHA1 Message Date
Bruce Momjian b9212e379c In pg_upgrade, verify that the install user has the same oid on both
clusters, and make sure the new cluster has no additional users.

Backpatch to 9.1.
2012-06-13 12:19:18 -04:00
Bruce Momjian 927d61eeff Run pgindent on 9.2 source tree in preparation for first 9.3
commit-fest.
2012-06-10 15:20:04 -04:00
Bruce Momjian 45ca31d6a7 Have pg_upgrade only use one extra log file for Win32, not two. 2012-05-25 09:10:07 -04:00
Bruce Momjian d226e236c6 On Windows, have pg_upgrade use different two files to log pg_ctl
start/stop output, to fix file share error reported by Edmund Horner
2012-05-24 20:30:39 -04:00
Bruce Momjian 476291bef0 Adjust pg_upgrade to output a separate log file for pg_ctl output on
Windows, to avoid opening a file by multiple processes.
2012-05-23 20:19:34 -04:00
Bruce Momjian 38458e4573 Fix pg_upgrade to properly upgrade a table that is stored in the cluster
default tablespace, but part of a database that is in a user-defined
tablespace.  Caused "file not found" error during upgrade.

Per bug report from Ants Aasma.

Backpatch to 9.1 and 9.0.
2012-04-10 19:57:14 -04:00
Bruce Momjian ced53c38d7 In pg_upgrade, move new echo quote define into include file. 2012-03-17 09:56:56 -04:00
Bruce Momjian faec2815c8 In pg_upgrade, create a script to incrementally generate more accurate
optimizer statistics so the cluster can be made available sooner.
2012-03-16 18:54:23 -04:00
Bruce Momjian 717f6d6085 In pg_upgrade, add various logging improvements:
add ability to control permissions of created files
	have psql echo its queries for easier debugging
	output four separate log files, and delete them on success
	add -r/--retain option to keep log files after success
	make logs file append-only
	remove -g/-G/-l logging options
	sugggest tailing appropriate log file on failure
	enhance -v/--verbose behavior
2012-03-12 19:48:03 -04:00
Bruce Momjian 2127aac6ef In pg_upgrade, only lock the old cluster if link mode is used, and do it
right after we restore the schema (a common failure point), and right
before we do the link operation.

Per suggesgtions from Robert and ^!C^!^@lvaro
2012-03-05 21:20:06 -05:00
Bruce Momjian e126958c2e Update copyright notices for year 2012. 2012-01-01 18:01:58 -05:00
Bruce Momjian 7012b5edb7 Remove scandir() requirement in pg_upgrade; instead just use readdir()
--- we were not using the scandir pattern filtering anyway.  This also
removes the scandir requirement in configure.
2011-11-17 21:59:49 -05:00
Bruce Momjian b735757c32 Remove pg_upgrade function no longer called (dir_matching_filenames). 2011-11-17 13:17:33 -05:00
Bruce Momjian 0dc3f57ba0 In pg_upgrade, add -o/-O options to pass parameters to the servers, and
document its use for config-only directory installs.
2011-10-10 07:44:11 -04:00
Bruce Momjian caa1054df8 In pg_upgrade, use the new postmaster -C option to get the real data
directory, for config-only directory installs.  Only works for PG 9.2+
servers.
2011-10-07 14:40:23 -04:00
Peter Eisentraut 52ce20589a Add missing format attributes
Add __attribute__ decorations for printf format checking to the places that
were missing them.  Fix the resulting warnings.  Add
-Wmissing-format-attribute to the standard set of warnings for GCC, so these
don't happen again.

The warning fixes here are relatively harmless.  The one serious problem
discovered by this was already committed earlier in
cf15fb5cab.
2011-09-10 23:12:46 +03:00
Bruce Momjian 3ced32d24e In pg_upgrade, disallow migration of 8.3 clusters using contrib/ltree
because its internal format was changed in 8.4.

Backpatch to 9.0 and 9.1.

Report by depesz, diagnosis by Tom.
2011-09-07 14:43:12 -04:00
Bruce Momjian f1312b5ed3 Add postgres.h to *.c files for pg_upgrade, ltree, and btree_gist, and
remove from local *.h files.

Per suggestion from Alvaro.
2011-08-26 21:16:24 -04:00
Bruce Momjian 00a7c9014a In pg_upgrade, don't copy visibility map files from clusters that did not
have crash-safe visibility maps to clusters that expect crash-safety.

Request from Robert Haas.
2011-08-19 11:20:30 -04:00
Bruce Momjian 43aa40e155 In pg_upgrade, add C comment about why we don't try to do shared file
writes for logging.
2011-07-21 17:13:17 -04:00
Bruce Momjian 17a16eeb7c In pg_upgrade, fix the -l/log option to work on Windows.
Also, double-quote the log file name in all places, to allow (on all
platforms) log file names with spaces.

Back patch to 9.0 and 9.1.
2011-07-20 18:31:03 -04:00
Bruce Momjian a88f4496b7 Change pg_upgrade to use port 50432 by default to avoid unintended
client connections during the upgrade.  Also rename data/bin/port
environment variables to being with 'PG'.  Also no longer honor PGPORT.
2011-07-01 18:17:12 -04:00
Bruce Momjian 0b44818ead In pg_upgrade, check that the binary and data directories are the same
major version.

Backpatch to 9.1.

Dan McGee
2011-06-22 20:48:34 -04:00
Bruce Momjian 559b114dd4 Adjust pg_upgrade check for pg_upgrade_support to happen after the
binary directory has been validated.

Backpatch to 9.1.

Dan McGee
2011-06-22 17:47:23 -04:00
Bruce Momjian 6560407c7d Pgindent run before 9.1 beta2. 2011-06-09 14:32:50 -04:00
Bruce Momjian 6c19bd96bc Allow pg_upgrade to honor libpq environment variables. Add 'local'
checks for PGHOST and PGHOSTADDR.
2011-05-16 10:48:40 -04:00
Bruce Momjian 6c4d2bd914 Now that pg_upgrade uses -w in pg_ctl, remove loop that retried testing
the connection;  also restructure the libpq connection code.

This patch also removes the unused variable postmasterPID and fixes a
libpq structure leak that was in the testing loop.
2011-04-26 10:15:18 -04:00
Bruce Momjian 44091442db In pg_upgrade, avoid one start/stop of the postmaster; use the -w
(wait) flag for pg_ctl start/stop;  remove the unused "quiet" flag in
the functions for starting/stopping the postmaster.
2011-04-25 20:18:23 -04:00
Bruce Momjian 76dd09bbec Add postmaster/postgres undocumented -b option for binary upgrades.
This option turns off autovacuum, prevents non-super-user connections,
and enables oid setting hooks in the backend.  The code continues to use
the old autoavacuum disable settings for servers with earlier catalog
versions.

This includes a catalog version bump to identify servers that support
the -b option.
2011-04-25 12:00:21 -04:00
Bruce Momjian bf50caf105 pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
Peter Eisentraut c75163842c Replace the confusing exit_nicely() by an atexit/on_exit hook 2011-04-06 23:00:44 +03:00
Bruce Momjian 497e65f822 In pg_upgrade, no need to initialize global struct values; they are
always zeros.  Also no need to free memory before we exit.
2011-02-16 15:17:28 -05:00
Alvaro Herrera b4a7e5980b Cleanup ClusterInfo initialization in pg_upgrade 2011-02-16 14:06:17 -03:00
Bruce Momjian 0a5f119931 A toast relid field are no longer needed in pg_upgrade's rel arrays, so
remove them.  Also other renaming.
2011-01-10 11:46:02 -05:00
Bruce Momjian 002c105a07 In pg_upgrade, remove functions that did sequential array scans looking
up relations, but rather order old/new relations and use the same array
index value for both.  This should speed up pg_upgrade for databases
with many relations.
2011-01-08 13:44:44 -05:00
Bruce Momjian ebaf648ad2 In pg_upgrade, clarify use of install_db_support_functions(). 2011-01-08 09:11:48 -05:00
Bruce Momjian f75383e6e8 In pg_upgrade, track only one copy of namespace/relname in FileNameMap
because the old and new values are identical.
2011-01-07 22:36:51 -05:00
Bruce Momjian d8d3d2a4f3 Fix pg_upgrade of large object permissions by preserving pg_auth.oid,
which is stored in pg_largeobject_metadata.

No backpatch to 9.0 because you can't migrate from 9.0 to 9.0 with the
same catversion (because of tablespace conflict), and a pre-9.0
migration to 9.0 has not large object permissions to migrate.
2011-01-07 21:59:29 -05:00
Bruce Momjian 2896c87ce4 Force pg_upgrade's to preserve pg_class.oid, not pg_class.relfilenode.
Toast tables have identical pg_class.oid and pg_class.relfilenode, but
for clarity it is good to preserve the pg_class.oid.

Update comments regarding what is preserved, and do some
variable/function renaming for clarity.
2011-01-07 21:26:13 -05:00
Bruce Momjian 5cff5b5779 Clarify pg_upgrade's creation of the map file structure. Also clean
up pg_dump's calling of pg_upgrade_support functions.
2011-01-05 11:37:08 -05:00
Bruce Momjian 5d950e3b0c Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
Bruce Momjian 67c9e4442f Furter pg_upgrade optimizations to reduce function call argument count. 2011-01-01 12:28:48 -05:00
Bruce Momjian 6e6bee987f In pg_upgrade, remove use of whichCluster, and just pass old/new cluster
pointers, which simplifies the code.  This was not possible in 9.0 because
everything was in a single nested struct, but is possible now.

Per suggestion from Tom.
2011-01-01 12:06:36 -05:00
Bruce Momjian f82b3e58f8 In pg_upgrade, rename "CLUSTERNAME" to "CLUSTER_NAME". 2010-12-31 20:42:29 -05:00
Bruce Momjian a52aa6c6db Clean up pg_upgrade cache lookup code; remove useless NULL pointer tests. 2010-10-20 20:02:37 +00:00
Bruce Momjian 691a67b922 Rename pg_upgrade 'log' to 'log_opts', to avoid platform naming conflict. 2010-10-20 02:31:17 +00:00
Bruce Momjian 3325c9bddb Further speed up pg_upgrade lookups. 2010-10-20 02:06:06 +00:00
Bruce Momjian ad06db2610 In pg_upgrade, use cached copy of directory listing, rather than calling
scandir() with a pattern for every table.

Optimization after report of pg_upgrade slowness with 150k tables.
2010-10-20 00:33:19 +00:00
Bruce Momjian 07456b45e6 Pgindent run on pg_upgrade source after restructuring. 2010-10-19 22:37:04 +00:00
Bruce Momjian e13f7e9a71 Restructure the pg_upgrade code to use several global structures rather
than packing everything into 'ctx' and passing that to every function.
2010-10-19 21:38:34 +00:00