- 12 Oct, 2011 3 commits
-
-
Bruce Momjian authored
-
Tom Lane authored
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.
-
Bruce Momjian authored
Backpatch to 9.0.X and 9.1.X.
-
- 11 Oct, 2011 8 commits
-
-
Tom Lane authored
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.
-
Tom Lane authored
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.
-
Bruce Momjian authored
Andrew Dunstan
-
Bruce Momjian authored
help prevent pg_ctl from getting confused. Backpatch to 9.1.
-
Tom Lane authored
By popular demand.
-
Tom Lane authored
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).
-
Robert Haas authored
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.
-
Robert Haas authored
I broke this in commit 84e37126. Report and fix by Fujii Masao.
-
- 10 Oct, 2011 11 commits
-
-
Robert Haas authored
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.
-
Robert Haas authored
Per suggestions from Achilleas Mantzios and Greg Smith.
-
Robert Haas authored
Shigehiro Honda
-
Robert Haas authored
Fujii Masao
-
Robert Haas authored
Marti Raudsepp
-
Robert Haas authored
Per report from Thom Brown.
-
Bruce Momjian authored
than '(none)'.
-
Robert Haas authored
This appears to be another case where the relative sort order of letters vs. numbers can throw things off. Pavel Stehule
-
Bruce Momjian authored
document its use for config-only directory installs.
-
Robert Haas authored
When I consolidated two copies of the HOT-chain search logic in commit 4da99ea4, 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.
-
Robert Haas authored
This was broken in commit 53dbc27c, 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.
-
- 09 Oct, 2011 3 commits
-
-
Heikki Linnakangas authored
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.
-
Tom Lane authored
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.
-
Tom Lane authored
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 ...
-
- 08 Oct, 2011 7 commits
-
-
Tom Lane authored
An index-only scan that avoids heap fetches will increment idx_tup_read but not idx_tup_fetch.
-
Tom Lane authored
visibility_fraction should not be applied to regular indexscans. Noted by Cédric Villemain.
-
Heikki Linnakangas authored
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.
-
Heikki Linnakangas authored
-
Robert Haas authored
Dickson S. Guedes
-
Robert Haas authored
%esp is no good; must use %rsp there.
-
Tom Lane authored
When a btree index contains all columns required by the query, and the visibility map shows that all tuples on a target heap page are visible-to-all, we don't need to fetch that heap page. This patch depends on the previous patches that made the visibility map reliable. There's a fair amount left to do here, notably trying to figure out a less chintzy way of estimating the cost of an index-only scan, but the core functionality seems ready to commit. Robert Haas and Ibrar Ahmed, with some previous work by Heikki Linnakangas.
-
- 07 Oct, 2011 1 commit
-
-
Bruce Momjian authored
directory, for config-only directory installs. Only works for PG 9.2+ servers.
-
- 06 Oct, 2011 7 commits
-
-
Bruce Momjian authored
failures.
-
Bruce Momjian authored
-
Magnus Hagander authored
In oder to exit on SIGTERM when in non-walsender code, such as do_pg_stop_backup(), we need to set the interrupt variables that are used there, and not just the walsender local ones.
-
Robert Haas authored
A similar problem for pgstattuple() was fixed in April of 2010 by commit 33065ef8, but pgstatindex() seems to have been overlooked. Back-patch all the way, as with that commit, though not to 7.4 through 8.1, since those are now EOL.
-
Bruce Momjian authored
-
Bruce Momjian authored
pg_ctl use that to query the data directory for config-only installs. This fixes awkward or impossible pg_ctl operation for config-only installs.
-
Heikki Linnakangas authored
new double-sorting algorithm. The new algorithm produces better quality trees, making searches faster. Alexander Korotkov
-