- 26 11月, 2005 2 次提交
-
-
由 Tom Lane 提交于
when we first read the page, rather than checking them one at a time. This allows us to take and release the buffer content lock just once per page, instead of once per tuple. Since it's a shared lock the contention penalty for holding the lock longer shouldn't be too bad. We can safely do this only when using an MVCC snapshot; else the assumption that visibility won't change over time is uncool. Therefore there are now two code paths depending on the snapshot type. I also made the same change in nodeBitmapHeapscan.c, where it can be done always because we only support MVCC snapshots for bitmap scans anyway. Also make some incidental cleanups in the APIs of these functions. Per a suggestion from Qingqing Zhou.
-
由 Tom Lane 提交于
qualification when the underlying operator is indexable and useOr is true. That is, indexkey op ANY (ARRAY[...]) is effectively translated into an OR combination of one indexscan for each array element. This only works for bitmap index scans, of course, since regular indexscans no longer support OR'ing of scans. There are still some loose ends to clean up before changing 'x IN (list)' to translate as a ScalarArrayOpExpr; for instance predtest.c ought to be taught about it. But this gets the basic functionality in place.
-
- 25 11月, 2005 1 次提交
-
-
由 Tom Lane 提交于
a TupleTableSlot: instead of calling ExecClearTuple, inline the needed operations, so that we can avoid redundant steps. In particular, when the old and new tuples are both on the same disk page, avoid releasing and re-acquiring the buffer pin --- this saves work in both the bufmgr and ResourceOwner modules. To make this improvement actually useful, partially revert a change I made on 2004-04-21 that caused SeqNext et al to call ExecClearTuple before ExecStoreTuple. The motivation for that, to avoid grabbing the BufMgrLock separately for releasing the old buffer and grabbing the new one, no longer applies. My profiling says that this saves about 5% of the CPU time for an all-in-memory seqscan.
-
- 24 11月, 2005 4 次提交
-
-
由 Bruce Momjian 提交于
-
由 Bruce Momjian 提交于
< > o Add -f to pg_dumpall
-
由 Tom Lane 提交于
generate their output tuple descriptors from their target lists (ie, using ExecAssignResultTypeFromTL()). We long ago fixed things so that all node types have minimally valid tlists, so there's no longer any good reason to have two different ways of doing it. This change is needed to fix bug reported by Hayden James: the fix of 2005-11-03 to emit the correct column names after optimizing away a SubqueryScan node didn't work if the new top-level plan node used ExecAssignResultTypeFromOuterPlan to generate its tupdesc, since the next plan node down won't have the correct column labels.
-
由 Tom Lane 提交于
a SubLink expression into a rule query. Pre-8.1 we essentially did this unconditionally; 8.1 tries to do it only when needed, but was missing a couple of cases. Per report from Kyle Bateman. Add some regression test cases covering this area.
-
- 23 11月, 2005 7 次提交
-
-
由 Tatsuo Ishii 提交于
per David Fetter
-
由 Bruce Momjian 提交于
Remove pgbench comment that was causing problems.
-
由 Bruce Momjian 提交于
> o -Allow NULLs in arrays
-
由 Bruce Momjian 提交于
> > * Add estimated_count(*) to return an estimate of COUNT(*) > > This would use the planner ANALYZE statistatics to return an estimated > count.
-
由 Tom Lane 提交于
protected comment with dashes the first time round.)
-
由 Bruce Momjian 提交于
comment line where output as too long, and update typedefs for /lib directory. Also fix case where identifiers were used as variable names in the backend, but as typedefs in ecpg (favor the backend for indenting). Backpatch to 8.1.X.
-
由 Bruce Momjian 提交于
-
- 22 11月, 2005 13 次提交
-
-
由 Bruce Momjian 提交于
-
由 Andrew Dunstan 提交于
DROP DATABASE IF EXISTS variant
-
由 Bruce Momjian 提交于
-
由 Bruce Momjian 提交于
-
由 Bruce Momjian 提交于
-
由 Bruce Momjian 提交于
-
由 Bruce Momjian 提交于
-
由 Teodor Sigaev 提交于
-
由 Bruce Momjian 提交于
-
由 Bruce Momjian 提交于
-
由 Bruce Momjian 提交于
-
由 Bruce Momjian 提交于
-
由 Teodor Sigaev 提交于
-
- 21 11月, 2005 5 次提交
-
-
由 Alvaro Herrera 提交于
process of dropping roles by dropping objects owned by them and privileges granted to them, or giving the owned objects to someone else, through the use of the data stored in the new pg_shdepend catalog. Some refactoring of the GRANT/REVOKE code was needed, as well as ALTER OWNER code. Further cleanup of code duplication in the GRANT code seems necessary. Implemented by me after an idea from Tom Lane, who also provided various kind of implementation advice. Regression tests pass. Some tests for the new functionality are also added, as well as rudimentary documentation.
-
由 Teodor Sigaev 提交于
- supports multibyte encodings - more strict rules for lexemes - flex isn't used Add: - tsquery plainto_tsquery(text) Function makes tsquery from plain text. - &&, ||, !! operation for tsquery for combining tsquery from it's parts: 'foo & bar' || 'asd' => 'foo & bar | asd'
-
由 Tom Lane 提交于
-
由 Tom Lane 提交于
the convenience of tuptoaster.c and is no longer needed, so may as well get rid of some small amount of overhead.
-
由 Tom Lane 提交于
tuple in-place, but instead passes back an all-new tuple structure if any changes are needed. This is a much cleaner and more robust solution for the bug discovered by Alexey Beschiokov; accordingly, revert the quick hack I installed yesterday. With this change, HeapTupleData.t_datamcxt is no longer needed; will remove it in a separate commit in HEAD only.
-
- 20 11月, 2005 3 次提交
-
-
由 Tom Lane 提交于
doing heap_insert or heap_update, wipe out any extracted fields in the TupleTableSlot containing the tuple, because they might not be valid anymore if tuptoaster.c changed the tuple. Safe because slot must be in the materialized state, but mighty ugly --- find a better answer!
-
由 Tom Lane 提交于
not only the array contents, before claiming two arrays are equal. Per recent discussion.
-
由 Andrew Dunstan 提交于
DROP objecttype IF EXISTS for the following objects: table view index sequence schema type domain conversion
-
- 19 11月, 2005 5 次提交
-
-
由 Tom Lane 提交于
more tests than strictly necessary, but did not feel like tracing call paths in detail ...
-
由 Tom Lane 提交于
be useful to actually do something with nulls, rather than reject them, but I'll just close the hole for now.
-
由 Tom Lane 提交于
the array (for array_push) or higher-dimensional array (for array_cat) rather than decrementing it as before. This avoids generating lower bounds other than one for any array operation within the SQL spec. Per recent discussion. Interestingly, this seems to have been the original behavior, because while updating the docs I noticed that a large fraction of relevant examples were *wrong* for the old behavior and are now right. Is it worth correcting this in the back-branch docs?
-
由 Tom Lane 提交于
recursed twice on its first argument, leading to exponential time spent on a deep nest of COALESCEs ... such as a deeply nested FULL JOIN would produce. Per report from Matt Carter.
-
由 Andrew Dunstan 提交于
translate undef to NULL for result arrayref, now that we allow NULLs in arrays. Update plperl regression test accordingly.
-