aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* Warn that views can be safely used to hide columns, but not rows.Robert Haas2010-10-08
|
* Improve logging in VACUUM FULL VERBOSE and CLUSTER VERBOSE.Tom Lane2010-10-07
| | | | | | | | | This patch resurrects some of the information that could be logged by the old, now-dead implementation of VACUUM FULL, in particular counts of live and dead tuples and the time taken for the table rebuild proper. There's still no logging about the ensuing index rebuilds, though. Itagaki Takahiro
* Eliminate some repetitive coding in tuplesort.c.Tom Lane2010-10-07
| | | | | | Use a macro LogicalTapeReadExact() to encapsulate the error check when we want to read an exact number of bytes from a "tape". Per a suggestion of Takahiro Itagaki.
* Teach CLUSTER to use seqscan-and-sort when it's faster than indexscan.Tom Lane2010-10-07
| | | | | | ... or at least, when the planner's cost estimates say it will be faster. Leonardo Francalanci, reviewed by Itagaki Takahiro and Tom Lane
* Improve WAL reliability documentation, and add more cross-references to it.Robert Haas2010-10-07
| | | | | | | | In particular, we are now more explicit about the fact that you may need wal_sync_method=fsync_writethrough for crash-safety on some platforms, including MaxOS X. There's also now an explicit caution against assuming that the default setting of wal_sync_method is either crash-safe or best for performance.
* Reduce the memory requirement for large ispell dictionaries.Tom Lane2010-10-06
| | | | | | | | | | | This patch eliminates per-chunk palloc overhead for most small allocations needed in the representation of an ispell dictionary. This saves close to a factor of 2 on the current Czech ispell data. While it doesn't cover every last small allocation in the ispell code, we are at the point of diminishing returns, because about 95% of the allocations are covered already. Pavel Stehule, rather heavily revised by Tom
* Clean up temporary-memory management during ispell dictionary loading.Tom Lane2010-10-06
| | | | | | | | | | | Add explicit initialization and cleanup functions to spell.c, and keep all working state in the already-existing ISpellDict struct. This lets us get rid of a static variable along with some extremely shaky assumptions about usage of child memory contexts. This commit is just code beautification and has no impact on functionality or performance, but it opens the way to a less-grotty implementation of Pavel's memory-saving hack, which will follow shortly.
* Correct docs for behaviour of ALTER DATABASE .. RENAME during Hot Standby.Simon Riggs2010-10-06
| | | | | | | Actual behaviour did not match documented behaviour and we have agreed that it should be the docs that change. Spotted by Bernd Helmle
* Undo some poorly-thought-out "proofreading improvements".Tom Lane2010-10-05
| | | | Per Tatsuhito Kasahara.
* Behave correctly if INSERT ... VALUES is decorated with additional clauses.Tom Lane2010-10-02
| | | | | | | | | | In versions 8.2 and up, the grammar allows attaching ORDER BY, LIMIT, FOR UPDATE, or WITH to VALUES, and hence to INSERT ... VALUES. But the special-case code for VALUES in transformInsertStmt() wasn't expecting any of those, and just ignored them, leading to unexpected results. Rather than complicate the special-case path, just ensure that the presence of any of those clauses makes us treat the query as if it had a general SELECT. Per report from Hitoshi Harada.
* Remove excess argument to open(2).Tom Lane2010-10-02
| | | | | | | Many compilers don't complain about this, but some do, and it's certainly wrong. Back-patch to 8.4 where the error was introduced. Mark Kirkwood
* Throw an appropriate error if ALTER COLUMN TYPE finds a dependent trigger.Tom Lane2010-10-02
| | | | | | | | | Actually making this case work, if the column is used in the trigger's WHEN condition, will take some new code that probably isn't appropriate to back-patch. For now, just throw a FEATURE_NOT_SUPPORTED error rather than allowing control to reach the "unexpected object" case. Per bug #5688 from Daniel Grace. Back-patch to 9.0 where the possibility of such a dependency was introduced.
* Use a separate interpreter for each calling SQL userid in plperl and pltcl.Tom Lane2010-09-30
| | | | | | | | | | | | | | | | | | | | | | | | | There are numerous methods by which a Perl or Tcl function can subvert the behavior of another such function executed later; for example, by redefining standard functions or operators called by the target function. If the target function is SECURITY DEFINER, or is called by such a function, this means that any ordinary SQL user with Perl or Tcl language usage rights can do essentially anything with the privileges of the target function's owner. To close this security hole, create a separate Perl or Tcl interpreter for each SQL userid under which plperl or pltcl functions are executed within a session. However, all plperlu or pltclu functions run within a session still share a single interpreter, since they all execute at the trust level of a database superuser anyway. Note: this change results in a functionality loss when libperl has been built without the "multiplicity" option: it's no longer possible to call plperl functions under different userids in one session, since such a libperl can't support multiple interpreters in one process. However, such a libperl already failed to support concurrent use of plperl and plperlu, so it's likely that few people use such versions with Postgres. Security: CVE-2010-3433
* Adjust pg_archivecleanup docs to match message changes made 2010-06-17.Robert Haas2010-09-30
| | | | Erik Rijkers
* Update release notes for releases 9.0.1, 8.4.5, 8.3.12, 8.2.18, 8.1.22,Tom Lane2010-09-30
| | | | 8.0.26, and 7.4.30.
* Add/fix caching on some configure checksPeter Eisentraut2010-09-29
|
* Update ecpglib error code listingPeter Eisentraut2010-09-29
| | | | Satoshi Nagayasu
* Have pg_upgrade use strtoul(), not strtol().Bruce Momjian2010-09-29
|
* Use macro atooid() for conversion of strings to oids, per suggestionBruce Momjian2010-09-28
| | | | from Tom.
* Improve messages for too many private files/dirs. Per Alexey Parshin.Tom Lane2010-09-28
|
* In pg_upgrade, properly handle oids > 2^31 by using strtoul() internallyBruce Momjian2010-09-28
| | | | | | rather than atol(). Per report from Brian Hirt
* Fix leak patch that was using fclose() instead of close().Bruce Momjian2010-09-28
|
* Properly close files after read file failure to prevent potentialBruce Momjian2010-09-28
| | | | | | | resource leak. Of course, any such failure aborts pg_upgrade, but might as well be clean about it. Per patch from Grzegorz Ja?kiewicz.
* Fix another small oversight in command_no_begin patch.Tom Lane2010-09-28
| | | | | | Need a "return false" to prevent tests from continuing after we've moved the "query" pointer. As it stood, it'd accept "DROP DISCARD ALL" as a match.
* Mention that pg_upgrade requires write permission in the currentBruce Momjian2010-09-28
| | | | | | directory. Per report from Harald Armin Massa.
* Mention in pg_upgrade docs that the proper Win32 service name should be used.Bruce Momjian2010-09-28
| | | | Per report from Harald Armin Massa
* Fix PlaceHolderVar mechanism's interaction with outer joins.Tom Lane2010-09-28
| | | | | | | | | | | | | | The point of a PlaceHolderVar is to allow a non-strict expression to be evaluated below an outer join, after which its value bubbles up like a Var and can be forced to NULL when the outer join's semantics require that. However, there was a serious design oversight in that, namely that we didn't ensure that there was actually a correct place in the plan tree to evaluate the placeholder :-(. It may be necessary to delay evaluation of an outer join to ensure that a placeholder that should be evaluated below the join can be evaluated there. Per recent bug report from Kirill Simonov. Back-patch to 8.4 where the PlaceHolderVar mechanism was introduced.
* Add mention of installing pg_upgrade_support in pg_upgrade doc sectionBruce Momjian2010-09-28
| | | | title, per suggestion from Ian Barwick.
* Add missing agg_type nonterminal description in new reference page.Alvaro Herrera2010-09-28
|
* Fix MSVC builds for dummy_seclabel breakage.Andrew Dunstan2010-09-28
|
* Fix duplicate OIDs introduced by SECURITY LABEL patch.Robert Haas2010-09-28
| | | | Report by Shigeru Hanada.
* Only DISCARD ALL should be in the command_no_begin list.Itagaki Takahiro2010-09-28
| | | | We allowes DISCARD PLANS and TEMP in a transaction.
* Add DISCARD to the command_no_begin list for AUTOCOMMIT=off.Itagaki Takahiro2010-09-28
| | | | | | Backpatch to 8.3. Reported by Sergey Burladyan.
* Add a SECURITY LABEL command.Robert Haas2010-09-27
| | | | | | | | This is intended as infrastructure to support integration with label-based mandatory access control systems such as SE-Linux. Further changes (mostly hooks) will be needed, but this is a big chunk of it. KaiGai Kohei and Robert Haas
* Add "(change requires restart)" note to some postgresql.conf parameters.Robert Haas2010-09-27
| | | | Devrim GÜNDÜZ
* Improve git_changelog as per discussion with Robert Haas.Tom Lane2010-09-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Resurrect the behavior where old commits on master will have Branch: labels for branches sprouted after the commit was made. I'm still dubious about this mode, but if you want it, say --post-date or -p. 2. Annotate the Branch: labels with the release or branch in which the commit was publicly released. For example, on a release branch you could see Branch: REL8_3_STABLE Release: REL8_3_2 [92c3a8004] 2008-03-29 00:15:37 +0000 showing that the fix was released in 8.3.2. Commits on master will usually instead have notes like Branch: master Release: REL8_4_BR [6fc9d4272] 2008-03-29 00:15:28 +0000 showing that this commit is ancestral to release branches 8.4 and later. If no Release: marker appears, the commit hasn't yet made it into any release. 3. Add support for release branches older than 7.4. 4. The implementation is improved by running git log on each branch only back to where the branch sprouts from master. This saves a good deal of time (about 50% of the runtime when generating the complete history). We generate the post-date-mode tags via a direct understanding that they should be applied to master commits made before the branch sprouted, rather than backing into them via matching (which isn't any too reliable when people used identical log messages for successive commits).
* 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.
* Fix man page markup for <cmdsynopsis> with multiple variantsPeter Eisentraut2010-09-25
| | | | | | | | | | Command synopses using <cmdsynopsis> with multiple variants previously used <sbr> to break lines between variants. The new man page toolchain introduced in 9.0 makes a mess out of that, and that markup was probably wrong all along, because <sbr> is supposed to break lines within a synopsis, not between them. So fix that by using multiple <cmdsynopsis> elements inside <refsynopsisdiv>. backpatched to 9.0
* In levenshtein_internal(), describe algorithm a bit more clearly.Robert Haas2010-09-24
|
* Still more .gitignore cleanup.Tom Lane2010-09-24
| | | | | Fix overly-enthusiastic ignores, as identified by git ls-files -i --exclude-standard
* Prevent doc/src/sgml subdirs from being created, instead of deletingAlvaro Herrera2010-09-24
| | | | them after the fact. This is a more elegant fix for bug #5595.
* Add contrib/xml2/pgxml.sql to .gitignoreRobert Haas2010-09-23
| | | | Kevin Grittner
* Replace doc references to install-win32 with install-windows.Robert Haas2010-09-23
| | | | | | Windows is not necessarily 32-bit, any more. As suggested by Mike Toews.
* 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.