/[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.1 by dpavlin, Wed Dec 20 17:22:35 2000 UTC revision 1.2 by dpavlin, Tue Aug 5 09:52:36 2003 UTC
# Line 1  Line 1 
1  # -*- perl -*-  #!/usr/bin/perl
2  # MasterAddTable  # MasterAddTable
3  # Vadim Mikheev, (c) 2000, PostgreSQL Inc.  # Vadim Mikheev, (c) 2000, PostgreSQL Inc.
4    
# Line 32  $minfo = "$minfo user=$opt_user" if (def Line 32  $minfo = "$minfo user=$opt_user" if (def
32  $minfo = "$minfo password=$opt_password" if (defined($opt_password));  $minfo = "$minfo password=$opt_password" if (defined($opt_password));
33    
34  my $conn = Pg::connectdb($minfo);  my $conn = Pg::connectdb($minfo);
35    if ($conn->status != PGRES_CONNECTION_OK) {
36        print STDERR "Failed opening $minfo\n";
37        exit 1;
38    }
39    
40  my $result = $conn->exec("BEGIN");  my $result = $conn->exec("BEGIN");
41  die $conn->errorMessage if $result->resultStatus ne PGRES_COMMAND_OK;  die $conn->errorMessage if $result->resultStatus ne PGRES_COMMAND_OK;
42    
43  $result = $conn->exec("select pgc.oid, pga.attnum from pg_class pgc" .  $result = $conn->exec("select pgc.oid, pga.attnum from pg_class pgc" .
44                                            ", pg_attribute pga where pgc.relname = '$table'" .                        ", pg_attribute pga where pgc.relname = '$table'" .
45                                            " and pgc.oid = pga.attrelid" .                        " and pgc.oid = pga.attrelid" .
46                                            " and pga.attname = '$keyname'");                        " and pga.attname = '$keyname'");
47  die $conn->errorMessage if $result->resultStatus ne PGRES_TUPLES_OK;  die $conn->errorMessage if $result->resultStatus ne PGRES_TUPLES_OK;
48    
49  my @row = $result->fetchrow;  my @row = $result->fetchrow;
50  die "Can't find table/key\n" if ! defined $row[0] || ! defined $row[1];  die "Can't find table/key\n" if ! defined $row[0] || ! defined $row[1];
51    
52  $result = $conn->exec("create trigger _RSERV_TRIGGER_T_ after" .  $result = $conn->exec("create trigger _RSERV_TRIGGER_T_ after" .
53                                            " insert or update or delete on $table" .                        " insert or update or delete on \"$table\"" .
54                                            " for each row execute procedure" .                        " for each row execute procedure" .
55                                            " _rserv_log_('$row[1]')");                        " _rserv_log_('$row[1]')");
56  die $conn->errorMessage if $result->resultStatus ne PGRES_COMMAND_OK;  die $conn->errorMessage if $result->resultStatus ne PGRES_COMMAND_OK;
57    
58  $result = $conn->exec("insert into _RSERV_TABLES_ (tname, cname, reloid, key)" .  $result = $conn->exec("insert into _RSERV_TABLES_ (tname, cname, reloid, key)" .
59                                            " values ('$table', '$keyname', $row[0], $row[1])");                        " values ('$table', '$keyname', $row[0], $row[1])");
60  die $conn->errorMessage if $result->resultStatus ne PGRES_COMMAND_OK;  die $conn->errorMessage if $result->resultStatus ne PGRES_COMMAND_OK;
61    
62  $result = $conn->exec("COMMIT");  $result = $conn->exec("COMMIT");

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

  ViewVC Help
Powered by ViewVC 1.1.26