- 27 Feb, 2017 16 commits
-
-
Sergei Golubchik authored
fix_for_comment() uses a static buffer. cannot have two fix_for_comment() calls as arguments to one printf().
-
Sergei Golubchik authored
it was race condition prone. instead use either a pair of my_delete() calls with already resolved paths, or a safe high-level function my_handler_delete_with_symlink(), like MyISAM and Aria already do.
-
Sergei Golubchik authored
don't realpath() twice
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
At least it would be a compilation failure with -DDONT_ALLOW_SHOW_COMMANDS. Otherwise it only confuses ctags to ignore ~75% of sql_parse.cc
-
Sergei Golubchik authored
-
Sergei Golubchik authored
TOCTOU bug. The path is checked to be valid, symlinks are resolved. Then the resolved path is opened. Between the check and the open, there's a window when one can replace some path component with a symlink, bypassing validity checks. Fix: after we resolved all symlinks in the path, don't allow open() to resolve symlinks, there should be none. Compared to the old MyISAM/Aria code: * fastpath. Opening of not-symlinked files is just one open(), no fn_format() and lstat() anymore. * opening of symlinked tables doesn't do fn_format() and lstat() either. it also doesn't to realpath() (which was lstat-ing every path component), instead if opens every path component with O_PATH. * share->data_file_name stores realpath(path) not readlink(path). So, SHOW CREATE TABLE needs to do lstat/readlink() now (see ::info()), and certain error messages (cannot open file "XXX") show the real file path with all symlinks resolved.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
Remove maria_test_invalid_symlink() and myisam_test_invalid_symlink(), introduce mysys_test_invalid_symlink(). Other engines might need it too
-
Sergei Golubchik authored
Don't let my_register_filename() fail because strdup() failed. Better to have NULL for a filename, then to fail the already successful open(). Filenames are only used for error reporting and there was already code to ignore OOMs (my_fdopen()) and to cope with missing filenames (my_filename()).
-
Sergei Golubchik authored
my_realpath() ignores MY_xxx flags anyway
-
Sergei Golubchik authored
While DEBUG_SYNC doesn't make sense without a valid THD, it might be put in the code that's invoked both within and outside of a THD context (e.g. in maria_open(), there is no THD during recovery).
-
Sergei Golubchik authored
Workaround for join_cache + index on vcols + keyread bug. Initialize the record to avoid caching garbage in non-read fields. A proper fix (do not cache non-read fields at all) is done in 10.2 in commits 5d7607f3..8d99166c
-
Sergei Golubchik authored
mysql_prune_stmt_list() was walking the list following element->next pointers, but inside the loop it was invoking list_add(element) that modified element->next. So, mysql_prune_stmt_list() failed to visit and reset all elements, and some of them were left with pointers to invalid MYSQL.
-
- 24 Feb, 2017 1 commit
-
-
Igor Babaev authored
'Not exists' optimization can be used for nested outer joins only if IS NULL predicate from the WHERE condition is activated. So we have to check that all guards that wrap this predicate are in the 'open' state. This patch supports usage of 'Not exists' optimization for any outer join, no matter how it's nested in other outer joins. This patch is also considered as a proper fix for bugs #49322/#58490 and LP #817360.
-
- 23 Feb, 2017 1 commit
-
-
Elena Stepanova authored
The tests are disabled for valgrind in 5.6/10.x (LP:1549196), so they should be disabled in 5.5 as well
-
- 22 Feb, 2017 3 commits
-
-
Marko Mäkelä authored
Before the MDEV-11520 fixes, fil_extend_space_to_desired_size() in MariaDB Server 5.5 incorrectly passed the desired file size as the third argument to posix_fallocate(), even though the length of the extension should have been passed. This looks like a regression that was introduced in the 5.5 version of MDEV-5746.
-
Marko Mäkelä authored
Remove the unused variable desired_size. Also, correct the expression for the posix_fallocate() start_offset, and actually test that it works with a multi-file system tablespace. Before MDEV-11520, the expression was wrong in both innodb_plugin and xtradb, in different ways. The start_offset formula was tested with the following: ./mtr --big-test --mysqld=--innodb-use-fallocate \ --mysqld=--innodb-data-file-path='ibdata1:5M;ibdata2:5M:autoextend' \ --parallel=auto --force --retry=0 --suite=innodb & ls -lsh mysql-test/var/*/mysqld.1/data/ibdata2
-
Sachin Setiya authored
Problem:- When MariaDB is compiled with jemalloc support, And we run mtr valgrind test, valgrind interferes with libjemalloc and returns false errors. Solution:- Run valgrind with --soname-synonyms=somalloc=libjemalloc* or --soname-synonyms=somalloc=NONE depending on whether we are dynamically linking or statically linking. Signed-off-by: Sachin Setiya <sachin.setiya@mariadb.com>
-
- 21 Feb, 2017 3 commits
-
-
Alexey Botchkov authored
ha_partition::late_extra_cache(uint). m_extra_prepare_for_update should be cleaned in ha_partition::reset()
-
Marko Mäkelä authored
a large memory buffer on Windows fil_extend_space_to_desired_size(), os_file_set_size(): Use calloc() for memory allocation, and handle failures. Properly check the return status of posix_fallocate(). On Windows, instead of extending the file by at most 1 megabyte at a time, write a zero-filled page at the end of the file. According to the Microsoft blog post https://blogs.msdn.microsoft.com/oldnewthing/20110922-00/?p=9573 this will physically extend the file by writing zero bytes. (InnoDB never uses DeviceIoControl() to set the file sparse.) For innodb_plugin, port the XtraDB fix for MySQL Bug#56433 (introducing fil_system->file_extend_mutex). The bug was fixed differently in MySQL 5.6 (and MariaDB Server 10.0).
-
Marko Mäkelä authored
fsp_init_file_page_low() does initialize all pages nowadays, even those in the InnoDB system tablespace.
-
- 20 Feb, 2017 2 commits
-
-
Oleksandr Byelkin authored
Switch MEM_ROOT to non-prune_partitions() during optimizing subselect.
-
Alexey Botchkov authored
MySQL 8.0 basically inherits the 5.7 model, though some modeifications required for the plugin.
-
- 18 Feb, 2017 1 commit
-
-
Elena Stepanova authored
parts.partition_float_myisam, parts.partition_int_myisam, parts.partition_float_innodb are all known to fail with timeouts on slow builders. The tests are composed of several independent parts for corresponding subtypes (float == float + double, int == tinyint + smallint + mediumint + int + bigint). The solution is to split them into separate tests. No test logic has been changed.
-
- 17 Feb, 2017 1 commit
-
-
Igor Babaev authored
This patch is actually a complement for the fix of bug mdev-6892. The procedure create_tmp_table() now must take into account Item_direct_refs that wrap up constant fields of derived tables/views that are used as inner tables in outer join operations.
-
- 16 Feb, 2017 3 commits
-
-
Elena Stepanova authored
On a slow builder, a delay between binlog events on master could occur, which would cause a heartbeat which is not expected by the test. The solution is to monitor the timing of binlog events on the master and only perform the heartbeat check if no critical delays have happened. Additionally, an unused variable was removed (this change is unrelated to the bugfix).
-
Alexander Kuleshov authored
-
Jan Lindström authored
These are caused by fact that functions are declared with __attribute__((nonnull)) or left shit like ~0 << macro when ~0U << macro should be used.
-
- 13 Feb, 2017 1 commit
-
-
Nirbhay Choubey authored
Try to remove bug50373.txt before using it in SELECT .. OUTFILE (in case its a leftover from previous test runs).
-
- 27 Jan, 2017 2 commits
-
-
Monty authored
with xemacs
-
Monty authored
my_thread_global_init() + my_thrad_global_end() repeatadily. This caused THR_KEY_mysys to be allocated multiple times. Deletion of THR_KEY_mysys was originally in my_thread_global_end() but was moved to my_end() as DBUG uses THR_KEY_mysys and DBUG is released after my_thread_global_end() is called. Releasing DBUG before my_thread_global_end() and move THR_KEY_mysys back into my_thread_global_end() could be a solution, but as safe_mutex and other things called by my_thread_global_end is using DBUG it may not be completely safe. To solve this, I used the simple solution to add a marker that THR_KEY_mysys is created and not re-create it in my_thread_global_init if it already exists.
-
- 24 Jan, 2017 1 commit
-
-
Igor Babaev authored
As the function Item_subselect::fix_fields does it the function Item_subselect::update_used_tables must ignore UNCACHEABLE_EXPLAIN when deciding whether the subquery item should be considered as a constant item.
-
- 18 Jan, 2017 1 commit
-
-
Igor Babaev authored
When building different range and index-merge trees the range optimizer could build an index-merge tree with an index scan containing less ranges then needed. This index-merge could be chosen as the best. Following this index-merge the executioner missed some rows in the result set. The invalid index scan was built due to an inconsistency in the code back-ported from mysql into 5.3 that fixed mysql bug #11765831: the code added to key_or() could change shared keys of the second ored tree. Partially the problem was fixed in the patch for mariadb bug #823301, but it turned out that only partially.
-
- 14 Jan, 2017 3 commits
-
-
Sergei Golubchik authored
It was used for get_datetime_value() and for thd->is_error(). But in fact, get_datetime_value() never used thd argument, because the cache ptr argument was NULL. And thd->is_error() check was not needed at that place at all.
-
Sergei Golubchik authored
it used current_thd->alloc() and allocated on the thd's execution arena, not on table->expr_arena. Remove THD::arena_for_cached_items that is temporarily set in update_virtual_fields(), and replaces THD arena in get_datetime_value(). Instead set THD arena to table->expr_arena for the whole duration of update_virtual_fields()
-
Sergei Golubchik authored
Item_func_le included Arg_comparator. Arg_comparator remembered the current_thd during fix_fields and used that value during execution to allocate Item_cache in get_datetime_value(). But for vcols fix_fields and val_int can happen in different threads. Same bug for Item_func_in using in_datetime or cmp_item_datetime, both also remembered current_thd at fix_fields() to use it later for get_datetime_value(). As a fix, these objects no longer remember the current_thd, and get_datetime_value() uses current_thd at run time. This should not increase the number of current_thd calls much, as Item_cache is created only once anyway.
-
- 12 Jan, 2017 1 commit
-
-
Sergei Golubchik authored
don't check defaults for vcols
-