#!/usr/bin/env bash
# Real demos for P079 "Every SQL Join Type in 10 Minutes". Runs on the Mac (Docker Desktop).
# One PostgreSQL 18 server (official postgres:18 image, --network none) holding Ana's tea shop (lab/schema.sql):
#   customers (4 rows), orders (5 rows: one is a guest checkout with no customer), teas (4) and sizes (3).
# psql is one real interactive session in a pty (demo_driver.py); every query and its output -> demo_output.json.
set -euo pipefail
cd "$(dirname "$0")"
P=ce-p079
cleanup() { docker rm -f $P-pg >/dev/null 2>&1 || true; }
cleanup
[ -n "${KEEP:-}" ] || trap cleanup EXIT
docker run -d --name $P-pg --hostname pg --network none -e POSTGRES_USER=ana -e POSTGRES_DB=shop \
  -e POSTGRES_PASSWORD="$(head -c 16 /dev/urandom | base64 | tr -d '/+=')" postgres:18 >/dev/null
for i in $(seq 60); do docker exec $P-pg pg_isready -q -U ana -d shop 2>/dev/null && break; sleep 1; done
sleep 2
docker exec -i $P-pg psql -q -v ON_ERROR_STOP=1 -U ana -d shop < lab/schema.sql
python3 demo_driver.py "$P"
