aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* pgbench: Show better progress when loading tuplesPeter Eisentraut2012-09-05
| | | | | Show target number of tuples and percentage in addition to current number.
* Fix WAL file replacement during cascading replication on Windows.Heikki Linnakangas2012-09-05
| | | | | | | | | | | When the startup process restores a WAL file from the archive, it deletes any old file with the same name and renames the new file in its place. On Windows, however, when a file is deleted, it still lingers as long as a process holds a file handle open on it. With cascading replication, a walsender process can hold the old file open, so the rename() in the startup process would fail. To fix that, rename the old file to a temporary name, to make the original file name available for reuse, before deleting the old file.
* Fix inappropriate error messages for Hot Standby misconfiguration errors.Tom Lane2012-09-05
| | | | | | | | Give the correct name of the GUC parameter being complained of. Also, emit a more suitable SQLSTATE (INVALID_PARAMETER_VALUE, not the default INTERNAL_ERROR). Gurjeet Singh, errcode adjustment by me
* Make one last copy-editing pass over the 9.2 release notes.Tom Lane2012-09-05
| | | | | Also, set the release date to 2012-09-10, since we're pretty well committed to that now.
* Fix pg_upgrade test script's line end handling on Windows.Andrew Dunstan2012-09-05
| | | | | | | | | Call pg_dumpall using -f switch instead of redirection, to avoid writing the output in text mode and generating spurious carriage returns. Remove to carriage return ignoring hack introduced by commit e442b0f0c6fd26738bafdeb5222511b586dfe4b9. Backpatch to 9.2.
* Fix line end mishandling in pg_upgrade on Windows.Andrew Dunstan2012-09-05
| | | | | | | | | | | | | pg_upgrade opened the output from pg_dumpall in text mode and wrote the split files in text mode. This caused unwanted eating of intended carriage returns on input and production of spurious carriage returns on output. To avoid this, open all these files in binary mode. On non-Windows platforms, this change has no effect. Backpatch to 9.0. On 9.0 and 9.1, we also switch from redirecting pg_dumpall's output to using pg_dumpall's -f switch, for the same reason.
* Restore SIGFPE handler after initializing PL/Perl.Tom Lane2012-09-05
| | | | | | | | | | | | Perl, for some unaccountable reason, believes it's a good idea to reset SIGFPE handling to SIG_IGN. Which wouldn't be a good idea even if it worked; but on some platforms (Linux at least) it doesn't work at all, instead resulting in forced process termination if the signal occurs. Given the lack of other complaints, it seems safe to assume that Perl never actually provokes SIGFPE and so there is no value in the setting anyway. Hence, reset it to our normal handler after initializing Perl. Report, analysis and patch by Andres Freund.
* Silence -Wunused-result warning in contrib/pg_upgrade.Tom Lane2012-09-05
| | | | | This is just neatnik-ism, but since we do it for comparable code in elog.c, we may as well do it here.
* sepgsql cleanups.Robert Haas2012-09-05
| | | | | | | This is needed to match recent changes elsewhere. Along the way, some renaming for clarity. KaiGai Kohei
* Fix PARAM_EXEC assignment mechanism to be safe in the presence of WITH.Tom Lane2012-09-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The planner previously assumed that parameter Vars having the same absolute query level, varno, and varattno could safely be assigned the same runtime PARAM_EXEC slot, even though they might be different Vars appearing in different subqueries. This was (probably) safe before the introduction of CTEs, but the lazy-evalution mechanism used for CTEs means that a CTE can be executed during execution of some other subquery, causing the lifespan of Params at the same syntactic nesting level as the CTE to overlap with use of the same slots inside the CTE. In 9.1 we created additional hazards by using the same parameter-assignment technology for nestloop inner scan parameters, but it was broken before that, as illustrated by the added regression test. To fix, restructure the planner's management of PlannerParamItems so that items having different semantic lifespans are kept rigorously separated. This will probably result in complex queries using more runtime PARAM_EXEC slots than before, but the slots are cheap enough that this hardly matters. Also, stop generating PlannerParamItems containing Params for subquery outputs: all we really need to do is reserve the PARAM_EXEC slot number, and that now only takes incrementing a counter. The planning code is simpler and probably faster than before, as well as being more correct. Per report from Vik Reykja. These changes will mostly also need to be made in the back branches, but I'm going to hold off on that until after 9.2.0 wraps.
* Trim spgist_private.h inclusionAlvaro Herrera2012-09-05
| | | | It doesn't really need rel.h; relcache.h is enough.
* Fix compiler warnings about unused variables, caused by my previous commit.Heikki Linnakangas2012-09-04
| | | | Reported by Peter Eisentraut.
* In pg_upgrade, document why we can't issue \n\n in the command logfileBruce Momjian2012-09-05
| | | | | | | on Windows. Slightly cleanup log output on Windows given this restriction. Backpatch to 9.2.
* Fix bugs in cascading replication with recovery_target_timeline='latest'Heikki Linnakangas2012-09-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The cascading replication code assumed that the current RecoveryTargetTLI never changes, but that's not true with recovery_target_timeline='latest'. The obvious upshot of that is that RecoveryTargetTLI in shared memory needs to be protected by a lock. A less obvious consequence is that when a cascading standby is connected, and the standby switches to a new target timeline after scanning the archive, it will continue to stream WAL to the cascading standby, but from a wrong file, ie. the file of the previous timeline. For example, if the standby is currently streaming from the middle of file 000000010000000000000005, and the timeline changes, the standby will continue to stream from that file. However, the WAL on the new timeline is in file 000000020000000000000005, so the standby sends garbage from 000000010000000000000005 to the cascading standby, instead of the correct WAL from file 000000020000000000000005. This also fixes a related bug where a partial WAL segment is restored from the archive and streamed to a cascading standby. The code assumed that when a WAL segment is copied from the archive, it can immediately be fully streamed to a cascading standby. However, if the segment is only partially filled, ie. has the right size, but only N first bytes contain valid WAL, that's not safe. That can happen if a partial WAL segment is manually copied to the archive, or if a partial WAL segment is archived because a server is started up on a new timeline within that segment. The cascading standby will get confused if the WAL it received is not valid, and will get stuck until it's restarted. This patch fixes that problem by not allowing WAL restored from the archive to be streamed to a cascading standby until it's been replayed, and thus validated.
* Fix serializable mode with index-only scans.Kevin Grittner2012-09-04
| | | | | | | | | | | | | | | | | | | | | | | | | | Serializable Snapshot Isolation used for serializable transactions depends on acquiring SIRead locks on all heap relation tuples which are used to generate the query result, so that a later delete or update of any of the tuples can flag a read-write conflict between transactions. This is normally handled in heapam.c, with tuple level locking. Since an index-only scan avoids heap access in many cases, building the result from the index tuple, the necessary predicate locks were not being acquired for all tuples in an index-only scan. To prevent problems with tuple IDs which are vacuumed and re-used while the transaction still matters, the xmin of the tuple is part of the tag for the tuple lock. Since xmin is not available to the index-only scan for result rows generated from the index tuples, it is not possible to acquire a tuple-level predicate lock in such cases, in spite of having the tid. If we went to the heap to get the xmin value, it would no longer be an index-only scan. Rather than prohibit index-only scans under serializable transaction isolation, we acquire an SIRead lock on the page containing the tuple, when it was not necessary to visit the heap for other reasons. Backpatch to 9.2. Kevin Grittner and Tom Lane
* Allow isolation tests to specify multiple setup blocks.Kevin Grittner2012-09-04
| | | | | | | | | | Each setup block is run as a single PQexec submission, and some statements such as VACUUM cannot be combined with others in such a block. Backpatch to 9.2. Kevin Grittner and Tom Lane
* Remove src/tool/backend, now that the content is on the web site and wiki.Bruce Momjian2012-09-04
|
* Fix transcription error.Andrew Dunstan2012-09-04
|
* Document that pg_upgrade requires PGHOST be set for any pre-9.1 serversBruce Momjian2012-09-04
| | | | | | with a socket directory mismatch with the new server. Backpatch to 9.2.
* Change "restoring" to "processing" in message from pg_dumpMagnus Hagander2012-09-04
| | | | | | The same message is used in both pg_restore and pg_dump, and it's confusing to output "restoring data for table xyz" when the user is just doing a pg_dump.
* Mention basebackup-from-slave next to cascading replicationMagnus Hagander2012-09-04
|
* Fix command echoing in pg_upgade's analyze script for Windows.Andrew Dunstan2012-09-04
|
* Remove some useless trailing whitespaceMagnus Hagander2012-09-04
| | | | Michael Paquier
* Indent fix_path_separator() header properly.Andrew Dunstan2012-09-03
|
* Fix to_date() and to_timestamp() to allow specification of the day ofBruce Momjian2012-09-03
| | | | | | | the week via ISO or Gregorian designations. The fix is to store the day-of-week consistently as 1-7, Sunday = 1. Fixes bug reported by Marc Munro
* Allow pg_upgrade "make check" to run on Windows/MSys.Andrew Dunstan2012-09-03
| | | | Backpatch to 9.2.
* In pg_upgrade, pull the port number from postmaster.pid, like we do forBruce Momjian2012-09-03
| | | | | | | | socket location. Also, prevent putting the socket in the current directory for pre-9.1 servers in live check and non-live check mode, because pre-9.1 pg_ctl -w can't handle it. Backpatch to 9.2.
* Use correct path separator for Windows builtin commands.Andrew Dunstan2012-09-03
| | | | | | | | | pg_upgrade produces a platform-specific script to remove the old directory, but on Windows it has not been making sure that the paths it writes as arguments for rmdir and del use the backslash path separator, which will cause these scripts to fail. The fix is backpatched to Release 9.0.
* Replace memcpy() calls in xlog.c critical sections with struct assignments.Tom Lane2012-09-03
| | | | | | | | | | | | This gets rid of a dangerous-looking use of the not-volatile XLogCtl pointer in a couple of spinlock-protected sections, where the normal coding rule is that you should only access shared memory through a pointer-to-volatile. I think the risk is only hypothetical not actual, since for there to be a bug the compiler would have to move the spinlock acquire or release across the memcpy() call, which one sincerely hopes it will not. Still, it looks cleaner this way. Per comment from Daniel Farina and subsequent discussion.
* Fix bugs in exec.c that prevented pg_upgrade working in Windows.Andrew Dunstan2012-09-03
| | | | | Backpatch to 9.2 - code before that is quite different and should not have these defects.
* Fix pg_upgrade to cope with non-default unix_socket_directory scenarios.Tom Lane2012-09-03
| | | | | | | | | | | | | | | | | | | | | | When starting either an old or new postmaster, force it to place its Unix socket in the current directory. This makes it even harder for accidental connections to occur during pg_upgrade, and also works around some scenarios where the default socket location isn't usable. (For example, if the default location is something other than "/tmp", it might not exist during "make check".) When checking an already-running old postmaster, find out its actual socket directory location from postmaster.pid, if possible. This dodges problems with an old postmaster having a configured location different from the default built into pg_upgrade's libpq. We can't find that out if the old postmaster is pre-9.1, so also document how to cope with such scenarios manually. In support of this, centralize handling of the connection-related command line options passed to pg_upgrade's subsidiary programs, such as pg_dump. This should make future changes easier. Bruce Momjian and Tom Lane
* Make psql's \d+ show reloptions for all relkinds.Tom Lane2012-09-03
| | | | | | | | | | | | Formerly it would only show them for relkinds 'r' and 'f' (plain tables and foreign tables). However, as of 9.2, views can also have reloptions, namely security_barrier. The relkind restriction seems pointless and not at all future-proof, so just print reloptions whenever there are any. In passing, make some cosmetic improvements to the code that pulls the "tableinfo" fields out of the PGresult. Noted and patched by Dean Rasheed, with adjustment for all relkinds by me.
* Update URLs that pointed to sun.com; either repoint them or removeBruce Momjian2012-09-02
| | | | them.
* Add small doc mention that libpq is named after POSTQUEL.Bruce Momjian2012-09-02
|
* Drop cheap-startup-cost paths during add_path() if we don't need them.Tom Lane2012-09-01
| | | | | | | | | | | | | | | | | | We can detect whether the planner top level is going to care at all about cheap startup cost (it will only do so if query_planner's tuple_fraction argument is greater than zero). If it isn't, we might as well discard paths immediately whose only advantage over others is cheap startup cost. This turns out to get rid of quite a lot of paths in complex queries --- I saw planner runtime reduction of more than a third on one large query. Since add_path isn't currently passed the PlannerInfo "root", the easiest way to tell it whether to do this was to add a bool flag to RelOptInfo. That's a bit redundant, since all relations in a given query level will have the same setting. But in the future it's possible that we'd refine the control decision to work on a per-relation basis, so this seems like a good arrangement anyway. Per my suggestion of a few months ago.
* Fix mark_placeholder_maybe_needed to handle LATERAL references.Tom Lane2012-09-01
| | | | | | | | | | | | | | | If a PlaceHolderVar contains a pulled-up LATERAL reference, its minimum possible evaluation level might be higher in the join tree than its original syntactic location. That in turn affects the ph_needed level for any contained PlaceHolderVars (that is, those PHVs had better propagate up the join tree at least to the evaluation level of the outer PHV). We got this mostly right, but mark_placeholder_maybe_needed() failed to account for the effect, and in consequence could leave the inner PHVs with ph_may_need less than what their ultimate ph_needed value will be. That's bad because it could lead to failure to select a join order that will allow evaluation of the inner PHV at a valid location. Fix that, and add an Assert that checks that we don't ever set ph_needed to more than ph_may_need.
* Revert doc patch 305557984dd964ac397c6752e9d0f14646b60f15 as the valuesBruce Momjian2012-09-01
| | | | are sometimes signed, sometimes unsigned.
* Fix broken link in installation.sgml.Tom Lane2012-09-01
| | | | | Linking to other parts of the manual doesn't work when building the standalone INSTALL document.
* Cross-link to doc build requirements from install requirements.Robert Haas2012-09-01
| | | | Jeff Janes
* More documentation updates for LATERAL.Tom Lane2012-09-01
| | | | | | | | | | | | | | Extend xfunc.sgml's discussion of set-returning functions to show an example of using LATERAL, and recommend that over putting SRFs in the targetlist. In passing, reword func.sgml's section on set-returning functions so that it doesn't claim that the functions listed therein are all the built-in set-returning functions. That hasn't been true for a long time, and trying to make it so doesn't seem like it would be an improvement. (Perhaps we should rename that section?) Both per suggestions from Merlin Moncure.
* psql: Reduce compatibility warningPeter Eisentraut2012-08-31
| | | | | | Only warn when connecting to a newer server, since connecting to older servers works pretty well nowadays. Also update the documentation a little about current psql/server compatibility expectations.
* Restore setting of _USE_32BIT_TIME_T to 32 bit MSVC builds.Andrew Dunstan2012-08-31
| | | | | | | | | | | This was removed in commit cd004067742ee16ee63e55abfb4acbd5f09fbaab, we're not quite sure why, but there have been reports of crashes due to AS Perl being built with it when we are not, and it certainly seems like the right thing to do. There is still some uncertainty as to why it sometimes fails and sometimes doesn't. Original patch from Owais Khani, substantially reworked and extended by Andrew Dunstan.
* Partially restore qual scope checks in distribute_qual_to_rels().Tom Lane2012-08-31
| | | | | | | | The LATERAL implementation is now basically complete, and I still don't see a cost-effective way to make an exact qual scope cross-check in the presence of LATERAL. However, I did add a PlannerInfo.hasLateralRTEs flag along the way, so it's easy to make the check only when not hasLateralRTEs. That seems to still be useful, and it beats having no check at all.
* Fix LATERAL references to join alias variables.Tom Lane2012-08-31
| | | | | I had thought this case worked already, but perhaps I didn't re-test it after adding extract_lateral_references() ...
* In pg_upgade, document that the port numbers must be different whenBruce Momjian2012-08-31
| | | | checking an old running server.
* Make configure probe for mbstowcs_l as well as wcstombs_l.Tom Lane2012-08-31
| | | | | | | | | | | We previously supposed that any given platform would supply both or neither of these functions, so that one configure test would be sufficient. It now appears that at least on AIX this is not the case ... which is likely an AIX bug, but nonetheless we need to cope with it. So use separate tests. Per bug #6758; thanks to Andrew Hastie for doing the followup testing needed to confirm what was happening. Backpatch to 9.1, where we began using these functions.
* Fix typos in README.Heikki Linnakangas2012-08-31
|
* Improve coding of gistchoose and gistRelocateBuildBuffersOnSplit.Tom Lane2012-08-30
| | | | | | | | This is mostly cosmetic, but it does eliminate a speculative portability issue. The previous coding ignored the fact that sum_grow could easily overflow (in fact, it could be summing multiple IEEE float infinities). On a platform where that didn't guarantee to produce a positive result, the code would misbehave. In any case, it was less than readable.
* Add Perl emacs formatting macros to src/tools/editors/emacs.samples.Bruce Momjian2012-08-30
| | | | Peter Eisentraut
* Clarify FreeBSD instructions in pg_test_timing.Bruce Momjian2012-08-30
| | | | Josh Kupershmidt