set -ex
+rhost=osstest.test-lab
+cutoff=50000
+
+case "$#.$1" in
+0.)
+
+ begin=$(
+ ssh $rhost "
+ psql -h db -d osstestdb -q -Ptuples_only=true -c '
+ SELECT flight FROM flights
+ WHERE flight < $cutoff
+ ORDER BY flight DESC
+ LIMIT 1
+ '
+ "
+ )
+ begin=$(( begin - 2000 ))
+ ;;
+[0-9]*)
+ begin=$1
+ shift
+ ;;
+-*|*)
+ echo >&2 'bad usage'
+ exit 1
+ ;;
+esac
+
of=cam101-history-load
exec 3>$of
tables='flights flights_harness_touched jobs runvars steps'
+cond="flight >= $begin AND flight < $cutoff"
+
df=cam101-history-deletes
exec 4>$df
for t in $tables
do
- echo >&4 "DELETE FROM $t WHERE flight < 50000;"
+ echo >&4 "DELETE FROM $t WHERE $cond;"
done
tac $df >&3
+copyhow="CSV HEADER NULL e'\\\\n'"
+
for t in $tables;
do
- tf=cam101-history-$t.tmp
- pg_dump \
- -a -b -F plain -O \
- --table=$t \
- --no-security-labels \
- --no-tablespaces \
- --serializable-deferrable \
- -f $tf -h osstestdb.db.cam.xci-test.com osstestdb
- sed -e 's/^SELECT pg_catalog\.setval/-- &/g' <$tf >&3
+ echo >&3 \
+ "\\COPY $t FROM STDIN $copyhow"
+
+ psql >&3 -q -h db -d osstestdb -c \
+ "\\COPY (SELECT * FROM $t WHERE $cond) TO STDOUT $copyhow"
+
+ echo >&3 \
+ "\\."
done
echo >&3 "COMMIT;"
$hide ||
m/^\-\-/ ||
!m/\S/;
- $hide = 1 if m/ FROM stdin\;$/;
+ $hide = 1 if m/^\\COPY/;
$hide = 0 if m/^\\\./;
' $of
-rsync -vP $of osstest.test-lab:.
+rsync -vP $of $rhost:.
-ssh osstest.test-lab psql -h db -d osstestdb -f $of
+ssh $rhost psql -eE -h db -d osstestdb -f $of
echo ok.