- 12 Feb, 2018 19 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
Hide INVISIBLE_SYSTEM columns from writes and from fix_vcol_expr().
-
Sergei Golubchik authored
-
Sergei Golubchik authored
enum_mark_columns -> enum_column_usage mark_used_columns -> column_usage further commits will replace MARK_COLUMN_NONE with COLUMN_READ and COLUMN_WRITE that convey the intention without causing columns to be marked
-
Sergei Golubchik authored
-
Sergei Golubchik authored
update all unique keys, not just PK
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
don't add columns to the drop list, INVISIBLE_SYSTEM columns cannot be recognized as specified by the user
-
Sergei Golubchik authored
* don't disclose INVISIBLE_FULL columns in USING and NATURAL JOIN * other INVISIBLE columns must me mentioned by name in USING, they are hidden from NATURAL JOIN
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
don't duplicate functionality, use TABLE::find_field_by_name() also, set cached_field_index_ptr for _rowid field
-
Sergei Golubchik authored
use name hash, just like find_field_in_table() does
-
Sergei Golubchik authored
replication tests
-
Jerome Brauge authored
Standard compatible behavior for UPDATE: all assignments in SET are executed "simultaneously", not left-to-right. And `SET a=b,b=a` will swap the values.
-
Sergei Golubchik authored
cleanup. use "command -v" instead of "which" simplify some checks.
-
- 10 Feb, 2018 2 commits
-
-
Vladislav Vaintroub authored
For placement new, throw() exception specification was removed by accident in 8fe04a3d , making debug tests, that simulate out-of-memory situations, fail (e.g filesort_debug)
-
Vladislav Vaintroub authored
Correctly initialize fake IPs.
-
- 08 Feb, 2018 8 commits
-
-
Marko Mäkelä authored
innobase_add_instant_try(): If the leftmost leaf page does not contain other records than the 'default row', only empty the table if there are no successor pages. When a table or partition which was not empty during a previous instant ADD COLUMN became empty later, and now with this subsequent instant ADD COLUMN we have the opportunity to convert the empty table or partition to 'non-instant' format. Similarly, if the table or partition is empty to begin with, that is, it does not even contain a 'default row' record, we can use the 'non-instant' format.
-
Marko Mäkelä authored
Until now, InnoDB inefficiently compared the aligned fields FIL_PAGE_PREV, FIL_PAGE_NEXT to the byte-order-agnostic value FIL_NULL.
-
Jan Lindström authored
Timing problem as sometimes table is marked as encrypted but sometimes we are not sure and table is just marked missing.
-
Vladislav Vaintroub authored
Compiler optimizations were switched off due to MySQL Bug #19424, #36366, #34297, due to an alleged compiler bug. No proper analysis of code generation was done back then, thus proof of a compiler bug is missing. Even if there was a compiler bug 13 years ago, it could have been fixed. Will wait and see if there are any complains or crashes
-
Vladislav Vaintroub authored
-
Marko Mäkelä authored
trx_undo_rec_copy(): Use a debug assertion. In a non-debug build, with len<0 (which this assertion is really testing for) we should still typically crash due to running out of memory.
-
Marko Mäkelä authored
Replace all occurrences of the is_clust() method with is_primary(), because that is what is actually meant. (Also the change buffer tree would count as a clustered index.)
-
Marko Mäkelä authored
Rollback attempted to dereference DB_ROLL_PTR=0, which cannot possibly be a valid undo log pointer. A safer canonical value would be roll_ptr_t(1) << ROLL_PTR_INSERT_FLAG_POS which is what was chosen in MDEV-12288, corresponding to reset_trx_id. No deterministic test case for the bug was found. The simplest test cases may be related to MDEV-11415, which suppresses undo logging for ALGORITHM=COPY operations. In those operations, in the spirit of MDEV-12288, we should actually have written reset_trx_id instead of using the transaction identifier of the current transaction (and a bogus value of DB_ROLL_PTR=0). However, thanks to MySQL Bug#28432 which I had fixed in MySQL 5.6.8 as part of WL#6255, access to the rebuilt table by earlier-started transactions should actually have been refused with ER_TABLE_DEF_CHANGED. reset_trx_id: Move the definition to data0type.cc and the declaration to data0type.h. btr_cur_ins_lock_and_undo(): When undo logging is disabled, use the safe value that corresponds to reset_trx_id. btr_cur_optimistic_insert(): Validate the DB_TRX_ID,DB_ROLL_PTR before inserting into a clustered index leaf page. ins_node_t::sys_buf[]: Replaces row_id_buf and trx_id_buf and some heap usage. row_ins_alloc_sys_fields(): Init ins_node_t::sys_buf[] to reset_trx_id. row_ins_buf(): Only if undo logging is enabled, copy trx->id to node->sys_buf. Otherwise, rely on the initialization in row_ins_alloc_sys_fields(). row_purge_reset_trx_id(): Invoke mlog_write_string() with reset_trx_id directly. (No functional change.) trx_undo_page_report_modify(): Assert that the DB_ROLL_PTR is not 0. trx_undo_get_undo_rec_low(): Assert that the roll_ptr is valid before trying to dereference it. dict_index_t::is_primary(): Check if the index is the primary key. PageConverter::adjust_cluster_record(): Fix MDEV-15249 Crash in MVCC read after IMPORT TABLESPACE by resetting the system fields to reset_trx_id instead of writing the current transaction ID (which will be committed at the end of the IMPORT TABLESPACE) and DB_ROLL_PTR=0. This can partially be viewed as a follow-up fix of MDEV-12288, because IMPORT should already then have written DB_TRX_ID=0 and DB_ROLL_PTR=1<<55 to prevent unnecessary DB_TRX_ID lookups in subsequent accesses to the table.
-
- 07 Feb, 2018 8 commits
-
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
fix a couple "initialization skipped by goto" and other new errors.
-
Vladislav Vaintroub authored
no matching operator delete found; memory will not be freed if initialization throws an exception Added a no-op delete() for MEM_ROOT based placement-new()
-
Vladislav Vaintroub authored
But set _CRT_NONSTDC_NO_WARNINGS to silence silly warnings about ANSI C function being non-standard Remove now deprecated GetVersion()/GetVersionEx(),except single case where where it is really needed, in feedback plugin. Remove checks for Windows NT. Avoid old IPv4-only inet_aton, which generated the warning.
-
Vladislav Vaintroub authored
-
Andrei Elkin authored
The test was used to result in mismatch due to unaccounted specifics of the master-slave handshake protocol that sets the Slave_IO_Running status to true while the semisync master status is set to active a bit later. The test is refined to expect that.
-
Monty authored
-
Monty authored
Fixed that Truncate_versioning_privilege works as any other privilege during upgrade: - If the privilege field does not exists, add it to the user and db tables. If the user had super_privilege then the user will also get the new Truncate_versioning_privilege. This is done to ensure that if one has GRANT ALL PRIVILEGE before, one will continue to have it after running mysql_upgrade. This also fixes a bug where the Truncate_versioning_privilege
-
- 06 Feb, 2018 3 commits
-
-
Monty authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
dict_tf_is_valid(): Allow no-rollback tables in ROW_FORMAT=REDUNDANT.
-