Analysis: When filespace is extended there is first prepare for IO. But if
posix_fallocate is used there was no complete IO causing assertion
at shutdown indicating that all IO is not finished.
Fix: If posix_fallocate is used to extend the filespace, there
is no need to wait for IO to complete, thus we treat this
operation as a read operation. We need to mark IO as
completed or there would be assertion on shutdown at
fil_node_close_file() because all pending IO is not finished.
mysql-test-run: *** ERROR: Could not find any of
/mariadb-5.5.34/sql/mysql_tzinfo_to_sql
/mariadb-5.5.34/build/client/mysql_tzinfo_to_sql
Fixed the directory list to search mysql_tzinfo_to_sql binary in.
The earlier pushed fix for the bug was incomplete. It did not remove
the main cause of the problem: the function remove_eq_conds()
removed always true multiple equalities from any conjunct, but did not
adjust the list of them stored in Item_cond_and::cond_equal.current_level.
Simplified the test case for the bug and moved it to another test file.
The fix triggered changes in EXPLAIN EXTENDED for some queries.
- Don't pull out a table out of a semi-join if it is on the inner side of an outer join.
- Make join->sort_by_table= get_sort_by_table(...) call after const table detection
is done. That way, the value of join->sort_by_table will match the actual execution.
Which will allow the code in setup_semijoin_dups_elimination() (search for
"Make sure that possible sorting of rows from the head table is not to be employed."
to see that "Using filesort" is going to be used together with Duplicate Elimination (
and change it to Using temporary + Using filesort)
-DINSTALL_SYSCONFDIR/-DDEFAULT_SYSCONFDIR specified
The reason for a bug is in support-files/CMakeLists.txt that tries to
install files in INSTALL_SYSCONF2DIR, without checking whether this
variable is actually defined.
Normally INSTALL_SYSCONF2DIR is always defined if INSTALL_SYSCONFDIR is
defined, and support-files/CMakeLists.txt assumes that. But when one
specifies INSTALL_SYSCONFDIR manually on the command line, this
assumption might be broken.
- make_join_readinfo() has the code that forces use of "Using temporary;
Using filesort" when join buffering is in use.
That code didn't handle all cases, in particular it didn't hande the case
where ORDER BY originally has tables from multiple columns, but the
optimizer eventually figures out that doing filesort() on one table
will be sufficient. Adjusted the code to handle that case.