PostgreSQLにおいて大きなテーブルのカラムをNOT NULLにするとき、読み書きがブロックされないか検証するリポジトリ。
ターミナル2つ開いて
# terminal 1
$ docker-compose up
# terminal 2
$ ./loop.sh
を行った上で、さらに別ターミナルで
# terminal 3
$ psql -U postgres -p 5444 -h localhost -f sql/ununique-column.sql
$ psql -U postgres -p 5444 -h localhost -f sql/unique-column.sql
するとSELECTとUPDATEが止まる。
# terminal 3
$ psql -U postgres -p 5444 -h localhost -f sql/ununique-column.sql
$ psql -U postgres -p 5444 -h localhost -f sql/unique-column-with-constraint.sql
なら止まらない。