- 20 Jun, 2005 11 commits
-
-
Tom Lane authored
copying/converting the new value, which meant that it failed badly on "var := var" if var is of pass-by-reference type. Fix this and a similar hazard in exec_move_row(); not sure that the latter can manifest before 8.0, but patch it all the way back anyway. Per report from Dave Chapeskie.
-
Tom Lane authored
(a/k/a SELECT INTO). Instead, flush and fsync the whole relation before committing. We do still need the WAL log when PITR is active, however. Simon Riggs and Tom Lane.
-
Teodor Sigaev authored
-
Tom Lane authored
-
Tom Lane authored
-
Teodor Sigaev authored
2. improve vacuum for gist - use FSM - full vacuum: - reforms parent tuple if it's needed ( tuples was deleted on child page or parent tuple remains invalid after crash recovery ) - truncate index file if possible 3. fixes bugs and mistakes
-
Neil Conway authored
'register' qualifier, make some function declarations more consistent, and so on.
-
Tom Lane authored
buildfarm machines.
-
Tom Lane authored
investigate buildfarm failures.
-
Neil Conway authored
-
Tom Lane authored
-
- 19 Jun, 2005 8 commits
-
-
Neil Conway authored
-
Tom Lane authored
scankeys arrays that it needs can never have more than INDEX_MAX_KEYS entries, so it's reasonable to just allocate them as fixed-size local arrays, and save the cost of palloc/pfree. Not a huge savings, but a cycle saved is a cycle earned ...
-
Tom Lane authored
-
Tom Lane authored
includes error checking and an appropriate ereport(ERROR) message. This gets rid of rather tedious and error-prone manipulation of errno, as well as a Windows-specific bug workaround, at more than a dozen call sites. After an idea in a recent patch by Heikki Linnakangas.
-
Tom Lane authored
given reasonably short lifespans for prepared transactions, this should mean that only a small minority of state files ever need to be fsynced at all. Per discussion with Heikki Linnakangas.
-
Bruce Momjian authored
-
Bruce Momjian authored
Andreas Pflug
-
Bruce Momjian authored
Michael Fuhr
-
- 18 Jun, 2005 6 commits
-
-
Tom Lane authored
not memcpy() to copy the offered key into the hash table during HASH_ENTER. This avoids possible core dump if the passed key is located very near the end of memory. Per report from Stefan Kaltenbrunner.
-
Tom Lane authored
old suggestion by Oliver Jowett. Also, add a transaction column to the pg_locks view to show the xid of each transaction holding or awaiting locks; this allows prepared transactions to be properly associated with the locks they own. There was already a column named 'transaction', and I chose to rename it to 'transactionid' --- since this column is new in the current devel cycle there should be no backwards compatibility issue to worry about.
-
Tom Lane authored
releasing locks, so COMMIT PREPARED should too.
-
Bruce Momjian authored
-
Bruce Momjian authored
< * -Add two-phase commit [2phase] > * -Add two-phase commit
-
Bruce Momjian authored
< * Add two-phase commit [2phase] > * -Add two-phase commit [2phase]
-
- 17 Jun, 2005 6 commits
-
-
Tom Lane authored
hacking by Alvaro Herrera and Tom Lane.
-
Bruce Momjian authored
> * Auto-fill the free space map by scanning the buffer cache or by > checking pages written by the background writer < * Auto-fill the free space map by scanning the buffer cache or by < checking pages written by the background writer
-
Bruce Momjian authored
* Auto-fill the free space map by scanning the buffer cache or by checking pages written by the background writer
-
Bruce Momjian authored
Kris Jurka
-
Bruce Momjian authored
-
Bruce Momjian authored
> > * Create a bitmap of pages that need vacuuming > > Instead of sequentially scanning the entire table, have the background > writer or some other process record pages that have expired rows, then > VACUUM can look at just those pages rather than the entire table. In > the event of a system crash, the bitmap would probably be invalidated.
-
- 16 Jun, 2005 3 commits
-
-
Bruce Momjian authored
-
Bruce Momjian authored
where we need fsync().
-
Bruce Momjian authored
-
- 15 Jun, 2005 6 commits
-
-
Bruce Momjian authored
-
Bruce Momjian authored
-
Tom Lane authored
shows that adding a circular shift between words greatly improves the distribution of hash outputs.
-
Bruce Momjian authored
Cosimo Streppone
-
Bruce Momjian authored
-
Neil Conway authored
work if either of the join relations are empty. The logic is: (1) if the inner relation's startup cost is less than the outer relation's startup cost and this is not an outer join, read a single tuple from the inner relation via ExecHash() - if NULL, we're done (2) read a single tuple from the outer relation - if NULL, we're done (3) build the hash table on the inner relation - if hash table is empty and this is not an outer join, we're done (4) otherwise, do hash join as usual The implementation uses the new MultiExecProcNode API, per a suggestion from Tom: invoking ExecHash() now produces the first tuple from the Hash node's child node, whereas MultiExecHash() builds the hash table. I had to put in a bit of a kludge to get the row count returned for EXPLAIN ANALYZE to be correct: since ExecHash() is invoked to return a tuple, and then MultiExecHash() is invoked, we would return one too many tuples to EXPLAIN ANALYZE. I hacked around this by just manually detecting this situation and subtracting 1 from the EXPLAIN ANALYZE row count.
-