aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Improve doc wording of drop table permission.Bruce Momjian2011-10-15
|
* Allow a major PG version psql .psqlrc file to be used if a minorBruce Momjian2011-10-14
| | | | | matching version file does not exist. This avoids needing to rename .psqlrc files after minor version upgrades.
* Fix bugs in information_schema.referential_constraints view.Tom Lane2011-10-14
| | | | | | | | | | | | | | | | This view was being insufficiently careful about matching the FK constraint to the depended-on primary or unique key constraint. That could result in failure to show an FK constraint at all, or showing it multiple times, or claiming that it depended on a different constraint than the one it really does. Fix by joining via pg_depend to ensure that we find only the correct dependency. Back-patch, but don't bump catversion because we can't force initdb in back branches. The next minor-version release notes should explain that if you need to fix this in an existing installation, you can drop the information_schema schema then re-create it by sourcing $SHAREDIR/information_schema.sql in each database (as a superuser of course).
* Measure the number of all-visible pages for use in index-only scan costing.Tom Lane2011-10-14
| | | | | | | | | | | | | | | | | Add a column pg_class.relallvisible to remember the number of pages that were all-visible according to the visibility map as of the last VACUUM (or ANALYZE, or some other operations that update pg_class.relpages). Use relallvisible/relpages, instead of an arbitrary constant, to estimate how many heap page fetches can be avoided during an index-only scan. This is pretty primitive and will no doubt see refinements once we've acquired more field experience with the index-only scan mechanism, but it's way better than using a constant. Note: I had to adjust an underspecified query in the window.sql regression test, because it was changing answers when the plan changed to use an index-only scan. Some of the adjacent tests perhaps should be adjusted as well, but I didn't do that here.
* Dump all roles first, then all config settings on roles.Robert Haas2011-10-14
| | | | | | | | This way, if a role's config setting uses the name of another role, the validity of the dump isn't dependent on the order in which those two roles are dumped. Code by Phil Sorber, comment by me.
* Avoid potential relcache leak in objectaddress.c.Robert Haas2011-10-14
| | | | | | | Nobody using the missing_ok flag yet, but let's speculate that this will be a better interface for future callers. KaiGai Kohei, with some adjustments by me.
* Document actual string that has to be returned by the client for MD5Bruce Momjian2011-10-13
| | | | | | authentication. Report and pseudo code by Cyan Ogilvie
* Remove all "traces" of trace_userlocks, because userlocks were removedBruce Momjian2011-10-13
| | | | in PG 8.2.
* Fix up Perl-to-Postgres datatype conversions in pl/perl.Tom Lane2011-10-13
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch restores the pre-9.1 behavior that pl/perl functions returning VOID ignore the result value of their last Perl statement. 9.1.0 unintentionally threw an error if the last statement returned a reference, as reported by Amit Khandekar. Also, make sure it works to return a string value for a composite type, so long as the string meets the type's input format. We already allowed the equivalent behavior for arrays, so it seems inconsistent to not allow it for composites. In addition, ensure we throw errors for attempts to return arrays or hashes when the function's declared result type is not an array or composite type, respectively. Pre-9.1 versions rather uselessly returned strings like ARRAY(0x221a9a0) or HASH(0x221aa90), while 9.1.0 threw an error for the hash case and returned a garbage value for the array case. Also, clean up assorted grotty coding in Perl array conversion, including use of a session-lifespan memory context to accumulate the array value (resulting in session-lifespan memory leak on error), failure to apply the declared typmod if any, and failure to detect some cases of non-rectangular multi-dimensional arrays. Alex Hunsaker and Tom Lane
* Update documentation about ts_rank().Bruce Momjian2011-10-13
|
* Have pg_ctl return an exit status of 3 if the server is not running, toBruce Momjian2011-10-13
| | | | | | match the Linux Standard Base Core Specification 3.1. Aaron W. Swenson
* Fix typo in dummy_seclabel documentation.Tom Lane2011-10-13
| | | | | | dummy_label -> dummy_seclabel Thom Brown
* Document who can drop a table (owner and user with permissions).Bruce Momjian2011-10-13
|
* Remove tab in sgml file.Bruce Momjian2011-10-13
|
* Don't mark auto-generated types as extension members.Tom Lane2011-10-12
| | | | | | | | | | | | | | | | | | Relation rowtypes and automatically-generated array types do not need to have their own extension membership dependency entries. If we create such then it becomes more difficult to remove items from an extension, and it's also harder for an extension upgrade script to make sure it duplicates the dependencies created by the extension's regular installation script. I changed the code in such a way that this happened in commit 988cccc620dd8c16d77f88ede167b22056176324, I think because of worries about the shell-type-replacement case; but that cure was worse than the disease. It would only matter if one extension created a shell type that was replaced with an auto-generated type in another extension, which seems pretty far-fetched. Better to make this work unsurprisingly in normal cases. Report and patch by Robert Haas, comment adjustments by me.
* Document how to accent Alvaro Herrera in the release notes.Bruce Momjian2011-10-12
|
* Clarify wording of foreign key documentation to mention null entries asBruce Momjian2011-10-12
| | | | | | not matching the primary key. Report from Marek.Balgar@seznam.cz
* Modify RelationGetBufferForTuple() to use a typedef, rather than aBruce Momjian2011-10-12
| | | | struct, to help pgindent.
* Modify pgindent to use a renamed pg_bsd_indent binary. New featuresBruce Momjian2011-10-12
| | | | | include the ability to supply a typedef file, rather than list them on the command line. Also improve the README.
* Throw a useful error message if an extension script file is fed to psql.Tom Lane2011-10-12
| | | | | | | | | | | | | | | | We have seen one too many reports of people trying to use 9.1 extension files in the old-fashioned way of sourcing them in psql. Not only does that usually not work (due to failure to substitute for MODULE_PATHNAME and/or @extschema@), but if it did work they'd get a collection of loose objects not an extension. To prevent this, insert an \echo ... \quit line that prints a suitable error message into each extension script file, and teach commands/extension.c to ignore lines starting with \echo. That should not only prevent any adverse consequences of loading a script file the wrong way, but make it crystal clear to users that they need to do it differently now. Tom Lane, following an idea of Andrew Dunstan's. Back-patch into 9.1 ... there is not going to be much value in this if we wait till 9.2.
* Modify up/home macro to match standard parameter list; fixes doc build.Bruce Momjian2011-10-12
|
* Improve documentation of psql's \q command.Tom Lane2011-10-12
| | | | | | The documentation neglected to explain its behavior in a script file (it only ends execution of the script, not psql as a whole), and failed to mention the long form \quit either.
* Add Up/Home link to the top of the HTML doc output.Bruce Momjian2011-10-12
| | | | Backpatch to 9.0.X and 9.1.X.
* Add comment on why pulling data from a "name" index column can't crash.Tom Lane2011-10-11
| | | | | | | | | | | It's been bothering me for several days that pretending that the cstring data stored in a btree name_ops column is really a "name" Datum could lead to reading past the end of memory. However, given the current memory layout used for index-only scans in the btree code, a crash is in fact not possible. Document that so we don't break it. I have not thought of any other solutions that aren't fairly ugly too, and most of them lose the functionality of index-only scans on name columns altogether, so this seems like the way to go.
* Generate index-only scan tuple descriptor from the plan node's indextlist.Tom Lane2011-10-11
| | | | | | | | | | Dept. of second thoughts: as long as we've got that tlist hanging around anyway, we can apply ExecTypeFromTL to it to get a suitable descriptor for the ScanTupleSlot. This is a nicer solution than the previous one because it eliminates some hard-wired knowledge about btree name_ops, and because it avoids the somewhat shaky assumption that we needn't set up the scan tuple descriptor in EXPLAIN_ONLY mode. It doesn't change what actually happens at run-time though, and I'm still a bit nervous about that.
* Improve entab's Makefile install entry.Bruce Momjian2011-10-11
| | | | Andrew Dunstan
* Document that not backing up postmaster.pid and postmaster.opts mightBruce Momjian2011-10-11
| | | | | | help prevent pg_ctl from getting confused. Backpatch to 9.1.
* Consider index-only scans even when there is no matching qual or ORDER BY.Tom Lane2011-10-11
| | | | By popular demand.
* Rearrange the implementation of index-only scans.Tom Lane2011-10-11
| | | | | | | | | | | | | | | | | | | | | | This commit changes index-only scans so that data is read directly from the index tuple without first generating a faux heap tuple. The only immediate benefit is that indexes on system columns (such as OID) can be used in index-only scans, but this is necessary infrastructure if we are ever to support index-only scans on expression indexes. The executor is now ready for that, though the planner still needs substantial work to recognize the possibility. To do this, Vars in index-only plan nodes have to refer to index columns not heap columns. I introduced a new special varno, INDEX_VAR, to mark such Vars to avoid confusion. (In passing, this commit renames the two existing special varnos to OUTER_VAR and INNER_VAR.) This allows ruleutils.c to handle them with logic similar to what we use for subplan reference Vars. Since index-only scans are now fundamentally different from regular indexscans so far as their expression subtrees are concerned, I also chose to change them to have their own plan node type (and hence, their own executor source file).
* Replace hardcoded switch in object_exists() with a lookup table.Robert Haas2011-10-11
| | | | | | | | | | | | There's no particular advantage to this change on its face; indeed, it's possible that this might be slightly slower than the old way. But it makes this information more easily accessible to other functions, and therefore paves the way for future code consolidation. Performance isn't critical here, so there's no need to be smart about how we do the search. This is a heavily cut-down version of a patch from KaiGai Kohei, with several fixes by me. Additional review from Dimitri Fontaine.
* Repair breakage in VirtualXactLock.Robert Haas2011-10-11
| | | | | I broke this in commit 84e37126770dd6de903dad88ce150a49b63b5ef9. Report and fix by Fujii Masao.
* Make the reference to "CREATE USER" in the CREATE ROLE page a link.Robert Haas2011-10-10
| | | | | | | | This might help to avoid confusion between the CREATE USER command, and the deprecated CREATEUSER option to CREATE ROLE, as per a recent complaint from Ron Adams. At any rate, having a cross-link here seems like a good idea; two commands that are so similar should reference each other.
* Improve documentation of how to fiddle with SCSI drives on FreeBSD.Robert Haas2011-10-10
| | | | Per suggestions from Achilleas Mantzios and Greg Smith.
* Fix typo in docs for libpq keepalives_count option.Robert Haas2011-10-10
| | | | Shigehiro Honda
* Add doc index entry for pg_resetxlog.Robert Haas2011-10-10
| | | | Fujii Masao
* Document DELETE/UPDATE command tag behavior when triggers are involved.Robert Haas2011-10-10
| | | | Marti Raudsepp
* Some minor wordsmithing for the cascading replication documentation.Robert Haas2011-10-10
| | | | Per report from Thom Brown.
* Mark GUC external_pid_file's default as '' in postgresql.conf, ratherBruce Momjian2011-10-10
| | | | than '(none)'.
* Attempt to reduce local dependencies in regression tests.Robert Haas2011-10-10
| | | | | | | This appears to be another case where the relative sort order of letters vs. numbers can throw things off. Pavel Stehule
* In pg_upgrade, add -o/-O options to pass parameters to the servers, andBruce Momjian2011-10-10
| | | | document its use for config-only directory installs.
* Fix ALTER TABLE ONLY .. DROP CONSTRAINT.Robert Haas2011-10-09
| | | | | | | | | | | | | | | | | | When I consolidated two copies of the HOT-chain search logic in commit 4da99ea4231e3d8bbf28b666748c1028e7b7d665, I introduced a behavior change: the old code wouldn't necessarily traverse the entire chain, if the most recently returned tuple were updated while the HOT chain traversal is in progress. The new behavior seems more correct, but unfortunately, the code here relies on a scan with SnapshotNow failing to see its own updates. That seems pretty shaky even with the old HOT chain traversal behavior, since there's no guarantee that these updates will always be HOT, but it's trivial to broke a failure with the new HOT search logic. Fix by updating just the first matching pg_constraint tuple, rather than all of them, since there should be only one anyway. But since nobody has reproduced this failure on older versions, no back-patch for now. Report and test case by Alex Hunsaker; tablecmds.c changes by me.
* Revert accidental change to pg_config_manual.h.Robert Haas2011-10-09
| | | | | | | | | This was broken in commit 53dbc27c62d8e1b6c5253feba04a5094cb8fe046, which introduced unlogged tables. Fortunately, as debugging tools go, this one is pretty cheap, which is probably why it took nine months for someone to notice, but it's not intended to be enabled by default, so revert. Noted by Fujii Masao.
* Clean up a couple of box gist helper functions.Heikki Linnakangas2011-10-09
| | | | | | | | | | The original idea of this patch was to make box picksplit run faster, by eliminating unnecessary palloc() overhead, but that was obsoleted by the new double-sorting split algorithm that doesn't call these functions so heavily anymore. Nevertheless, the code looks better this way. Original patch by me, reviewed and tidied up after the double-sorting patch by Kevin Grittner.
* Improve index-only scans to avoid repeated access to the index page.Tom Lane2011-10-09
| | | | | | | | | | | | We copy all the matched tuples off the page during _bt_readpage, instead of expensively re-locking the page during each subsequent tuple fetch. This costs a bit more local storage, but not more than 2*BLCKSZ worth, and the reduction in LWLock traffic is certainly worth that. What's more, this lets us get rid of the API wart in the original patch that said an index AM could randomly decline to supply an index tuple despite having asserted pg_am.amcanreturn. That will be important for future improvements in the index-only-scan feature, since the executor will now be able to rely on having the index data available.
* Prevent index-only scans in stats regression test.Tom Lane2011-10-08
| | | | | | | | | This bollixes the test because it's expecting to see the idx_tup_fetch counter increase, which won't happen if heap fetches were avoided by use of an index-only scan. Per buildfarm results. While at it, let's just make sure that enable_seqscan and enable_indexscan are ON for this test ...
* Note that index-only scans can affect idx_tup_fetch.Tom Lane2011-10-08
| | | | | An index-only scan that avoids heap fetches will increment idx_tup_read but not idx_tup_fetch.
* Fix brain fade in cost estimation for index-only scans.Tom Lane2011-10-08
| | | | | visibility_fraction should not be applied to regular indexscans. Noted by Cédric Villemain.
* Don't let transform_null_equals=on affect CASE foo WHEN NULL ... constructs.Heikki Linnakangas2011-10-08
| | | | | | | | | transform_null_equals is only supposed to affect "foo = NULL" expressions given directly by the user, not the internal "foo = NULL" expression generated from CASE-WHEN. This fixes bug #6242, reported by Sergey. Backpatch to all supported branches.
* Fix typo.Heikki Linnakangas2011-10-08
|
* Add missing space.Robert Haas2011-10-07
| | | | Dickson S. Guedes