"Warnings on 'drop procedure' platform-specific").
In mysqltest we should not issue "SHOW WARNINGS" until we have not
read results from all statements in multi-statement.
Otherwise such "SHOW WARNINGS" will either cause "Packets out of order"
error and thus will ruin current connection (but we may not notice this as
it happened in sp.test because we ignore errors from such auxilary
SHOW WARNINGS and use auto-reconnecting connections) or will
succeed but consume first packet from next statement in multi-statement
sequence (this happens if "SHOW WARNINGS" is issued when this packet
is already received by client. Packet is thrown away by net_clear()
call which is issued when "SHOW WARNINGS" is sent to server).
In our case sp.test failed because usually we had first situation
but sometimes second situation occured causing warning to pop-up.
Now one can use user variables as target for data loaded from file
(besides table's columns). Also LOAD DATA got new SET-clause in which
one can specify values for table columns as expressions.
For example the following is possible:
LOAD DATA INFILE 'words.dat' INTO TABLE t1 (a, @b) SET c = @b + 1;
This patch also implements new way of replicating LOAD DATA.
Now we do it similarly to other queries.
We store LOAD DATA query in new Execute_load_query event
(which is last in the sequence of events representing LOAD DATA).
When we are executing this event we simply rewrite part of query which
holds name of file (we use name of temporary file) and then execute it
as usual query. In the beggining of this sequence we use Begin_load_query
event which is almost identical to Append_file event
This is a modifiction of my previous patch after receiving feedback. This is a better way to fix the problem. With this patch, data directory and index directory will use only forward slashes (/) when on Windows.
mysqldump.c:
Removed fixPaths routine. Was improper fix for bug #6660
sql_show.cc:
Changed append_directory to convert backslashes to foward slashes when on Windows.
This really should not happen on Windows and part of the problem not fixed here is why show create table includes data directory when being run on Windows. However, this patch fixes the bug in mysqldump.c
mysqldump.c:
Added fixPaths function to convert \ to / in data directory and index directory entries only on Windows
Change string->float conversion to delay division as long as possible.
This gives us more exact integer->float conversion for numbers of type '123.45E+02' (Bug #7740)