- 05 11月, 2005 1 次提交
-
-
由 Tom Lane 提交于
to assume that the string pointer passed to set_ps_display is good forever. There's no need to anyway since ps_status.c itself saves the string, and we already had an API (get_ps_display) to return it. I believe this explains Jim Nasby's report of intermittent crashes in elog.c when %i format code is in use in log_line_prefix. While at it, repair a previously unnoticed problem: on some platforms such as Darwin, the string returned by get_ps_display was blank-padded to the maximum length, meaning that lock.c's attempt to append " waiting" to it never worked.
-
- 29 10月, 2005 1 次提交
-
-
由 Peter Eisentraut 提交于
-
- 15 10月, 2005 1 次提交
-
-
由 Bruce Momjian 提交于
-
- 13 10月, 2005 2 次提交
-
-
由 Neil Conway 提交于
-
由 Tom Lane 提交于
protected data structures and not using a volatile pointer for same.
-
- 12 10月, 2005 1 次提交
-
-
由 Tom Lane 提交于
whether we seem to be running in a uniprocessor or multiprocessor. The adjustment rules could probably still use further tweaking, but I'm convinced this should be a win overall.
-
- 08 10月, 2005 2 次提交
- 20 9月, 2005 1 次提交
-
-
由 Bruce Momjian 提交于
-
- 16 9月, 2005 1 次提交
-
-
由 Tom Lane 提交于
bytes. This shouldn't make any difference on x86 machines, where the size happened to be 16 bytes anyway, but on 64-bit machines and machines with slock_t int or wider, it will speed array indexing and hopefully reduce SMP cache contention effects. Per recent experimentation.
-
- 26 8月, 2005 2 次提交
- 21 8月, 2005 1 次提交
-
-
由 Tom Lane 提交于
to 'Size' (that is, size_t), and install overflow detection checks in it. This allows us to remove the former arbitrary restrictions on NBuffers etc. It won't make any difference in a 32-bit machine, but in a 64-bit machine you could theoretically have terabytes of shared buffers. (How efficiently we could manage 'em remains to be seen.) Similarly, num_temp_buffers, work_mem, and maintenance_work_mem can be set above 2Gb on a 64-bit machine. Original patch from Koichi Suzuki, additional work by moi.
-
- 08 8月, 2005 1 次提交
-
-
由 Tom Lane 提交于
exit, instead of trying to take shortcuts. Introduce some additional shutdown callback routines to eliminate kluges like having ProcKill be responsible for shutting down the buffer manager. Ensure that the order of operations during shutdown is predictable and what you would expect given the module layering.
-
- 02 8月, 2005 1 次提交
-
-
由 Tom Lane 提交于
Original patch by Hans-Juergen Schoenig, revisions by Karel Zak and Tom Lane.
-
- 01 8月, 2005 1 次提交
-
-
由 Tom Lane 提交于
This patch also includes preliminary update of pg_dumpall for roles. Petr Jelinek, with review by Bruce Momjian and Tom Lane.
-
- 30 7月, 2005 1 次提交
-
-
由 Bruce Momjian 提交于
-
- 18 6月, 2005 1 次提交
-
-
由 Tom Lane 提交于
hacking by Alvaro Herrera and Tom Lane.
-
- 15 6月, 2005 1 次提交
-
-
由 Tom Lane 提交于
it is sufficient to track whether a backend holds a lock or not, and store information about transaction vs. session locks only in the inside-the-backend LocalLockTable. Since there can now be but one PROCLOCK per lock per backend, LockCountMyLocks() is no longer needed, thus eliminating some O(N^2) behavior when a backend holds many locks. Also simplify the LockAcquire/LockRelease API by passing just a 'sessionLock' boolean instead of a transaction ID. The previous API was designed with the idea that per-transaction lock holding would be important for subtransactions, but now that we have subtransactions we know that this is unwanted. While at it, add an 'isTempObject' parameter to LockAcquire to indicate whether the lock is being taken on a temp table. This is not used just yet, but will be needed shortly for two-phase commit.
-
- 30 5月, 2005 1 次提交
-
-
由 Tom Lane 提交于
are now reported via elog, eliminating the need to test the result code at most call sites. Make it possible for the caller to distinguish a freshly acquired lock from one already held in the current transaction. Use that capability to avoid redundant AcceptInvalidationMessages() calls in LockRelation().
-
- 29 5月, 2005 1 次提交
-
-
由 Tom Lane 提交于
spotted by Qingqing Zhou. The HASH_ENTER action now automatically fails with elog(ERROR) on out-of-memory --- which incidentally lets us eliminate duplicate error checks in quite a bunch of places. If you really need the old return-NULL-on-out-of-memory behavior, you can ask for HASH_ENTER_NULL. But there is now an Assert in that path checking that you aren't hoping to get that behavior in a palloc-based hash table. Along the way, remove the old HASH_FIND_SAVE/HASH_REMOVE_SAVED actions, which were not being used anywhere anymore, and were surely too ugly and unsafe to want to see revived again.
-
- 20 5月, 2005 2 次提交
-
-
由 Tom Lane 提交于
Also, remove the rather useless return value of LockReleaseAll. Change response to detection of corruption in the shared lock tables to PANIC, since that is the only way of cleaning up fully. Originally an idea of Heikki Linnakangas, variously hacked on by Alvaro Herrera and Tom Lane.
-
由 Tom Lane 提交于
communication structure, and make it its own module with its own lock. This should reduce contention at least a little, and it definitely makes the code seem cleaner. Per my recent proposal.
-
- 11 5月, 2005 1 次提交
-
-
由 Neil Conway 提交于
memset() or MemSet() to a char *. For one, memset()'s first argument is a void *, and further void * can be implicitly coerced to/from any other pointer type.
-
- 01 5月, 2005 1 次提交
-
-
由 Tom Lane 提交于
is contention for a tuple-level lock. This solves the problem of a would-be exclusive locker being starved out by an indefinite succession of share-lockers. Per recent discussion with Alvaro.
-
- 30 4月, 2005 1 次提交
-
-
由 Tom Lane 提交于
Essentially, we shoehorn in a lockable-object-type field by taking a byte away from the lockmethodid, which can surely fit in one byte instead of two. This allows less artificial definitions of all the other fields of LOCKTAG; we can get rid of the special pg_xactlock pseudo-relation, and also support locks on individual tuples and general database objects (including shared objects). None of those possibilities are actually exploited just yet, however. I removed pg_xactlock from pg_class, but did not force initdb for that change. At this point, relkind 's' (SPECIAL) is unused and could be removed entirely.
-
- 29 4月, 2005 1 次提交
-
-
由 Tom Lane 提交于
to eliminate unnecessary deadlocks. This commit adds SELECT ... FOR SHARE paralleling SELECT ... FOR UPDATE. The implementation uses a new SLRU data structure (managed much like pg_subtrans) to represent multiple- transaction-ID sets. When more than one transaction is holding a shared lock on a particular row, we create a MultiXactId representing that set of transactions and store its ID in the row's XMAX. This scheme allows an effectively unlimited number of row locks, just as we did before, while not costing any extra overhead except when a shared lock actually has to be shared. Still TODO: use the regular lock manager to control the grant order when multiple backends are waiting for a row lock. Alvaro Herrera and Tom Lane.
-
- 15 4月, 2005 1 次提交
-
-
由 Neil Conway 提交于
-
- 14 4月, 2005 1 次提交
-
-
由 Tom Lane 提交于
avoid encroaching on the 'user' range of OIDs by allowing automatic OID assignment to use values below 16k until we reach normal operation. initdb not forced since this doesn't make any incompatible change; however a lot of stuff will have different OIDs after your next initdb.
-
- 08 4月, 2005 2 次提交
- 11 3月, 2005 1 次提交
-
-
由 Neil Conway 提交于
-
- 02 3月, 2005 1 次提交
-
-
由 Tom Lane 提交于
no held locks. This maintains the invariant that proclocks are present only for procs that are holding or awaiting a lock; when this is not true, LockRelease will fail. Per report from Stephen Clouse.
-
- 22 2月, 2005 1 次提交
-
-
由 Bruce Momjian 提交于
macros around strings that were missing them.
-
- 04 2月, 2005 1 次提交
-
-
由 Neil Conway 提交于
from LockRelease() and LockReleaseAll() into it. From Heikki Linnakangas.
-
- 01 1月, 2005 1 次提交
-
-
由 PostgreSQL Daemon 提交于
Tag appropriate files for rc3 Also performed an initial run through of upgrading our Copyright date to extend to 2005 ... first run here was very simple ... change everything where: grep 1996-2004 && the word 'Copyright' ... scanned through the generated list with 'less' first, and after, to make sure that I only picked up the right entries ...
-
- 30 12月, 2004 1 次提交
-
-
由 Tom Lane 提交于
-
- 19 12月, 2004 1 次提交
-
-
由 Bruce Momjian 提交于
R?mi Zara
-
- 21 11月, 2004 1 次提交
-
-
由 Tom Lane 提交于
no need for it to be nearly as big as the global hash table, and since it's not in shared memory it can grow if it does need to be bigger. By reducing the size, we speed up hash_seq_search(), which saves a significant fraction of subtransaction entry/exit overhead.
-
- 25 10月, 2004 1 次提交
-
-
由 Neil Conway 提交于
returning a NULL pointer (some callers remembered to check the return value, but some did not -- it is safer to just bail out). Also, cleanup pgstat.c to use elog(ERROR) rather than elog(LOG) followed by exit().
-