Commit graph

1789 commits

Author SHA1 Message Date
Bruce Momjian
ec218056fe In pg_upgrade, allow tables using regclass to be upgraded because we
preserve pg_class oids since PG 9.0.
2011-12-05 16:45:01 -05:00
Tom Lane
87b0dcf490 Fix overly-aggressive and inconsistent quoting in OS X start script.
Sidar Lopez, per bug #6310, with some additional improvements by me.
Back-patch to 9.0, where the issue was introduced.
2011-11-26 13:01:32 -05:00
Tom Lane
d747a45b46 Fix assorted bugs in contrib/unaccent's configuration file parsing.
Make it use t_isspace() to identify whitespace, rather than relying on
sscanf which is known to get it wrong on some platform/locale combinations.
Get rid of fixed-size buffers.  Make it actually continue to parse the file
after ignoring a line with untranslatable characters, as was obviously
intended.

The first of these issues is per gripe from J Smith, though not exactly
either of his proposed patches.
2011-11-07 11:49:17 -05:00
Tom Lane
3fbfd40b37 Fix bogus code in contrib/ tsearch dictionary examples.
Both dict_int and dict_xsyn were blithely assuming that whatever memory
palloc gives back will be pre-zeroed.  This would typically work for
just about long enough to run their regression tests, and no longer :-(.

The pre-9.0 code in dict_xsyn was even lamer than that, as it would
happily give back a pointer to the result of palloc(0), encouraging
its caller to access off the end of memory.  Again, this would just
barely fail to fail as long as memory contained nothing but zeroes.

Per a report from Rodrigo Hjort that code based on these examples
didn't work reliably.
2011-11-03 19:17:59 -04:00
Robert Haas
b77b6015d8 Make pgstatindex respond to cancel interrupts.
A similar problem for pgstattuple() was fixed in April of 2010 by commit
33065ef8bc, but pgstatindex() seems to have
been overlooked.

Back-patch all the way, as with that commit, though not to 7.4 through
8.1, since those are now EOL.
2011-10-06 12:10:19 -04:00
Bruce Momjian
c3106a340f 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:42:36 -04:00
Bruce Momjian
df957a79cc In pg_upgrade, limit schema name filter to include toast tables. Bug
introduced recently when trying to filter out temp tables.

Backpatch to 9.0 and 9.1.
2011-08-26 00:12:39 -04:00
Tom Lane
8a32c94658 Fix pgstatindex() to give consistent results for empty indexes.
For an empty index, the pgstatindex() function would compute 0.0/0.0 for
its avg_leaf_density and leaf_fragmentation outputs.  On machines that
follow the IEEE float arithmetic standard with any care, that results in
a NaN.  However, per report from Rushabh Lathia, Microsoft couldn't
manage to get this right, so you'd get a bizarre error on Windows.

Fix by forcing the results to be NaN explicitly, rather than relying on
the division operator to give that or the snprintf function to print it
correctly.  I have some doubts that this is really the most useful
definition, but it seems better to remain backward-compatible with
those platforms for which the behavior wasn't completely broken.

Back-patch to 8.2, since the code is like that in all current releases.
2011-08-24 23:50:20 -04:00
Bruce Momjian
f239ec5727 In pg_upgrade, avoid dumping orphaned temporary tables. This makes the
pg_upgrade schema matching pattern match pg_dump/pg_dumpall.

Fix for 9.0, 9.1, and 9.2.
2011-08-15 22:39:38 -04:00
Bruce Momjian
431b7b84fe 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:08 -04:00
Peter Eisentraut
f1d869276f Fix use of unportable %m format 2011-07-07 21:48:15 +03:00
Bruce Momjian
7412f5cd29 Fix pg_upgrade status message capitalization mistake.
Backpatch to 9.1 and 9.0.

Dan McGee
2011-06-22 14:49:09 -04:00
Tom Lane
3246a1791d Apply upstream fix for blowfish signed-character bug (CVE-2011-2483).
A password containing a character with the high bit set was misprocessed
on machines where char is signed (which is most).  This could cause the
preceding one to three characters to fail to affect the hashed result,
thus weakening the password.  The result was also unportable, and failed
to match some other blowfish implementations such as OpenBSD's.

Since the fix changes the output for such passwords, upstream chose
to provide a compatibility hack: password salts beginning with $2x$
(instead of the usual $2a$ for blowfish) are intentionally processed
"wrong" to give the same hash as before.  Stored password hashes can
thus be modified if necessary to still match, though it'd be better
to change any affected passwords.

In passing, sync a couple other upstream changes that marginally improve
performance and/or tighten error checking.

Back-patch to all supported branches.  Since this issue is already
public, no reason not to commit the fix ASAP.
2011-06-21 14:41:59 -04:00
Heikki Linnakangas
7541d32e86 Replace strdup() with pstrdup(), to avoid leaking memory.
It's been like this since the seg module was introduced, so backpatch to
8.2 which is the oldest supported version.
2011-05-23 20:59:06 +03:00
Peter Eisentraut
e79518e937 Add missing gitignore file 2011-05-02 01:03:38 +03:00
Bruce Momjian
052e621cc2 Fix pg_upgrade crash
Fix pg_upgrade crash in 9.0 caused by a new cluster database that
doesn't exist in the old cluster;  instead throw an error.  This was
reported to me by EnterpriseDB testing staff.  This bug does not exist
in git head.
2011-04-13 11:33:55 -04:00
Andrew Dunstan
0e754ab366 Adjust regression tests on cube and ECPG for MinGW 64 bit compiler.
Backport to 9.0, we're not supporting this compiler on earlier releases.
2011-04-10 17:03:44 -04:00
Tom Lane
d6d145673f Prevent buffer overrun while parsing an integer in a "query_int" value.
contrib/intarray's gettoken() uses a fixed-size buffer to collect an
integer's digits, and did not guard against overrunning the buffer.
This is at least a backend crash risk, and in principle might allow
arbitrary code execution.  The code didn't check for overflow of the
integer value either, which while not presenting a crash risk was still
bad.

Thanks to Apple Inc's security team for reporting this issue and supplying
the fix.

Security: CVE-2010-4015
2011-01-27 17:43:07 -05:00
Bruce Momjian
9a22ea242b In pg_upgrade, copy pg_largeobject_metadata and its index for 9.0+
servers because, like pg_largeobject, it is a system table whose
contents are not dumped by pg_dump --schema-only.
2011-01-04 23:35:52 -05:00
Bruce Momjian
845626f506 In pg_upgrade, fix backward logging display of link operations. 2011-01-04 21:33:37 -05:00
Tom Lane
ee718c2310 Improve pg_upgrade's checks for required executables.
Don't insist on pg_dumpall and psql being present in the old cluster,
since they are not needed.  Do insist on pg_resetxlog being present
(in both old and new), since we need it.  Also check for pg_config,
but only in the new cluster.  Remove the useless attempt to call
pg_config in the old cluster; we don't need to know the old value of
--pkglibdir.  (In the case of a stripped-down migration installation
there might be nothing there to look at anyway, so any future change
that might reintroduce that need would have to be considered carefully.)

Per my attempts to build a minimal previous-version installation to support
pg_upgrade.
2010-12-29 13:43:58 -05:00
Tom Lane
aebddf00d2 Fix erroneous parsing of tsquery input "... & !(subexpression) | ..."
After parsing a parenthesized subexpression, we must pop all pending
ANDs and NOTs off the stack, just like the case for a simple operand.
Per bug #5793.

Also fix clones of this routine in contrib/intarray and contrib/ltree,
where input of types query_int and ltxtquery had the same problem.

Back-patch to all supported versions.
2010-12-19 12:48:41 -05:00
Tom Lane
d45f163251 Fix contrib/seg's GiST picksplit method.
Fix the same size_alpha versus size_beta typo that was recently fixed
in contrib/cube.  Noted by Alexander Korotkov.

Back-patch to all supported branches (there is a more invasive fix in
HEAD).
2010-12-15 21:22:38 -05:00
Tom Lane
e6fa73e87a Fix significant memory leak in contrib/xml2 functions.
Most of the functions that execute XPath queries leaked the data structures
created by libxml2.  This memory would not be recovered until end of
session, so it mounts up pretty quickly in any serious use of the feature.
Per report from Pavel Stehule, though this isn't his patch.

Back-patch to all supported branches.
2010-11-26 15:20:55 -05:00
Itagaki Takahiro
317a568c88 Don't raise "identifier will be truncated" messages in dblink
except creating new connections.
2010-11-25 19:58:29 +09:00
Robert Haas
e6b3802518 Fix bug in cube picksplit algorithm.
Alexander Korotkov
2010-11-14 21:28:10 -05:00
Tom Lane
368e44f6a5 Fix buffer overrun in pg_upgrade.
Problem reported, and cause identified, by Hernan Gonzalez.
2010-11-02 17:31:54 -04:00
Heikki Linnakangas
686ad32164 If pk is NULL, the backend would segfault when accessing ->algo and the
following NULL check was never reached.

This problem was found by Coccinelle (null_ref.cocci from coccicheck).

Marti Raudsepp
2010-10-20 22:24:43 +03:00
Bruce Momjian
80a65c0577 Add removal of PG_VERSION to optional old cluster deletion script.
Backpatch to 9.0.X.
2010-10-19 15:52:44 +00:00
Bruce Momjian
fc8470ed4d In pg_upgrade, rename macro EXEC_EXT to SHELL_EXT for clarity.
Backpatch to 9.0.X.
2010-10-19 02:55:58 +00:00
Bruce Momjian
3689583d5a Have pg_upgrade use strtoul(), not strtol(). 2010-09-29 02:40:26 +00:00
Bruce Momjian
b757f18f2f Use macro atooid() for conversion of strings to oids, per suggestion
from Tom.
2010-09-28 22:11:21 +00:00
Bruce Momjian
ddfa48776c In pg_upgrade, properly handle oids > 2^31 by using strtoul() internally
rather than atol().

Per report from Brian Hirt
2010-09-28 21:41:03 +00:00
Bruce Momjian
0364ab8b26 Fix leak patch that was using fclose() instead of close(). 2010-09-28 21:37:14 +00:00
Bruce Momjian
c767c3bd36 Properly close files after read file failure to prevent potential
resource leak.  Of course, any such failure aborts pg_upgrade, but might
as well be clean about it.

Per patch from Grzegorz Ja?kiewicz.
2010-09-28 19:25:13 +00:00
Robert Haas
7ffb4d6c53 Add contrib/xml2/pgxml.sql to .gitignore
Kevin Grittner
2010-09-23 22:08:25 -04:00
Tom Lane
8d0b5d8971 Some more gitignore cleanups: cover contrib and PL regression test outputs.
Also do some further work in the back branches, where quite a bit wasn't
covered by Magnus' original back-patch.
2010-09-22 17:22:53 -04:00
Magnus Hagander
a692359411 Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:06 +02:00
Tom Lane
c5ed269164 Fix two new-in-9.0 bugs in hstore.
There was an incorrect Assert in hstoreValidOldFormat(), which would cause
immediate core dumps when attempting to work with pre-9.0 hstore data,
but of course only in an assert-enabled build.

Also, ghstore_decompress() incorrectly applied DatumGetHStoreP() to a datum
that wasn't actually an hstore, but rather a ghstore (ie, a gist signature
bitstring).  That used to be harmless, but could now result in misbehavior
if the hstore format conversion code happened to trigger.  In reality,
since ghstore is not marked toastable (and doesn't need to be), this
function is useless anyway; we can lobotomize it down to returning the
passed-in pointer.

Both bugs found by Andrew Gierth, though this isn't exactly his proposed
patch.
2010-09-16 02:54:07 +00:00
Bruce Momjian
d3581d3161 Modify pg_upgrade to set/restore all environment variables related to
collation/encoding to match English when reading controldata.  This now
matches the English variable setting used by pg_regress.c.

Backpatch to 9.0.X.
2010-09-07 14:10:39 +00:00
Tom Lane
738df2f475 Make pg_archivecleanup log messages more consistent.
Erik Rijkers
2010-08-23 02:56:29 +00:00
Peter Eisentraut
40cacbb376 Remove wildly obsolete type attribute externallength from chkpass 2010-07-28 20:34:12 +00:00
Bruce Momjian
8dad931f4e Adjust check_for_isn_and_int8_passing_mismatch() so it is called for all
migrations.

Backpatch to 9.0.
2010-07-25 03:47:33 +00:00
Bruce Momjian
ca2901c144 Prevent pg_upgrade from migrating databases that use reg* data types
where the oid is not preserved by pg_upgrade (everything but pg_type).
Update documentation.

Per bug report from depstein@alliedtesting.com.
2010-07-25 03:28:39 +00:00
Bruce Momjian
f53bc2e78d Backpatch pg_upgrade fixes to 9.0:
In pg_upgrade, prevent psql AUTOCOMMIT=off by not loading .psqlrc.

 In pg_upgrade, report /bin directory checks independent of /data checks.

 Remove incorrect email address for pg_upgrade bug reports.

 On Win32, pg_upgrade cannot sent any server log output to the log file
 because of file access limitations on that platform.
2010-07-13 20:15:51 +00:00
Bruce Momjian
beed55dff7 Properly report errno/out-of-disk-space error from pg_upgrade when in
copy mode, per report from depstein@alliedtesting.com.

Patch suggestion from Magnus.

Backpatch to 9.0.X.
2010-07-09 16:51:29 +00:00
Bruce Momjian
239d769e7e pgindent run for 9.0, second run 2010-07-06 19:19:02 +00:00
Tom Lane
f9e9da6664 Fix a few single-file (MODULES, not MODULE_big) contrib makefiles that were
supposing that they should set SHLIB_LINK rather than LDFLAGS_SL.  Since these
don't go through Makefile.shlib that was a no-op on most platforms.  Also
regularize the few platform-specific Makefiles that did pay attention to
SHLIB_LINK: it seems that the real value of that is to pull in BE_DLLLIBS,
so do that instead.  Per buildfarm failures on cygwin.
2010-07-05 23:15:56 +00:00
Bruce Momjian
da254e3d16 Make pg_upgrade copyrights just 2010, not 2010-2010. 2010-07-03 16:33:15 +00:00
Bruce Momjian
de255a6eb1 Add copyrights to pg_upgrade and pg_upgrade_tools files, per Tom. 2010-07-03 16:25:01 +00:00