#! /bin/sh set -e n=831 t=wide_upsert psql -c "DROP TABLE IF EXISTS $t" cols='id int' vals='0' sets='id=0' for a in `seq -w 0 $n` do c="c$a int" cols="$cols, c$a int" vals="$vals, \$1" sets="$sets, c$a=\$1" done echo $cols psql -c "CREATE TABLE $t ($cols, PRIMARY KEY (id))" set -x psql -c "PREPARE x AS INSERT INTO $t VALUES ($vals) ON CONFLICT (id) DO UPDATE SET $sets; EXECUTE x(0)"