diff options
author | Monty <monty@mariadb.org> | 2023-02-10 12:50:44 +0200 |
---|---|---|
committer | Sergei Petrunia <sergey@mariadb.com> | 2023-02-15 15:50:21 +0300 |
commit | bd2cebb8b107543081ac9bbbbf639dc5730c6663 (patch) | |
tree | a4197dbbcd78aa1f406c1b76c56cb7d95821652b | |
parent | 587646a4761f06941df4baab8f58176f2cc90050 (diff) | |
download | mariadb-git-bd2cebb8b107543081ac9bbbbf639dc5730c6663.tar.gz |
Fixed check_costs.pl to always create table if table does not exists
This allows one to always use --skip-create-table for repeated runs.
-rwxr-xr-x | tests/check_costs.pl | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/tests/check_costs.pl b/tests/check_costs.pl index 2709d482c9a..a89f3d07160 100755 --- a/tests/check_costs.pl +++ b/tests/check_costs.pl @@ -234,7 +234,7 @@ sub test_engine() setup_engine($engine); setup($opt_init_query); $table= $base_table . "_$engine"; - if (!defined($opt_skip_create)) + if (!defined($opt_skip_create) || !check_if_table_exist($table)) { my $index_type=""; @@ -270,7 +270,7 @@ sub test_engine() ENGINE= $engine") or die "Got error on CREATE TABLE: $DBI::errstr"; } - $cur_rows= get_row_count(); + $cur_rows= get_row_count($table); if ($cur_rows == 0 || !defined($opt_skip_create)) { $dbh->do("insert into $table select @@ -976,6 +976,8 @@ $sth->execute || die "Got error on '$query': " . $dbh->errstr . "\n";; sub get_row_count() { + my ($table)= @_; + my ($query, $sth, $row); $query= "select count(*) from $table"; $sth= $dbh->prepare($query) || die "Got error on '$query': " . $dbh->errstr . "\n"; if (!$sth->execute) @@ -994,6 +996,7 @@ sub get_row_count() sub get_variable() { my ($name)= @_; + my ($query, $sth, $row); $query= "select @@" . $name; if (!($sth= $dbh->prepare($query))) { @@ -1003,3 +1006,18 @@ sub get_variable() $row= $sth->fetchrow_arrayref(); return $row->[0]; } + + +sub check_if_table_exist() +{ + my ($name)= @_; + my ($query,$sth); + $query= "select 1 from $name limit 1"; + $sth= $dbh->prepare($query) || die "Got error on '$query': " . $dbh->errstr . "\n"; + print $sth->fetchrow_arrayref(); + if (!$sth->execute || !defined($sth->fetchrow_arrayref())) + { + return 0; # Table does not exists + } + return 1; +} |