aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* Add ALTER TYPE ... ADD/DROP/ALTER/RENAME ATTRIBUTEPeter Eisentraut2010-09-26
| | | | | | | Like with tables, this also requires allowing the existence of composite types with zero attributes. reviewed by KaiGai Kohei
* Still more tweaking of git_changelog.Tom Lane2010-09-26
| | | | | | | | | | | | | | | 1. Don't assume there's only one candidate match; check them all and use the one with the closest timestamp. Avoids funny output when someone makes several successive commits with the same log message, as certain people have been known to do. 2. When the same commit (with the same SHA1) is reachable from multiple branch tips, don't report it for all the branches; instead report it only for the first such branch. Given our development practices, this case arises only for commits that occurred before a given branch split off from master. The original coding blamed old commits on *all* the branches, which isn't terribly useful; the new coding blames such a commit only on master.
* Fix some more bugs in git_changelog.Tom Lane2010-09-26
| | | | | | | | | | | | 1. Don't forget the last (oldest) commit on the oldest branch. 2. When considering which commit to print next, if two alternatives have the same "distortion" score (which is actually the normal case, since generally the "distortion" is 0), then choose the later timestamp to print first. I don't know where Robert got the idea to ignore timestamps and sort by branch age, but it wasn't a good idea: the resulting ordering of commits was just plain bizarre anywhere that some branches had many fewer commits than others, which is the typical situation for us.
* Minor improvements to git_changelog.Tom Lane2010-09-25
| | | | | | | | | | | | | | | Avoid depending on Date::Calc, which isn't in a basic Perl installation, when we can equally well use Time::Local which is. Also fix the parsing of timestamps to take heed of the timezone. (It looks like cvs2git emitted all commit timestamps with zone GMT, so this refinement might've looked unnecessary when looking at converted data; but it's needed now.) Fix parsing of message bodies so that blank lines that may or may not get emitted by "git log" aren't confused with real data. This avoids strange formatting of the oldest commit on a branch. Check child-process exit status, so that we actually notice if "git log" fails, and so that we don't accumulate zombie children.
* Rename git_topo_order -> git_changelog, per discussion.Tom Lane2010-09-25
|
* Fix another join removal bug: the check on PlaceHolderVars was wrong.Tom Lane2010-09-25
| | | | | | | | The previous coding would decide that join removal was unsafe upon finding a PlaceHolderVar that needed to be evaluated at the inner rel and then used above the join. However, this fails to cover the case of PlaceHolderVars that refer to both the inner rel and some other rels. Per bug report from Andrus.
* Still more .gitignore cleanup.Tom Lane2010-09-24
| | | | | Fix overly-enthusiastic ignores, as identified by git ls-files -i --exclude-standard
* ProcessIncomingNotify *must* reset notifyInterruptOccurred when called.Tom Lane2010-09-23
| | | | | This was broken in 9.0 by careless addition of an early-exit path. Bug report and diagnosis by Jeff Davis.
* Prevent show_session_authorization from crashing when session_authorizationTom Lane2010-09-23
| | | | | | | | | | | | | | | hasn't been set. The only known case where this can happen is when show_session_authorization is invoked in an autovacuum process, which is possible if an index function calls it, as for example in bug #5669 from Andrew Geery. We could perhaps try to return a sensible value, such as the name of the cluster-owning superuser; but that seems like much more trouble than the case is worth, and in any case it could create new possible failure modes. Simply returning an empty string seems like the most appropriate fix. Back-patch to all supported versions, even those before autovacuum, just in case there's another way to provoke this crash.
* Avoid sharing subpath list structure when flattening nested AppendRels.Tom Lane2010-09-23
| | | | | | | | | | | | | In some situations the original coding led to corrupting the child AppendRel's subpaths list, effectively adding other members of the parent's list to it. This was usually masked because we never made any further use of the child's list, but given the right combination of circumstances, we could do so. The visible symptom would be a relation getting scanned twice, as in bug #5673 from David Schmitt. Backpatch to 8.2, which is as far back as the risky coding appears. The example submitted by David only fails in 8.4 and later, but I'm not convinced that there aren't any even-more-obscure cases where 8.2 and 8.3 would fail.
* Make _outPathInfo print the relid set of the path's parent rel.Tom Lane2010-09-23
| | | | | | | We can't actually print the parent RelOptInfo in toto, because that would lead to infinite recursion. But it's safe enough to reach into the parent and print its identifying relids, and that makes it a whole lot easier to figure out what a Path represents. Should have done this years ago.
* Initialize tableoid field correctly when dumping foreign data wrappers andHeikki Linnakangas2010-09-23
| | | | | | | | servers. AFAICT it's harmless at the moment because nothing can depend on either, but as soon as we introduce an object type with such dependencies, tableoid needs to be set or pg_dump will fail to interpret the dependencies correctly. In theory, I guess the uninitialized garbage in tableoid could cause the object to be mistaken for some other object with same OID as well.
* Re-allow input of Julian dates prior to 0001-01-01 AD.Tom Lane2010-09-22
| | | | | | This was unintentionally broken in 8.4 while tightening up checking of ordinary non-Julian date inputs to forbid references to "year zero". Per bug #5672 from Benjamin Gigot.
* More fixes for libpq's .gitignore file.Tom Lane2010-09-22
| | | | | | The previous patches failed to cover a lot of symlinks that are only added in platform-specific cases. Make the lists match what's in the Makefile for each branch.
* Fix inconsistent capitalization of "PL/pgSQL".Robert Haas2010-09-22
| | | | Josh Kupershmidt
* Fix remaining stray references to CVS.Tom Lane2010-09-22
| | | | | These are just cosmetic and don't seem worth back-patching far. I put them into 9.0 just because it was trivial to do so.
* Some more gitignore cleanups: cover contrib and PL regression test outputs.Tom Lane2010-09-22
| | | | | Also do some further work in the back branches, where quite a bit wasn't covered by Magnus' original back-patch.
* Add gitignore files for ecpg regression tests.Magnus Hagander2010-09-22
| | | | Backpatch to 8.2 as that's how far the structure looks the same.
* Convert cvsignore to gitignore, and add .gitignore for build targets.Magnus Hagander2010-09-22
|
* Typo fix. "CVS" is not the same thing as "CSV".Robert Haas2010-09-22
|
* pgcvslog isn't useful anymore, either.Tom Lane2010-09-21
| | | | See git_topo_order instead.
* add_cvs_markers isn't useful anymore.Tom Lane2010-09-21
|
* Some more cleanup of CVS keyword noise.Tom Lane2010-09-21
| | | | | | | | 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.
* The port/pg_latch.c symlink ought to be removed by make distclean.Tom Lane2010-09-21
| | | | | Not sure why these symlinks are removed here and not in the port/ Makefile, but I won't second-guess that choice right now.
* Remove various mentions of CVS from src/tools/RELEASE_CHANGES.Robert Haas2010-09-21
|
* git_topo_order script, to match up commits across branches.Robert Haas2010-09-21
| | | | | | | 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.
* Remove cvs keywords from all files.Magnus Hagander2010-09-20
|
* Update HOT README about when single-page vacuums happen.Bruce Momjian2010-09-19
|
* Replace last remaining $Id$ with $PostgreSQL$.Tom Lane2010-09-19
|
* Fix several broken $PostgreSQL$ keywords. Noted while experimentingTom Lane2010-09-19
| | | | with Magnus's script to remove these.
* Make sure we wait for protocol-level EOF when ending binary COPY IN.Tom Lane2010-09-18
| | | | | | | | | | | | | | | 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.
* Give a suitable HINT when an INSERT's data source is a RowExpr containingTom Lane2010-09-18
| | | | | | | | 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.
* Remove duplicated code left behind by my recent refactoring of comment.cRobert Haas2010-09-17
| | | | | These checks are also present in objectaddress.c, so there's no need to recheck here.
* Add some documentation about how we WAL-log filesystem actions.Tom Lane2010-09-17
| | | | Per a question from Robert Haas.
* Treat exit code 128 (ERROR_WAIT_NO_CHILDREN) as non-fatal on Win32,Magnus Hagander2010-09-16
| | | | | | | | | | 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.
* Fix two typos in comments, spotted by Fujii Masao and Thom BrownHeikki Linnakangas2010-09-15
|
* Use a latch to make startup process wake up and replay immediately whenHeikki Linnakangas2010-09-15
| | | | | | | | | | 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.
* Simplify Windows implementation of latches. There's no need to keep aHeikki Linnakangas2010-09-15
| | | | | | | | 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.
* Don't call OwnLatch while holding a spinlock. OwnLatch can elog() underHeikki Linnakangas2010-09-15
| | | | | some "can't happen" scenarios, and spinlocks should only be held for a few instructions anyway. As pointed out by Fujii Masao.
* Fix join-removal logic for pseudoconstant and outerjoin-delayed quals.Tom Lane2010-09-14
| | | | | | | | | | | | | | | | | | 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.
* Oops, the timeout argument to WaitLatchOrSocket is in microseconds, notHeikki Linnakangas2010-09-14
| | | | milliseconds.
* Don't warn about an in-progress online backup, when we're recovering fromHeikki Linnakangas2010-09-14
| | | | | | | | | | | | | 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.
* Add a comment noting that the owner_pid test in OwnLatch is just a sanityHeikki Linnakangas2010-09-13
| | | | check, per request by Jeff Davis.
* Remove prototype for non-existent function from walreceiver.h. Tidy up byHeikki Linnakangas2010-09-13
| | | | | separating prototypes for functions in walreceiver.c and walreceiverfuncs.c with comments.
* Process options from the startup packed in walsender. Only few optionsHeikki Linnakangas2010-09-13
| | | | | | | | 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
* SERIALIZABLE transactions are actually implemented beneath the covers withJoe Conway2010-09-11
| | | | | | | | | | | 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.
* Add missing #includes, needed on some platforms. This should makeHeikki Linnakangas2010-09-11
| | | | the unixware buildfarm animals happy again.
* Introduce latches. A latch is a boolean variable, with the capability toHeikki Linnakangas2010-09-11
| | | | | | | | | | | | | | | | | | 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.
* Cursor names in the backend are not case-sensitve. This change makes sure thatMichael Meskes2010-09-10
| | | | | | ecpg also does not regard cursor names as case-sensitive. Thanks to Zoltan Boszormenyi for the patch.
* Modify pg_upgrade to set/restore all environment variables related toBruce Momjian2010-09-07
| | | | | | | 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.