But, as follow, if txn1 not commit (just like long term readonly txn), it will block txn2's ddl job, why alt add/drop column can not concurrently with read only access?
txn1: long term txn not commit access t1. txn2 waiting txn1 to commit or abort. txn3 wait txn2... At 2022-10-11 18:05:01, "hubert depesz lubaczewski" <dep...@depesz.com> wrote: >On Tue, Oct 11, 2022 at 05:43:03PM +0800, jiye wrote: >> As we know postgres using high level lock when do alter table or other ddl >> commands, >> It will block any dml operation, while it also will block by long term dml >> operation. > >Most of the things can be already done in non-blocking (or almost >non-blocking way) if you just do it in a way that takes concurrency into >account. > >Specifically - I have no problem adding/deleting columns. > >Best regards, > >depesz