# Semana 14: locks, deadlocks y MVCC en PostgreSQL, con dos sesiones a la vez.
# Se usa dentro del contenedor del curso.
#
#   make          crea la base de datos chasqui_w14 con los datos de ejemplo
#   make test     la vuelve a crear y corre las pruebas (*.test.mjs)
#   make clean    borra chasqui_w14
#
# Los experimentos se corren uno por uno con, por ejemplo,
#   PGDATABASE=chasqui_w14 node deadlock.mjs
# (locks.mjs, deadlock.mjs [upgrade], mvcc.mjs versions|vacuum,
#  skew.mjs rr|serializable|rc-lock|rr-lock). locks.sql tiene las consultas
# para mirar pg_locks desde una tercera terminal de psql.

DB = chasqui_w14

.PHONY: all test clean

all:
	chasqui-load $(DB)

# Las pruebas abren varias sesiones sobre las mismas filas: se corren una
# después de otra.
test: all
	PGDATABASE=$(DB) node --test --test-concurrency=1 --test-reporter=spec

clean:
	dropdb --if-exists $(DB)
