# # Test executing row_update_statistics_if_needed() when the stats # for the given table are not initialized # -- source include/have_debug.inc -- source include/have_innodb.inc # include/restart_mysqld.inc does not work in embedded mode -- source include/not_embedded.inc # Windows does not have grep(1) -- source include/not_windows.inc CREATE TABLE parent ( a INT PRIMARY KEY ) ENGINE=INNODB; CREATE TABLE child ( a INT PRIMARY KEY, FOREIGN KEY (a) REFERENCES parent(a) ON DELETE CASCADE ) ENGINE=INNODB; INSERT INTO parent VALUES (1); INSERT INTO child VALUES (1); -- source include/restart_mysqld.inc SET SESSION DEBUG='+d,test_upd_stats_if_needed_not_inited'; # this will cause row_update_statistics_if_needed() to be called for a table # that is not opened (child) and thus has table->stat_initialized set to FALSE DELETE FROM parent; SET SESSION DEBUG='-d,test_upd_stats_if_needed_not_inited'; -- exec grep 'test_upd_stats_if_needed_not_inited was executed' $MYSQLTEST_VARDIR/log/mysqld.1.err || true DROP TABLE child; DROP TABLE parent;