Bug#23240 --init-file statements with NOW() reports '1970-01-01 11:00:00'as the date time

- Starting time of a query sent by file bootstrapping wasn't initialized
  and starting time defaulted to 0. This later used value by the Now-
  item and is translated to 1970-01-01 11:00:00.
- marking the time with thd->set_time() before the call to 
  mysql_parse resolves this issue.
This commit is contained in:
thek@kpdesk.mysql.com 2007-02-19 09:37:34 +01:00
parent 928d672c46
commit dd41fd5732
4 changed files with 25 additions and 0 deletions

View file

@ -1,2 +1,9 @@
INSERT INTO init_file.startup VALUES ( NOW() );
SELECT * INTO @X FROM init_file.startup limit 0,1;
SELECT * INTO @Y FROM init_file.startup limit 1,1;
SELECT YEAR(@X)-YEAR(@Y);
YEAR(@X)-YEAR(@Y)
0
DROP DATABASE init_file;
ok
End of 4.1 tests

View file

@ -1 +1,9 @@
select * from mysql.user as t1, mysql.user as t2, mysql.user as t3;
#
# Bug#23240 --init-file statements with NOW() reports '1970-01-01 11:00:00'as the date time
#
CREATE DATABASE IF NOT EXISTS init_file;
CREATE TABLE IF NOT EXISTS init_file.startup ( startdate DATETIME );
INSERT INTO init_file.startup VALUES ( NOW() );

View file

@ -6,5 +6,14 @@
# mysql-test/t/init_file-master.opt for the actual test
#
#
# Bug#23240 --init-file statements with NOW() reports '1970-01-01 11:00:00'as the date time
#
INSERT INTO init_file.startup VALUES ( NOW() );
SELECT * INTO @X FROM init_file.startup limit 0,1;
SELECT * INTO @Y FROM init_file.startup limit 1,1;
SELECT YEAR(@X)-YEAR(@Y);
DROP DATABASE init_file;
--echo ok
--echo End of 4.1 tests

View file

@ -1175,6 +1175,7 @@ extern "C" pthread_handler_decl(handle_bootstrap,arg)
free_root(thd->mem_root,MYF(MY_KEEP_PREALLOC));
break;
}
thd->set_time();
mysql_parse(thd,thd->query,length);
close_thread_tables(thd); // Free tables
if (thd->is_fatal_error)