summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2010-09-22Convert cvsignore to gitignore, and add .gitignore for build targets.Magnus Hagander
2010-09-22Typo fix. "CVS" is not the same thing as "CSV".Robert Haas
2010-09-21pgcvslog isn't useful anymore, either.Tom Lane
See git_topo_order instead.
2010-09-21add_cvs_markers isn't useful anymore.Tom Lane
2010-09-21Some more cleanup of CVS keyword noise.Tom Lane
Poking around for remaining occurrences of CVS keyword strings, I came across one that apparently reflects the use of a $Revision: ...$ string in the original input data. Dunno why anybody would be using that in an MTA's Received: lines, but there it is. Put it back to the way that it was originally, according to inspection of the CVS repo.
2010-09-21The port/pg_latch.c symlink ought to be removed by make distclean.Tom Lane
Not sure why these symlinks are removed here and not in the port/ Makefile, but I won't second-guess that choice right now.
2010-09-21Remove various mentions of CVS from src/tools/RELEASE_CHANGES.Robert Haas
2010-09-21git_topo_order script, to match up commits across branches.Robert Haas
This script is intended to substitute for cvs2cl in generating release notes and scrutinizing what got back-patched to which branches. Script by me. Support for --since by Alex Hunsaker.
2010-09-20Remove cvs keywords from all files.Magnus Hagander
2010-09-19Update HOT README about when single-page vacuums happen.Bruce Momjian
2010-09-19Replace last remaining $Id$ with $PostgreSQL$.Tom Lane
2010-09-19Fix several broken $PostgreSQL$ keywords. Noted while experimentingTom Lane
with Magnus's script to remove these.
2010-09-18Make sure we wait for protocol-level EOF when ending binary COPY IN.Tom Lane
The previous coding just terminated the COPY immediately after seeing the EOF marker (-1 where a row field count is expected). The expected CopyDone or CopyFail message just got thrown away later, since we weren't in COPY mode anymore. This behavior complicated matters for the JDBC driver, and arguably was the wrong thing in any case since a CopyFail message after the marker wouldn't be honored. Note that there is a behavioral change here: extra data after the EOF marker was silently ignored before, but now it will cause an error. Hence not back-patching, although this is arguably a bug. Per report and patch by Kris Jurka.
2010-09-18Give a suitable HINT when an INSERT's data source is a RowExpr containingTom Lane
the same number of columns expected by the insert. This suggests that there were extra parentheses that converted the intended column list into a row expression. Original patch by Marko Tiikkaja, rather heavily editorialized by me.
2010-09-17Remove duplicated code left behind by my recent refactoring of comment.cRobert Haas
These checks are also present in objectaddress.c, so there's no need to recheck here.
2010-09-17Add some documentation about how we WAL-log filesystem actions.Tom Lane
Per a question from Robert Haas.
2010-09-16Treat exit code 128 (ERROR_WAIT_NO_CHILDREN) as non-fatal on Win32,Magnus Hagander
since it can happen when a process fails to start when the system is under high load. Per several bug reports and many peoples investigation. Back-patch to 8.4, which is as far back as the "deadman-switch" for shared memory access exists.
2010-09-15Fix two typos in comments, spotted by Fujii Masao and Thom BrownHeikki Linnakangas
2010-09-15Use a latch to make startup process wake up and replay immediately whenHeikki Linnakangas
new WAL arrives via streaming replication. This reduces the latency, and also allows us to use a longer polling interval, which is good for energy efficiency. We still need to poll to check for the appearance of a trigger file, but the interval is now 5 seconds (instead of 100ms), like when waiting for a new WAL segment to appear in WAL archive.
2010-09-15Simplify Windows implementation of latches. There's no need to keep aHeikki Linnakangas
dynamic pool of event handles, we can permanently assign one for each shared latch. Thanks to that, we no longer need a separate shared memory block for latches, and we don't need to know in advance how many shared latches there is, so you no longer need to remember to update NumSharedLatches when you introduce a new latch to the system.
2010-09-15Don't call OwnLatch while holding a spinlock. OwnLatch can elog() underHeikki Linnakangas
some "can't happen" scenarios, and spinlocks should only be held for a few instructions anyway. As pointed out by Fujii Masao.
2010-09-14Fix join-removal logic for pseudoconstant and outerjoin-delayed quals.Tom Lane
In these cases a qual can get marked with the removable rel in its required_relids, but this is just to schedule its evaluation correctly, not because it really depends on the rel. We were assuming that, in effect, we could throw away *all* quals so marked, which is nonsense. Tighten up the logic to be a little more paranoid about which quals belong to the outer join being considered for removal, and arrange for all quals that don't belong to be updated so they will still get evaluated correctly. Also fix another problem that happened to be exposed by this test case, which was that make_join_rel() was failing to notice some cases where a constant-false qual could be used to prove a join relation empty. If it's a pushed-down constant false, then the relation is empty even if it's an outer join, because the qual applies after the outer join expansion. Per report from Nathan Grange. Back-patch into 9.0.
2010-09-14Oops, the timeout argument to WaitLatchOrSocket is in microseconds, notHeikki Linnakangas
milliseconds.
2010-09-14Don't warn about an in-progress online backup, when we're recovering fromHeikki Linnakangas
an online backup instead of performing one. pg_ctl can detect that by checking if recovery.conf exists. Backup label file is renamed away early in recovery, so the window where backup label exists during recovery is normally very small, but you can run into it e.g if restore_command is set incorrectly and the startup process never finds even the first WAL segment containing the checkpoint record to start recovery from. Fujii Masao with comments by me.
2010-09-13Add a comment noting that the owner_pid test in OwnLatch is just a sanityHeikki Linnakangas
check, per request by Jeff Davis.
2010-09-13Remove prototype for non-existent function from walreceiver.h. Tidy up byHeikki Linnakangas
separating prototypes for functions in walreceiver.c and walreceiverfuncs.c with comments.
2010-09-13Process options from the startup packed in walsender. Only few optionsHeikki Linnakangas
make sense for walsender, but for example application_name and client_encoding do. We still don't apply per-role settings from pg_db_role_setting, because that would require connecting to a database to read the table. Fujii Masao
2010-09-11SERIALIZABLE transactions are actually implemented beneath the covers withJoe Conway
transaction snapshots, i.e. a snapshot registered at the beginning of a transaction. Change variable naming and comments to reflect this reality in preparation for a future, truly serializable mode, e.g. Serializable Snapshot Isolation (SSI). For the moment transaction snapshots are still used to implement SERIALIZABLE, but hopefully not for too much longer. Patch by Kevin Grittner and Dan Ports with review and some minor wording changes by me.
2010-09-11Add missing #includes, needed on some platforms. This should makeHeikki Linnakangas
the unixware buildfarm animals happy again.
2010-09-11Introduce latches. A latch is a boolean variable, with the capability toHeikki Linnakangas
wait until it is set. Latches can be used to reliably wait until a signal arrives, which is hard otherwise because signals don't interrupt select() on some platforms, and even when they do, there's race conditions. On Unix, latches use the so called self-pipe trick under the covers to implement the sleep until the latch is set, without race conditions. On Windows, Windows events are used. Use the new latch abstraction to sleep in walsender, so that as soon as a transaction finishes, walsender is woken up to immediately send the WAL to the standby. This reduces the latency between master and standby, which is good. Preliminary work by Fujii Masao. The latch implementation is by me, with helpful comments from many people.
2010-09-10Cursor names in the backend are not case-sensitve. This change makes sure thatMichael Meskes
ecpg also does not regard cursor names as case-sensitive. Thanks to Zoltan Boszormenyi for the patch.
2010-09-07Modify pg_upgrade to set/restore all environment variables related toBruce Momjian
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-05GROUP BY can only infer functional dependency from non-deferrable primary keys.Tom Lane
Peter's original patch had this right, but I dropped the check while revising the code to search pg_constraint instead of pg_index. Spotted by Dean Rasheed.
2010-09-04Pad the ps_status display with nulls, not blanks, on Darwin.Tom Lane
A long time ago, this didn't work nicely, but it seems to work on all recent versions of OS X. The blank-pad method is less desirable since it results in lots of extra space in ps' output. Per Alexey Klyukin.
2010-09-03Install a data-type-based solution for protecting pg_get_expr().REL9_1_ALPHA1Tom Lane
Since the code underlying pg_get_expr() is not secure against malformed input, and can't practically be made so, we need to prevent miscreants from feeding arbitrary data to it. We can do this securely by declaring pg_get_expr() to take a new datatype "pg_node_tree" and declaring the system catalog columns that hold nodeToString output to be of that type. There is no way at SQL level to create a non-null value of type pg_node_tree. Since the backend-internal operations that fill those catalog columns operate below the SQL level, they are oblivious to the datatype relabeling and don't need any changes.
2010-09-03In HEAD only, revert kluge solution for preventing misuse of pg_get_expr().Tom Lane
A data-type-based solution, which is much cleaner and more bulletproof, will follow shortly. It seemed best to make this a separate commit though.
2010-09-02Fix up flushing of composite-type typcache entries to be driven directly byTom Lane
SI invalidation events, rather than indirectly through the relcache. In the previous coding, we had to flush a composite-type typcache entry whenever we discarded the corresponding relcache entry. This caused problems at least when testing with RELCACHE_FORCE_RELEASE, as shown in recent report from Jeff Davis, and might result in real-world problems given the kind of unexpected relcache flush that that test mechanism is intended to model. The new coding decouples relcache and typcache management, which is a good thing anyway from a structural perspective. The cost is that we have to search the typcache linearly to find entries that need to be flushed. There are a couple of ways we could avoid that, but at the moment it's not clear it's worth any extra trouble, because the typcache contains very few entries in typical operation. Back-patch to 8.2, the same as some other recent fixes in this general area. The patch could be carried back to 8.0 with some additional work, but given that it's only hypothetical whether we're fixing any problem observable in the field, it doesn't seem worth the work now.
2010-09-02Fix typo. Pointed out by Kevin Grittner.Robert Haas
2010-08-30Cosmetic fixes for KnownAssignedXidsGetOldestXmin, per Fujii Masao.Tom Lane
2010-08-30Fix oversight in RelFileNodeBackend patch: CreateFakeRelcacheEntry needs toTom Lane
initialize the rd_backend field of a fake Relation entry correctly. Fortunately, that is easy, since only non-temp relations should ever be mentioned in the WAL stream.
2010-08-30Fix misleading DEBUG2 issued during RemoveOldXlogFiles()Simon Riggs
2010-08-30Truncate subtrans after each restartpoint.Simon Riggs
Issue reported by Harald Kolb, patch by Fujii Masao, review by me.
2010-08-30Teach GetOldestXmin() about KnownAssignedXids during recovery.Simon Riggs
Very minor issue, though this is required for a later patch. Reported by Heikki Linnakangas.
2010-08-30Fix typo in comment.Heikki Linnakangas
2010-08-29Reduce PANIC to ERROR in some occasionally-reported btree failure cases.Tom Lane
This patch changes _bt_split() and _bt_pagedel() to throw a plain ERROR, rather than PANIC, for several cases that are reported from the field from time to time: * right sibling's left-link doesn't match; * PageAddItem failure during _bt_split(); * parent page's next child isn't right sibling during _bt_pagedel(). In addition the error messages for these cases have been made a bit more verbose, with additional values included. The original motivation for PANIC here was to capture core dumps for subsequent analysis. But with so many users whose platforms don't capture core dumps by default, or who are unprepared to analyze them anyway, it's hard to justify a forced database restart when we can fairly easily detect the problems before we've reached the critical sections where PANIC would be necessary. It is not currently known whether the reports of these messages indicate well-hidden bugs in Postgres, or are a result of storage-level malfeasance; the latter possibility suggests that we ought to try to be more robust even if there is a bug here that's ultimately found. Backpatch to 8.2. The code before that is sufficiently different that it doesn't seem worth the trouble to back-port further.
2010-08-27Insert additional compiler placation into objectaddress.c.Robert Haas
Peter Eisentraut reports that some bits of the "address" variable in get_object_address() give "may be used uninitialized" warnings; this likes the only excuse his compiler could have for thinking that's possible.
2010-08-27Small refactoring of makeVar() from a TargetEntryPeter Eisentraut
2010-08-27Rewrite comment code for better modularity, and add necessary locking.Robert Haas
Review by Alvaro Herrera, KaiGai Kohei, and Tom Lane.
2010-08-26Document the existence of the socket lock file under unix_socket_directory,Tom Lane
which is perhaps not a terribly good spot for it but there doesn't seem to be a better place. Also add a source-code comment pointing out a couple reasons for having a separate lock file. Per suggestion from Greg Smith.
2010-08-26Update time zone data files to tzdata release 2010l: DST law changes inTom Lane
Egypt and Palestine. Added new names for two Micronesian timezones: Pacific/Chuuk is now preferred over Pacific/Truk (and the preferred abbreviation is CHUT not TRUT) and Pacific/Pohnpei is preferred over Pacific/Ponape. Historical corrections for Finland.