#!/bin/bash
my="/home/marcos.albe/sandboxes/msb_5_6_24/use ";
explains="/home/marcos.albe/55524/explains.new";

if [[ $# -lt 3 ]]; then { 
  echo "Usage: resetai.sh <table_open_cache> <tables count> <sleep interval> <engine>;";
  exit 1;
} fi;

cache_size=$1
tables_count=$2
sleep=$3;
engine=$4

[[ -f $explains ]] && rm -vf $explains;

$my -e "DROP DATABASE IF EXISTS TESTAI; CREATE DATABASE TESTAI;";
$my -e "SET GLOBAL table_open_cache=${cache_size}";
echo "USE TESTAI;" > $explains;
for i in $(seq 1 ${tables_count}); do {
  $my -e "CREATE TABLE TESTAI.t${i} (i INT NOT NULL AUTO_INCREMENT PRIMARY KEY, c CHAR(32) NOT NULL) ENGINE ${engine};";
  echo "EXPLAIN SELECT * FROM t${i}, t1 AS t WHERE t.i > 10 AND t.c='abc';" >> $explains;
} done;

$my -e "DROP TABLE IF EXISTS TESTAI.every5minutes";
$my -e "CREATE TABLE TESTAI.every5minutes (
Id int(11) NOT NULL AUTO_INCREMENT,
ActionId int(11) NOT NULL DEFAULT '0',
ItemId int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (Id),
KEY ActionId (ActionId),
KEY ItemId (ItemId)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 CHECKSUM=1;";

$my -e "INSERT INTO TESTAI.every5minutes SET id=2; DELETE FROM TESTAI.every5minutes;";

auto_inc_initial=$($my -BNe "SHOW TABLE STATUS FROM TESTAI LIKE 'every5minutes'" |awk '{print $11}');
echo -ne "initial auto-inc value: ${auto_inc_initial}... ";

$my -e "SOURCE ${explains};" 1> /dev/null;

echo "Sleeping ${sleep}";
sleep ${sleep};

auto_inc_final=$($my -BNe "SHOW TABLE STATUS FROM TESTAI LIKE 'every5minutes'" |awk '{print $11}');
echo -ne "final auto-inc value: ${auto_inc_final}\n";

status_string="Passed";
if [[ ${auto_inc_initial} -ne ${auto_inc_final} ]]; then {
  status_string="FAILED!!";
} fi;

echo "${status_string}, with ${tables_count} ${engine} tables and table_open_cache=${cache_size}; sleep set to ${sleep}.";
