postgresql/src/include/storage
Amit Kapila 15ef6ff4b9 Assert that we don't acquire a heavyweight lock on another object after
relation extension lock.

The only exception to the rule is that we can try to acquire the same
relation extension lock more than once.  This is allowed as we are not
creating any new lock for this case.  This restriction implies that the
relation extension lock won't ever participate in the deadlock cycle
because we can never wait for any other heavyweight lock after acquiring
this lock.

Such a restriction is okay for relation extension locks as unlike other
heavyweight locks these are not held till the transaction end.  These are
taken for a short duration to extend a particular relation and then
released.

Author: Dilip Kumar, with few changes by Amit Kapila
Reviewed-by: Amit Kapila, Kuntal Ghosh and Sawada Masahiko
Discussion: https://postgr.es/m/CAD21AoCmT3cFQUN4aVvzy5chw7DuzXrJCbrjTU05B+Ss=Gn1LA@mail.gmail.com
2020-03-18 07:20:17 +05:30
..
.gitignore When trace_lwlocks is used, identify individual lwlocks by name. 2015-09-11 14:01:39 -04:00
backendid.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
barrier.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
block.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
buf.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
buf_internals.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
buffile.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
bufmgr.h Introduce a maintenance_io_concurrency setting. 2020-03-16 17:14:26 +13:00
bufpage.h Add declaration-level assertions for compile-time checks 2020-02-03 14:48:42 +09:00
checksum.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
checksum_impl.h Fix page-level checksum calculation in checksum_impl.h 2020-03-06 08:15:29 +09:00
condition_variable.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
copydir.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
dsm.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
dsm_impl.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
fd.h Remove HAVE_WORKING_LINK 2020-03-11 11:23:04 +01:00
freespace.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
fsm_internals.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
indexfsm.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
ipc.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
item.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
itemid.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
itemptr.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
large_object.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
latch.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
lmgr.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
lock.h Assert that we don't acquire a heavyweight lock on another object after 2020-03-18 07:20:17 +05:30
lockdefs.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
lwlock.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
md.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
off.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
pg_sema.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
pg_shmem.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
pmsignal.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
predicate.h Remove dependency on HeapTuple from predicate locking functions. 2020-01-28 13:13:04 +13:00
predicate_internals.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
proc.h Add GUC variables for stat tracking and timeout as PGDLLIMPORT 2020-01-21 13:46:39 +09:00
procarray.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
proclist.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
proclist_types.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
procsignal.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
reinit.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
relfilenode.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
s_lock.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
sharedfileset.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
shm_mq.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
shm_toc.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
shmem.h Add pg_shmem_allocations view. 2020-01-09 10:59:07 -05:00
sinval.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
sinvaladt.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
smgr.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
spin.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
standby.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
standbydefs.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
sync.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00