- 21 Sep, 2017 2 commits
-
-
Marko Mäkelä authored
When the debug parameter 'bool leaf' was added to rec_get_offsets(), also some debug assertions for reading the heap_no of ROW_FORMAT=REDUNDANT records were added. However, the heap number is uninitialized when offsets are being computed for to-be-inserted records. For debug builds, initialize the heap number to a dummy value, so that the record will be interpreted as 'user record'. The infimum and supremum pseudo-records are never copied from the page frame and never inserted; they are part of the page creation. rec_convert_dtuple_to_rec_old(): Remove a bogus memset() in debug builds.
-
Marko Mäkelä authored
-
- 20 Sep, 2017 16 commits
-
-
Sergei Golubchik authored
followup for b5ead3a6 libmariadb3 does not replace 10.1's libmariadbclient18 anymore, but it still conflicts with it, both install dialog.so
-
Marko Mäkelä authored
-
Marko Mäkelä authored
This fixes a regression that only affects debug builds, caused by commit 48192f96 which is necessary preparation for MDEV-11369 instant ADD COLUMN. (Although that is a 10.3 task, to ease merges between 10.2 and 10.3, this change that improves debug checks was pushed to 10.2 already.) Unlike btr_pcur_restore_position(), rtr_cur_restore_position() can create a search tuple out of a non-leaf page record. So, we must pass 'bool leaf' parameter to dict_index_build_data_tuple(). dict_index_build_data_tuple(): Add a debug-only parameter 'bool leaf'. rec_copy_prefix_to_dtuple(): Make the parameter debug-only. row_sel_get_clust_rec_for_mysql(): In the debug code for spatial index, remove an unnecessary call to buf_page_get_gen(), and use the already latched block directly.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
MDEV-13851 Always check table options in ALTER TABLE…ALGORITHM=INPLACE In the merge of MySQL 5.7.9 to MariaDB 10.2.2, some code was included that prevents ADD SPATIAL INDEX from being executed with ALGORITHM=INPLACE. Also, the constant ADD_SPATIAL_INDEX was introduced as an alias to ADD_INDEX. We will remove that alias now, and properly implement the same ADD SPATIAL INDEX restrictions as MySQL 5.7 does: 1. table-rebuilding operations are not allowed if SPATIAL INDEX survive it 2. ALTER TABLE…ADD SPATIAL INDEX…LOCK=NONE is not allowed ha_innobase::prepare_inplace_alter_table(): If the ALTER TABLE requires actions within InnoDB, enforce the table options (MDEV-13851). In this way, we will keep denying ADD SPATIAL INDEX for tables that use encryption (MDEV-11974), even if ALGORITHM=INPLACE is used.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
This should affect debug builds only. Debug builds will check that the status bits of ROW_FORMAT!=REDUNDANT records match the is_leaf parameter. The only observable change to non-debug should be the addition of the is_leaf parameter to the function rec_copy_prefix_to_dtuple(), and the removal of some calls to update the adaptive hash index (it is only built for the leaf pages). This change should have been made in MySQL 5.0.3, instead of introducing the status flags in the ROW_FORMAT=COMPACT record header.
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
-
Jan Lindström authored
-
Marko Mäkelä authored
The only universal index in InnoDB was the change buffer. It suffices to keep the DICT_IBUF flag (which, like DICT_UNIVERSAL, is not written to any persistent data structure).
-
Marko Mäkelä authored
The function check_mdl_lock_works() is for debug builds only.
-
Marko Mäkelä authored
Define some page accessor functions inline in page0page.h, reducing code duplication in page0page.ic. Use page_rec_is_leaf() instead of page_is_leaf() where possible.
-
- 19 Sep, 2017 22 commits
-
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
It is only valid for 10.1
-
Marko Mäkelä authored
-
Oleksandr Byelkin authored
MDEV-13290: Assertion Assertion `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())' or `! is_set()' failed Check error status which can be set by conversion procedures.
-
Vicențiu Ciorbaru authored
When creating an Item_direct_view_ref we were setting the Name_resolution_context based on TABLE_LIST::view member variable. However, for derived tables this member is NULL. To not set a wrong context, if TABLE_LIST::view is empty, use THD::lex instead.
-
Vicențiu Ciorbaru authored
Window functions can not be used as arguments to aggregate functions, as the aggregation happens before window function computation. Disallow such constructs by returning an error. In order to detect this case a change was needed in the base Item_sum_xxx::fix_fields to propagate the with_window_func flag. Item_func_group_concat requires the same change.
-
Vicențiu Ciorbaru authored
Item_cond did not correctly propagate with_window_func flag in the Item tree. Without it, we would not call Item::split_sum_func correctly and the window function's result_field would remain NULL.
-
Vicențiu Ciorbaru authored
This is backport of 25ad623d for 10.2. The issue is similar to the one from MDEV-13240. Item::save_in_field() returns an error during tmp table population in a create table from select query as we try to save an empty string as a date value when force_return_blank is set to true for window functions. MDEV-13240 Wrong warning with MAX(datetime_field) OVER (...) The problem resided in Item_window_func implementation, and it was revealed by bb-10.2-ext specific changes: Item_window_func::save_in_field() works differently in bb-10.2-ext vs 10.2: - 10.2 goes through val_str() - bb-10.2-ext goes through get_date(), due to Type_handler related changes. get_date() tries to convert empty string to DATETIME, hence the warning. During a discussion with Vicentiu, it was decided to fix Item_window_func::val_xxx() to return NULL (instead of an "empty" value, such as 0 for numbers and '' for strings) when force_return_blank is set.
-
Vicențiu Ciorbaru authored
-
Alexey Botchkov authored
The MySQL 5.6 doesn't always send the MYSQL_AUDIT_GENERAL_LOG notification. So we have to suppress the log_current_query() in this case.
-
Alexey Botchkov authored
The MySQL 5.6 doesn't always send the MYSQL_AUDIT_GENERAL_LOG notification. So we have to suppress the log_current_query() in this case.
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
Revert Bug #25175249 ASSERTION: (TEMPL->IS_VIRTUAL && !FIELD) || (FIELD && FIELD->PREFIX_LEN ? FIELD We don't want this in innodb/xtradb
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
* CMakeLists.txt erroneous duplicated lines. * Unneded differences in tabjson.cpp * Unneded space differences in jdbconn.{cpp|h}
-