#!/bin/bash

TABLES=500
COLUMNS=500

(
  echo "CREATE TABLE base (id int, stripe int"
  for ((i=0;i<COLUMNS;i++)) ; do echo ", foo$i text" ; done
  echo ");"
  for ((i=0;i<TABLES;i++)) ; do
    echo "CREATE TABLE derived_$i (check (stripe = $i)) INHERITS (base);"
  done
  echo "SELECT pg_sleep(5);"
  echo "EXPLAIN UPDATE base SET foo0 = 'foox' FROM (SELECT 42) AS ss WHERE id = 42 AND stripe = 42;"
  echo "EXPLAIN UPDATE base SET foo0 = 'foox' FROM (SELECT 42 UNION ALL SELECT 42) AS ss WHERE id = 42 AND stripe = 42;"
  echo "EXPLAIN UPDATE base SET foo0 = 'foox' WHERE id = 42 AND stripe = 42;"
  echo "EXPLAIN UPDATE base SET foo0 = 'foox' FROM base AS base2 WHERE base2.id = 42 and base.id = 42 AND base.stripe = 42;"
  echo "EXPLAIN UPDATE base SET foo0 = 'foox' FROM derived_0 AS x WHERE base.id = 42 AND base.stripe = 42;"
)
