Laurenz Albe <laurenz.albe@cybertec.at> writes:
> On Thu, 2025-05-15 at 16:27 +0800, James Pang wrote:
>> why inserts into partition table cause "relation lock" ?
> Something else does; use the pg_blocking_pids() function with the process ID of
> a blocked backend to find out who is holding the lock.
More specifically: the inserts are only trying to get a shared lock.
If they are blocked, it's because some other operation is already
holding an exclusive lock on the table and is not letting go.
Look for uncommitted DDL changes.
More details about that at [1].
regards, tom lane
[1] https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-TABLES