- 08 May, 2017 6 commits
-
-
Sachin Setiya authored
-
Jan Lindström authored
-
Jan Lindström authored
Actual error number returned from the query depends what point corrupted page is accessed, is it accessed when we read one of the pages for result set or is it accessed during background page read.
-
Jan Lindström authored
Removed creation of unused backup file and unused variables.
-
Sergei Golubchik authored
JOIN_TAB::remove_redundant_bnl_scan_conds() removes select_cond from a JOIN_TAB if join cache is enabled, and tab->cache_select->cond is the equal to tab->select_cond. But after 8d99166c the code to initialize join cache was moved to happen much later than JOIN_TAB::remove_redundant_bnl_scan_conds(), and that code might, under certain conditions, revert to *not* using join cache (set_join_cache_denial()). If JOIN_TAB::remove_redundant_bnl_scan_conds() removes the WHERE condition from the JOIN_TAB and later set_join_cache_denial() disables join cache, we end up with no WHERE condition at all. Fix: move JOIN_TAB::remove_redundant_bnl_scan_conds() to happen after all possible set_join_cache_denial() calls.
-
Sergei Golubchik authored
table_already_fk_prelocked() was looking for a table in the wrong list (not the complete list of prelocked tables, but only in its tail, starting from the current table - which is always empty for the last added table), so for circular FKs it kept adding same tables to the list indefinitely.
-
- 07 May, 2017 2 commits
-
-
Sergei Petrunia authored
-
Sergei Petrunia authored
Missed doing a few updates to rocksdb.use_direct_reads_writes test.
-
- 06 May, 2017 7 commits
-
-
Marko Mäkelä authored
The function buf_read_page_low() invokes fil_io(), which can return DB_ERROR when the requested page is out of bounds (such as when restoring a buffer pool dump). The callers should be handling that.
-
Vicențiu Ciorbaru authored
Our RPL_VERSION_HACK prefix caused MySQL clients to always report 5.5 major and minor versions, even if a specific fake version is passed via my.cnf or command line parameters. When a specific version is requested, don't employ the RPL_VERSION_HACK prefix within the server handshake packet.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
We only want to retry posix_fallocate() on EINTR as long as the system is not being shut down. We do not want to retry on any other (hard) error. Thanks to Jocelyn Fournier for quickly noticing the mistake in my previous commit.
-
Marko Mäkelä authored
Also, include fixes by Vladislav Vaintroub to the aws_key_management plugin. The AWS C++ SDK specifically depends on OPENSSL_LIBRARIES, not generic SSL_LIBRARIES (such as YaSSL).
-
Marko Mäkelä authored
Earlier versions of MariaDB only use posix_fallocate() when extending data files, not when initially creating the files,
-
=Ian Gilfillan authored
-
- 05 May, 2017 6 commits
-
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
During merge of innodb code QC invalidation was removed from innodb part but not added to server part. We decided to keep it in innodb to keep server/engine interface the same.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
This only merges MDEV-12253, adapting it to MDEV-12602 which is already present in 10.2 but not yet in the 10.1 revision that is being merged. TODO: Error handling in crash recovery needs to be improved. If a page cannot be decrypted (or read), we should cleanly abort the startup. If innodb_force_recovery is specified, we should ignore the problematic page and apply redo log to other pages. Currently, the test encryption.innodb-redo-badkey randomly fails like this (the last messages are from cmake -DWITH_ASAN): 2017-05-05 10:19:40 140037071685504 [Note] InnoDB: Starting crash recovery from checkpoint LSN=1635994 2017-05-05 10:19:40 140037071685504 [ERROR] InnoDB: Missing MLOG_FILE_NAME or MLOG_FILE_DELETE before MLOG_CHECKPOINT for tablespace 1 2017-05-05 10:19:40 140037071685504 [ERROR] InnoDB: Plugin initialization aborted at srv0start.cc[2201] with error Data structure corruption 2017-05-05 10:19:41 140037071685504 [Note] InnoDB: Starting shutdown... i================================================================= ==5226==ERROR: AddressSanitizer: attempting free on address which was not malloc()-ed: 0x612000018588 in thread T0 #0 0x736750 in operator delete(void*) (/mariadb/server/build/sql/mysqld+0x736750) #1 0x1e4833f in LatchCounter::~LatchCounter() /mariadb/server/storage/innobase/include/sync0types.h:599:4 #2 0x1e480b8 in LatchMeta<LatchCounter>::~LatchMeta() /mariadb/server/storage/innobase/include/sync0types.h:786:17 #3 0x1e35509 in sync_latch_meta_destroy() /mariadb/server/storage/innobase/sync/sync0debug.cc:1622:3 #4 0x1e35314 in sync_check_close() /mariadb/server/storage/innobase/sync/sync0debug.cc:1839:2 #5 0x1dfdc18 in innodb_shutdown() /mariadb/server/storage/innobase/srv/srv0start.cc:2888:2 #6 0x197e5e6 in innobase_init(void*) /mariadb/server/storage/innobase/handler/ha_innodb.cc:4475:3
-
Alexander Barkov authored
-
- 04 May, 2017 2 commits
-
-
Oleksandr Byelkin authored
Port of mysql changeset by Georgi Kodinov <Georgi.Kodinov@Oracle.com>: Bug #34325 : --add-drop-trigger option for mysqldump Implemented the --add-drop-trigger option to prepend each CREATE TRIGGER in the dump file with DROP TRIGGER. The option is off by default. Added a test case.
-
Vladislav Vaintroub authored
The new 10.2 has log-slow-admin-statements ON but log-slow-queries OFF, thus there is no reason for a warning about it(the change was "by design")
-
- 03 May, 2017 2 commits
-
-
Igor Babaev authored
The usage of windows functions when all tables were optimized away by min/max optimization were not supported. As result a result, the queries that used window functions with min/max aggregation over the whole table returned wrong result sets. The patch fixed this problem.
-
Daniel Black authored
(from: http://buildbot.askmonty.org/buildbot/builders/p8-rhel6-bintar/builds/820/steps/test/logs/stdio) Errors like the following indicate a potential endian storage issue: rocksdb.rocksdb_range w1 [ fail ] Test ended at 2017-04-27 18:56:11 CURRENT_TEST: rocksdb.rocksdb_range --- /home/buildbot/maria-slave/p8-rhel6-bintar/build/storage/rocksdb/mysql-test/rocksdb/r/rocksdb_range.result 2017-04-27 17:41:27.740050347 -0400 +++ /home/buildbot/maria-slave/p8-rhel6-bintar/build/storage/rocksdb/mysql-test/rocksdb/r/rocksdb_range.reject 2017-04-27 18:56:11.230050346 -0400 @@ -25,15 +25,15 @@ select * from t2 force index (a) where a=0; pk a b 0 0 0 -1 0 1 -2 0 2 -3 0 3 -4 0 4 -5 0 5 -6 0 6 -7 0 7 -8 0 8 -9 0 9 +16777216 0 1 +33554432 0 2 +50331648 0 3 +67108864 0 4 +83886080 0 5 +100663296 0 6 +117440512 0 7 +134217728 0 8 +150994944 0 9 # The rest are for code coverage: explain select * from t2 force index (a) where a=2; @@ -41,23 +41,23 @@ 1 SIMPLE t2 ref a a 4 const # select * from t2 force index (a) where a=2; pk a b -20 2 20 -21 2 21 -22 2 22 -23 2 23 -24 2 24 -25 2 25 -26 2 26 -27 2 27 -28 2 28 -29 2 29 +335544320 2 20 +352321536 2 21 +369098752 2 22 +385875968 2 23 +402653184 2 24 +419430400 2 25 +436207616 2 26 +452984832 2 27 +469762048 2 28 +486539264 2 29 explain select * from t2 force index (a) where a=3 and pk=33; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 const a a 8 const,const # select * from t2 force index (a) where a=3 and pk=33; pk a b -33 3 33 +553648128 3 33 select * from t2 force index (a) where a=99 and pk=99; pk a b select * from t2 force index (a) where a=0 and pk=0; ... Signed-off-by: Daniel Black <daniel.black@au.ibm.com>
-
- 02 May, 2017 6 commits
-
-
Sergei Petrunia authored
Temporarily disable rocksdb.compact_deletes.
-
Sergei Petrunia authored
use_direct_writes was renamed to use_direct_io_for_flush_and_compaction
-
Alexey Botchkov authored
Flags are wrongly set for MBR_CONTAINS/MBR_WITHIN functions.
-
Alexey Botchkov authored
MDEV-12363 Assertion `0' failed in Type_handler_string_result::make_sort_key(uchar*, Item*, const SORT_FIELD_ATTR*, Sort_param*). maybe_null wasn't properly set for Item_json_func_keys.
-
Alexey Botchkov authored
json_find_path. The ..[0] path can be treated wrong on second json_find_path call.
-
Alexey Botchkov authored
JSON_SEARCH with variables. Wrong index for the tmp_paths array in Item_func_json_search::val_str.
-
- 01 May, 2017 2 commits
-
-
Jacob Mathew authored
Merged fix into 10.2.
-
Sergei Petrunia authored
- Update rocksdb submodule to revision d616ebea23fa88cb9c2c8588533526a566d9cfab - Normally this should be done by doing a merge from upstream MyRocks, but now we are just updating rocksdb, MyRocks merge will follow later. - Apply a part of 4f6f072f6c74513087004755508eb6d6c432c5c1 use_direct_writes was renamed to use_direct_io_for_flush_and_compaction - Update build_rocksdb.cmake - RocksDB have moved files around
-
- 30 Apr, 2017 4 commits
-
-
Sergei Golubchik authored
post-fix for 0b52b28b * restore EXPLAIN output * remove redundant code
-
Sergei Golubchik authored
MDEV-12293 Assertion `table->no_keyread || !table->covering_keys.is_set(tab->index) || table->file->keyread == tab->index' failed sometimes the optimizer starts a keyread on some index and later (but before any actual index accesses) changes it to a keyread on a different index
-
Sergei Golubchik authored
Recompile it for embedded. Test it for embedded. Promote it to Gamma
-
Sergei Golubchik authored
innochecksum uses global variables. great, let's use them all the way down, instead of passing them as arguments to innodb internals, conditionally modifying function prototypes with #ifdefs
-
- 29 Apr, 2017 1 commit
-
-
Igor Babaev authored
The bug happened when the specification of a recursive CTE had no recursive references at the top level of the specification. In this case the regular processing of derived table references of the select containing a non-recursive reference to this recursive CTE misses handling the specification unit. At the preparation stage any non-recursive reference to a recursive CTE must be handled after the preparation of the specification unit for this CTE. So we have to force this preparation when regular handling of derived tables does not do it.
-
- 28 Apr, 2017 2 commits
-
-
Marko Mäkelä authored
This fixes a regression caused by MDEV-12428. When we introduced a variant of fil_space_acquire() that could increment space->n_pending_ops after space->stop_new_ops was set, the logic of fil_check_pending_operations() was broken. fil_space_t::n_pending_ios: A new field to track read or write access from the buffer pool routines immediately before a block write or after a block read in the file system. fil_space_acquire_for_io(), fil_space_release_for_io(): Similar to fil_space_acquire_silent() and fil_space_release(), but modify fil_space_t::n_pending_ios instead of fil_space_t::n_pending_ops. Adjust a number of places accordingly, and remove some redundant tablespace lookups. The following parts of this fix differ from the 10.2 version of this fix: buf_page_get_corrupt(): Add a tablespace parameter. In 10.2, we already had a two-phase process of freeing fil_space objects (first, fil_space_detach(), then release fil_system->mutex, and finally free the fil_space and fil_node objects). fil_space_free_and_mutex_exit(): Renamed from fil_space_free(). Detach the tablespace from the fil_system cache, release the fil_system->mutex, and then wait for space->n_pending_ios to reach 0, to avoid accessing freed data in a concurrent thread. During the wait, future calls to fil_space_acquire_for_io() will not find this tablespace, and the count can only be decremented to 0, at which point it is safe to free the objects. fil_node_free_part1(), fil_node_free_part2(): Refactored from fil_node_free().
-
Marko Mäkelä authored
This fixes a regression caused by MDEV-12428. When we introduced a variant of fil_space_acquire() that could increment space->n_pending_ops after space->stop_new_ops was set, the logic of fil_check_pending_operations() was broken. fil_space_t::n_pending_ios: A new field to track read or write access from the buffer pool routines immediately before a block write or after a block read in the file system. fil_space_acquire_for_io(), fil_space_release_for_io(): Similar to fil_space_acquire_silent() and fil_space_release(), but modify fil_space_t::n_pending_ios instead of fil_space_t::n_pending_ops. fil_space_free_low(): Wait for space->n_pending_ios to reach 0, to avoid accessing freed data in a concurrent thread. Future calls to fil_space_acquire_for_io() will not find this tablespace, because it will already have been detached from fil_system. Adjust a number of places accordingly, and remove some redundant tablespace lookups. FIXME: buf_page_check_corrupt() should take a tablespace from fil_space_acquire_for_io() as a parameter. This will be done in the 10.1 version of this patch and merged from there. That depends on MDEV-12253, which has not been merged from 10.1 yet.
-