/[rserv]/bin/MasterAddTable
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /bin/MasterAddTable

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.6 by dpavlin, Wed Oct 29 18:00:18 2003 UTC revision 1.7 by dpavlin, Sun Nov 2 10:21:45 2003 UTC
# Line 38  my $dbname = $ARGV[0]; Line 38  my $dbname = $ARGV[0];
38  my $table = $ARGV[1];  my $table = $ARGV[1];
39  my $keyname = $ARGV[2];  my $keyname = $ARGV[2];
40    
41  my $minfo = "dbname=$dbname";  my $minfo = MkInfo($dbname,$masterhost,$masterport,$masteruser,$masterpassword);
 $minfo = "$minfo host=$masterhost" if (defined($masterhost));  
 $minfo = "$minfo port=$masterport" if (defined($masterport));  
 $minfo = "$minfo user=$masteruser" if (defined($masteruser));  
 $minfo = "$minfo password=$masterpassword" if (defined($masterpassword));  
42    
43  print STDERR "master server nr: $mserver\n" if ($debug);  print STDERR "master server nr: $mserver\n" if ($debug);
44    
45  my $conn = Pg::connectdb($minfo);  my $mconn = Pg::connectdb($minfo);
46  if ($conn->status != PGRES_CONNECTION_OK) {  if ($mconn->status != PGRES_CONNECTION_OK) {
47      print STDERR "Failed opening $minfo\n";      print STDERR "Failed opening $minfo\n";
48      exit 1;      exit 1;
49  }  }
50    
51  $result = $conn->exec("BEGIN");  $result = $mconn->exec("BEGIN");
52  die $conn->errorMessage if $result->resultStatus ne PGRES_COMMAND_OK;  die $mconn->errorMessage if $result->resultStatus ne PGRES_COMMAND_OK;
53    
54  $result = $conn->exec("select pgc.oid, pga.attnum from pg_class pgc" .  $result = $mconn->exec("select pgc.oid, pga.attnum from pg_class pgc" .
55                        ", pg_attribute pga where pgc.relname = '$table'" .                        ", pg_attribute pga where pgc.relname = '$table'" .
56                        " and pgc.oid = pga.attrelid" .                        " and pgc.oid = pga.attrelid" .
57                        " and pga.attname = '$keyname'");                        " and pga.attname = '$keyname'");
58  die $conn->errorMessage if $result->resultStatus ne PGRES_TUPLES_OK;  die $mconn->errorMessage if $result->resultStatus ne PGRES_TUPLES_OK;
59    
60  my @row = $result->fetchrow;  my @row = $result->fetchrow;
61  die "Can't find key '$keyname' for table '$table' in database '$dbname'\n" if ! defined $row[0] || ! defined $row[1];  die "Can't find key '$keyname' for table '$table' in database '$dbname'\n" if ! defined $row[0] || ! defined $row[1];
62    
63  $result = $conn->exec("create trigger _RSERV_TRIGGER_T_ after" .  $result = $mconn->exec("create trigger _RSERV_TRIGGER_T_ after" .
64                        " insert or update or delete on \"$table\"" .                        " insert or update or delete on \"$table\"" .
65                        " for each row execute procedure" .                        " for each row execute procedure" .
66                        " _rserv_log_('$row[1]',$mserver)");                        " _rserv_log_('$row[1]',$mserver)");
67  die $conn->errorMessage if $result->resultStatus ne PGRES_COMMAND_OK;  die $mconn->errorMessage if $result->resultStatus ne PGRES_COMMAND_OK;
68    
69  $result = $conn->exec("insert into _RSERV_TABLES_ (tname, cname, reloid, key)" .  $result = $mconn->exec("insert into _RSERV_TABLES_ (tname, cname, reloid, key)" .
70                        " values ('$table', '$keyname', $row[0], $row[1])");                        " values ('$table', '$keyname', $row[0], $row[1])");
71  die $conn->errorMessage if $result->resultStatus ne PGRES_COMMAND_OK;  die $mconn->errorMessage if $result->resultStatus ne PGRES_COMMAND_OK;
72    
73  $result = $conn->exec("COMMIT");  $result = $mconn->exec("COMMIT");
74  die $conn->errorMessage if $result->resultStatus ne PGRES_COMMAND_OK;  die $mconn->errorMessage if $result->resultStatus ne PGRES_COMMAND_OK;
75    
76  exit(0);  exit(0);

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

  ViewVC Help
Powered by ViewVC 1.1.26