summaryrefslogtreecommitdiff
path: root/mysql-test/main/invisible_field_debug.result
Commit message (Collapse)AuthorAgeFilesLines
* Merge 10.3 into 10.4, except for MDEV-20265Marko Mäkelä2019-08-231-0/+12
|\ | | | | | | | | | | | | | | The MDEV-20265 commit e746f451d57def4be679caafc29976741b3e89f7 introduces DBUG_ASSERT(right_op == r_tbl) in st_select_lex::add_cross_joined_table(), and that assertion would fail in several tests that exercise joins. That commit was skipped in this merge, and a separate fix of MDEV-20265 will be necessary in 10.4.
| * MDEV-20210 If you have an INVISIBLE VIRTUAL column, SHOW CREATE TABLE ↵Anel Husakovic2019-08-211-0/+12
| | | | | | | | doesn't list it as INVISIBLE
* | Merge branch '10.4' into bb-10.4-mdev16188Igor Babaev2019-02-031-0/+2
|\ \ | |/
| * Check that default() do not see invisible field.Oleksandr Byelkin2018-11-201-0/+2
| |
* | MDEV-16188 Use in-memory PK filters built from range index scansIgor Babaev2019-02-031-3/+12
|/ | | | | | | | | | | | | | | | | | | | | | This patch contains a full implementation of the optimization that allows to use in-memory rowid / primary filters built for range   conditions over indexes. In many cases usage of such filters reduce   the number of disk seeks spent for fetching table rows. In this implementation the choice of what possible filter to be applied   (if any) is made purely on cost-based considerations. This implementation re-achitectured the partial implementation of the feature pushed by Galina Shalygina in the commit 8d5a11122c32f4d9eb87536886c6e893377bdd07. Besides this patch contains a better implementation of the generic   handler function handler::multi_range_read_info_const() that takes into account gaps between ranges when calculating the cost of range index scans. It also contains some corrections of the implementation of the handler function records_in_range() for MyISAM. This patch supports the feature for InnoDB and MyISAM.
* MDEV-15127 AddressSanitizer: stack-buffer-overflow in base_list::push_back ..Sachin2018-08-071-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem:- If we try to run this query with -WITH_ASAN=ON compiled server CREATE TABLE t1 (i INT); SET debug_dbug="+d,test_completely_invisible,test_invisible_index"; CREATE TABLE t2 LIKE t1; This will generate a stack buffer overflow error. ==8922==ERROR: AddressSanitizer: stack-buffer-overflow on address #ADDR Analyze:- Error is generated on this line if (((*last)=new list_node(info, &end_of_list))) So info is our Key*, &end_of_list is global variable and last == #ADDR So last is suspicious variable. And last is the variable present in alter_info ->key_list. Now the question is how this key_list->last gets wrong/ different stack variable. In the backtrace, we can see that key_list is generated in mysql_create_table_like_table by calling mysql_preapre_alter_table_function and dummy key_list is created by mysql_create_like_table. In the end on mysql_prepare_alter_table we call alter_info->key_list.swap(new_key_list); So there is two options either key_list is empty or not empty , IF it is not empty then there is no issues last ptr is replaced by thd->mem_root (allocated ptr) So problem arises when key_list is empty. It swaps the dummy last ptr by mysql_prepare_alter_table declared ptr. which is wrong. Solution:- We wont swap variable if list does not have any element.
* Create 'main' test directory and move 't' and 'r' thereMichael Widenius2018-03-291-0/+371