- 01 Dec, 2018 2 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
rec_get_n_fields(): Add the parameter 'comp' for specifying the format. rec_offs_make_valid(): Consistently use rec_offs_comp(offsets).
-
- 30 Nov, 2018 13 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
FIXME: fix crashes in innodb.instant_alter_null, main.function_defaults_innodb
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The special flag REC_INFO_MIN_REC_FLAG used to be only set on the first record in the leftmost node pointer page of each level of the tree. It was never set on leaf pages. MDEV-11369 Instant ADD COLUMN in MariaDB Server 10.3 repurposed the flag to identify a hidden metadata record, which is stored in the first record on the leftmost leaf page. If the adaptive hash index points to records in the leftmost leaf page after instant ALTER TABLE, we would have such a metadata record in the table, an assertion could fail when trying to validate the index record. In a release build, we might wrongly qualify the hidden metadata record and thus return garbage results. cmp_dtuple_rec_with_match_bytes(): If the REC_INFO_MIN_REC_FLAG is set on the record, assert that this is the first record on the leftmost page and that the record is a metadata record, and finally return 1, because by definition, anything is greater than the minimum record.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Also, related to MDEV-15522, MDEV-17304, MDEV-17835, remove the Galera xtrabackup tests, because xtrabackup never worked with MariaDB Server 10.3 due to InnoDB redo log format changes.
-
- 29 Nov, 2018 6 commits
-
-
Jan Lindström authored
Disable tests that do not yet pass.
-
Marko Mäkelä authored
rec_copy_prefix_to_buf(): If the page is in the flexible format, convert the record to the original format, so that btr_pcur_restore_position() will only have to deal with one format. Merge the code from rec_copy_prefix_to_buf_old(). btr_pcur_restore_position_func(): Interpret a special value of btr_cur_t::old_rec that points to the metadata record.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
btr_cur_optimistic_insert(): Only insert the metadata record in the newest format. btr_cur_pessimistic_insert(): Allow the insertion of the metadata record.
-
Marko Mäkelä authored
page_copy_rec_list_end_to_created_page(): Reposition the cursor when converting the page. page_delete_rec_list_start(): Relax a too strict assertion.
-
Marko Mäkelä authored
dict_create_add_foreigns_to_dictionary(): Do not commit the transaction. The operation can still fail in dict_load_foreigns(), and we want to be able to roll back the transaction. create_table_info_t::create_table(): Never reset m_drop_before_rollback, and never commit the transaction. We use a single point of rollback in ha_innobase::create(). Merge the logic from row_table_add_foreign_constraints().
-
- 28 Nov, 2018 11 commits
-
-
Marko Mäkelä authored
The dict_col_t::was_not_null() only matters for the clustered index, not secondary indexes.
-
Marko Mäkelä authored
For dual-format pages, we must know whether columns were originally NOT NULL, so that we can correctly interpret records in the old leaf pages of the dual-format primary key index. dict_table_t::init_instant(): Set the new DATA_WAS_NOT_NULL flags and index->n_nullable based on it.
-
Marko Mäkelä authored
We want dict_index_t::n_nullable to reflect the original NOT NULL state of the columns. dict_table_t::init_instant(): Remove an assertion that would fail when the InnoDB data dictionary is out of sync with the MariaDB data dictionary. Correctly compute n_nullable. (With this, the assertion ut_ad(index.n_nullable == n_nullable) at the end of the function will fail.)
-
Marko Mäkelä authored
-
Marko Mäkelä authored
btr_pcur_store_position(): Merge the code from dict_index_copy_rec_order_prefix().
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
This is a regression due to MDEV-17816. When creating a table fails, we must roll back the dictionary transaction. Because the rollback may rename tables, and because InnoDB lacks proper undo logging for CREATE operations, we must drop the incompletely created table before rolling back the transaction, which could include a RENAME operation. But, we must not blindly drop the table by name; after all, the operation could have failed because another table by the same name already existed. create_table_info_t::m_drop_before_rollback: A flag that is set if the table needs to be dropped before transaction rollback. create_table_info_t::create_table(): Remove some duplicated error handling. ha_innobase::create(): On error, only drop the table if it was actually created.
-
Sergei Petrunia authored
Added a testcase
-
Alexander Barkov authored
-
Alexander Barkov authored
MDEV-17854 Assertion `decimals <= 6' failed in my_time_fraction_remainder on SELECT with NULLIF and FROM_UNIXTIME on incorrect time
-
- 27 Nov, 2018 8 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The code became unused in commit 10590dd3.
-
Oleksandr Byelkin authored
Added support for usual agreggate UDF (UDAF) Added remove() call support for more efficient window function processing Added example of aggregate UDF with efficient windows function support
-
Jan Lindström authored
Add check that file key management plugin is found.
-
Marko Mäkelä authored
fil_space_t::add(): Replaces fil_node_create(), fil_node_create_low(). Let the caller pass fil_node_t::handle, to avoid having to close and re-open files. fil_node_t::read_page0(): Refactored from fil_node_open_file(). Read the first page of a data file. fil_node_open_file(): Open the file only once. srv_undo_tablespace_open(): Set the file handle for the opened undo tablespace. This should ensure that ut_ad(file->is_open()) no longer fails in recv_add_trim(). xtrabackup_backup_func(): Remove some dead code. xb_fil_cur_open(): Open files only if needed. Undo tablespaces should already have been opened.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
trx_assign_rseg_low(): Skip dedicated undo tablespaces if innodb_undo_tablespaces=0 has been set after the database was created.
-