# # ndb_check_blob_tables.inc - check that all blob tables use same hashmap as main table # # Usage: # let ndb_die_on_error= 1; # 1 if it should fail on hashmap mismatch # let ndb_database= ; # let ndb_table=
; # --source suite/ndb/include/ndb_check_blob_tables.inc # --perl use strict; my $die_on_error = $ENV{ndb_die_on_error}; my $db = $ENV{ndb_database} or die "Missing ndb_database in environment"; my $tbl = $ENV{ndb_table} or die "Mising ndb_table in environment"; my $cmd = "$ENV{NDB_DESC} -d$db $tbl"; my $hashmap; open MAIN, "$cmd|"; print "Table: $db.$tbl\n"; while (
) { if (/HashMap: (\S+).*/) { print; $hashmap = $1; } if (/(\w+) .* BT=(NDB.BLOB_\d+_\d+).*/) { print; my $column = $1; my $blob_table = $2; my $bt_hashmap; $blob_table =~ s/_/\"\"_/; open BLOB, "$ENV{NDB_DESC} -d$db $blob_table|" or die "FAILED: $ENV{NDB_DESC} -d$db $blob_table|"; while () { if (/HashMap: (\S+).*/) { print; $bt_hashmap = $1; } } close BLOB; if ($die_on_error and ($bt_hashmap ne $hashmap)) { die "Blob table $db.$blob_table for $db.$tbl.$column have wrong hashmap. ($bt_hashmap is not $hashmap)" } } } close MAIN; EOF let ndb_die_on_error=; let ndb_database=; let ndb_table=;