-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsqlall
More file actions
71 lines (55 loc) · 1.76 KB
/
sqlall
File metadata and controls
71 lines (55 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/bin/sh
set -e
sql="$1"
here="$(dirname "${BASH_SOURCE[0]}")"
start="$(date +%s)"
export PGCLIENTENCODING=unicode
export LC_ALL=C
export LC_COLLATE=C
export LC_CTYPE=C
export LC_NUMERIC=C
export LC_TIME=C
export LC_MESSAGES=C
RELS="$(for v in /usr/local/oldpgsql/*/bin/initdb ; do echo "$v" | sed 's,.*/[0-9]*-[0-9]*-[0-9]*-\([^/]*\)/bin/initdb,\1,' ; done | sort -R)"
NRELS="$(for v in $RELS; do echo "$v" ; done | wc -l)"
N=0
for ver in $RELS ; do
d="$(echo /usr/local/oldpgsql/*-$ver)"
rel="$(basename $d)"
now="$(date +%s)"
if [[ $N > 0 ]]; then
average=$(( ( $now - $start ) / $N ))
remaining=$(( ( $NRELS - $N ) * $average ))
eta=$(( $now + $remaining ))
remaining_str="$( TZ=GMT LC_ALL=C date +%Hh%MM -d @$remaining )"
eta_str="$( LC_ALL=C date -d @$eta )"
fi
N=$(( N + 1 ))
TESTDIR="/var/tmp/oldpgsql"
db="$TESTDIR/d-$rel"
bin="$d/bin"
lib="$d/lib"
log=sqlall.log
echo $rel
trap "$bin/pg_ctl -D $db stop" EXIT
$bin/pg_ctl -D $db -l $log -o "$pgoptions" start || PATH=$bin:$PATH LD_LIBRARY_PATH=$lib $bin/postmaster -D $db $pgoptions > $log 2>&1 &
echo -n "Waiting for $rel to start up..."
for i in `seq 1 300` ; do
sleep 1
PATH=$bin:$PATH LD_LIBRARY_PATH=$lib $bin/psql -o /dev/null -X template1 -c 'select 1' 2>/dev/null && break
echo -n .
done
if PATH=$bin:$PATH LD_LIBRARY_PATH=$lib $bin/psql -o /dev/null -X template1 -c 'select 1' ; then
echo done
else
trap - EXIT
$bin/pg_ctl -D $db stop -m fast || echo pg_ctl exited with status $?
continue
fi
PATH=$bin:$PATH LD_LIBRARY_PATH=$lib $bin/psql -X -c "$sql"
trap - EXIT
export PGCTLTIMEOUT=300
while [[ -e /tmp/.s.PGSQL.5432 ]] ; do
$bin/pg_ctl -D $db stop -m fast || echo pg_ctl exited with status $? retrying
done
done