# # ndb_check_unique_index.inc - check that all unique index use same fragment count as main table # # Usage: # let ndb_database= ; # let ndb_table=
; # --source suite/ndb/include/ndb_check_unique_index.inc # --perl use strict; my $db = $ENV{ndb_database} or die "Missing ndb_database in environment\n"; my $tbl = $ENV{ndb_table} or die "Missing ndb_table in environment\n"; my $cmd = "$ENV{NDB_DESC} -d$db $tbl"; my $fragcnt; my %idxfragcnts; open MAIN, "$cmd|"; print "Table: $db.$tbl\n"; while (
) { if (/FragmentCount: (\S+).*/ || /PartitionCount: (\S+).*/) { # print previous tables indices fragment counts foreach my $i (sort keys %idxfragcnts) { print $i; print $idxfragcnts{$i}; } # clear current tables indices fragment counts %idxfragcnts = undef; # print current tables fragment count print; $fragcnt = $1; } if (/([^(]+unique)\S+ - UniqueHashIndex.*/) { my $row = $_; $idxfragcnts{$row} = ''; my $index = $1; open IDX, "$ENV{NDB_DESC} -d$db -t$tbl $index|" or die "FAILED: $ENV{NDB_DESC} -d$db -t$tbl $index|"; while () { if (/FragmentCount: (\S+).*/) { $idxfragcnts{$row} = $_; } } close IDX; } } # print last tables indices fragment counts foreach my $i (sort keys %idxfragcnts) { print $i; print $idxfragcnts{$i}; } close MAIN; EOF let ndb_database=; let ndb_table=;