]> granicus.if.org Git - postgresql/blob - contrib/rserv/MasterSync.in
Avoid PQisBusy/PQconsumeInput busy loop in case of PQisBusy returning
[postgresql] / contrib / rserv / MasterSync.in
1 # -*- perl -*-
2 # MasterSync
3 # Vadim Mikheev, (c) 2000, PostgreSQL Inc.
4
5 eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
6     & eval 'exec perl -S $0 $argv:q'
7     if 0;
8
9 use lib "@LIBDIR@";
10
11 use Getopt::Long;
12 use RServ;
13
14 $| = 1;
15
16 $result = GetOptions("debug!", "verbose!", "quiet!", "help",
17                      "host=s", "user=s", "password=s");
18
19 my $debug = $opt_debug || 0;
20 my $verbose = $opt_verbose || 0;
21 my $quiet = $opt_quiet || 0;
22
23 if (defined($opt_help) || (scalar(@ARGV) < 2) || ($ARGV[1] !~ /^\d+$/)) {
24     print "Usage: $0 --host=name --user=name --password=string masterdb syncid\n";
25     exit ((scalar(@ARGV) < 2)? 1:0);
26 }
27
28 my $master = $ARGV[0] || "master";
29 my $server = 0;
30 my $syncid = $ARGV[1] || die "SyncID not specified";
31
32 my $minfo = "dbname=$master";
33 $minfo = "$minfo host=$opt_host" if (defined($opt_host));
34 $minfo = "$minfo user=$opt_user" if (defined($opt_user));
35 $minfo = "$minfo password=$opt_password" if (defined($opt_password));
36
37 my $conn = Pg::connectdb($minfo);
38
39 $RServ::quiet = !$verbose;
40
41 $res = SyncSyncID($conn, $server, $syncid);
42
43 if ($res == 0)
44 {
45     printf STDERR "SyncID updated on $master\n" if ($verbose);
46     exit(0);
47 }
48
49 printf STDERR "ERROR\n" unless ($quiet);
50 exit(1);