|
29 | 29 |
|
30 | 30 | foreach my $node (@shards) |
31 | 31 | { |
32 | | - $node->safe_psql('postgres', "CREATE EXTENSION postgres_fdw"); |
33 | | - $node->safe_psql('postgres', "CREATE TABLE accounts(id integer primary key, amount integer)"); |
34 | | - $node->safe_psql('postgres', "CREATE TABLE accounts_local() inherits(accounts)"); |
35 | | - $node->safe_psql('postgres', "CREATE TABLE global_transactions(tx_time timestamp)"); |
36 | | - $node->safe_psql('postgres', "CREATE TABLE local_transactions(tx_time timestamp)"); |
| 32 | + $node->safe_psql('postgres', qq[ |
| 33 | + CREATE EXTENSION postgres_fdw; |
| 34 | + CREATE TABLE accounts(id integer primary key, amount integer); |
| 35 | + CREATE TABLE accounts_local() inherits(accounts); |
| 36 | + CREATE TABLE global_transactions(tx_time timestamp); |
| 37 | + CREATE TABLE local_transactions(tx_time timestamp); |
| 38 | + ]); |
37 | 39 |
|
38 | 40 | foreach my $neighbor (@shards) |
39 | 41 | { |
|
42 | 44 | my $port = $neighbor->port; |
43 | 45 | my $host = $neighbor->host; |
44 | 46 |
|
45 | | - $node->safe_psql('postgres', "CREATE SERVER shard_$port FOREIGN DATA WRAPPER postgres_fdw options(dbname 'postgres', host '$host', port '$port')"); |
46 | | - $node->safe_psql('postgres', "CREATE FOREIGN TABLE accounts_fdw_$port() inherits (accounts) server shard_$port options(table_name 'accounts_local')"); |
47 | | - $node->safe_psql('postgres', "CREATE USER MAPPING for stas SERVER shard_$port options (user 'stas')"); |
| 47 | + $node->safe_psql('postgres', qq[ |
| 48 | + CREATE SERVER shard_$port FOREIGN DATA WRAPPER postgres_fdw |
| 49 | + options(dbname 'postgres', host '$host', port '$port'); |
| 50 | + CREATE FOREIGN TABLE accounts_fdw_$port() inherits (accounts) |
| 51 | + server shard_$port options(table_name 'accounts_local'); |
| 52 | + CREATE USER MAPPING for stas SERVER shard_$port |
| 53 | + options (user 'stas'); |
| 54 | + ]); |
48 | 55 | } |
49 | | - |
50 | 56 | } |
51 | 57 |
|
52 | 58 | $shard1->psql('postgres', "insert into accounts_local select 2*id-1, 0 from generate_series(1, 10010) as id;"); |
|
73 | 79 | sub count_and_delete_rows |
74 | 80 | { |
75 | 81 | my ($node, $table) = @_; |
76 | | - my ($rc, $count, $err); |
77 | | - |
78 | | - ($rc, $count, $err) = $node->psql('postgres',"select count(*) from $table", |
79 | | - on_error_die => 1); |
80 | | - |
81 | | - die "count_rows: $err" if ($err ne ''); |
82 | | - |
83 | | - $node->psql('postgres',"delete from $table", on_error_die => 1); |
| 82 | + my $count; |
84 | 83 |
|
| 84 | + $count = $node->safe_psql('postgres',"select count(*) from $table"); |
| 85 | + $node->safe_psql('postgres',"delete from $table"); |
85 | 86 | diag($node->name, ": completed $count transactions"); |
86 | | - |
87 | 87 | return $count; |
88 | 88 | } |
89 | 89 |
|
|
0 commit comments