-$PostgreSQL: pgsql/contrib/pg_upgrade/TESTING,v 1.2 2010/07/03 14:23:13 momjian Exp $
+$PostgreSQL: pgsql/contrib/pg_upgrade/TESTING,v 1.2.2.1 2010/07/09 16:51:29 momjian Exp $
The most effective way to test pg_upgrade, aside from testing on user
data, is by upgrading the PostgreSQL regression database.
a) Change CREATE FUNCTION shared object paths to use '$libdir'
The old and new cluster will have different shared object paths.
- b) Remove 'regex_flavor' (not supported in Postgres 9.0)
-
- c) Change CREATE OR REPLACE LANGUAGE to CREATE LANGUAGE
- The former syntax is only supported in Postgres 9.0.
-
d) Perform the load/dump twice
This fixes problems with the ordering of COPY columns for
inherited tables.
Commands like CREATE TRIGGER and ALTER TABLE sometimes have
differences.
- f) Adjust extra_float_digits
+ c) For pre-9.0, change CREATE OR REPLACE LANGUAGE to CREATE LANGUAGE
+
+ b) For pre-9.0, remove 'regex_flavor'
+
+ f) For pre-9.0, adjust extra_float_digits
Postgres 9.0 pg_dump uses extra_float_digits=-2 for pre-9.0
databases, and extra_float_digits=-3 for >= 9.0 databases.
It is necessary to modify 9.0 pg_dump to always use -3, and
* file system operations
*
* Copyright (c) 2010, PostgreSQL Global Development Group
- * $PostgreSQL: pgsql/contrib/pg_upgrade/file.c,v 1.13 2010/07/06 19:18:55 momjian Exp $
+ * $PostgreSQL: pgsql/contrib/pg_upgrade/file.c,v 1.13.2.1 2010/07/09 16:51:29 momjian Exp $
*/
#include "pg_upgrade.h"
if (nbytes < 0)
{
+ int save_errno = errno;
+
if (buffer != NULL)
free(buffer);
if (dest_fd != 0)
close(dest_fd);
+ errno = save_errno;
return -1;
}
if (write(dest_fd, buffer, nbytes) != nbytes)
{
/* if write didn't set errno, assume problem is no disk space */
- if (errno == 0)
- errno = ENOSPC;
+ int save_errno = errno ? errno : ENOSPC;
if (buffer != NULL)
free(buffer);
if (dest_fd != 0)
close(dest_fd);
+ errno = save_errno;
return -1;
}
}