- 12 Feb, 2018 22 commits
-
-
Sergei Golubchik authored
MDEV-14990 mysql_upgrade fails with ERROR 1408 (HY000) at line 566: Event Scheduler: An error occurred when initializing system tables Don't check mysql.db and mysql.user from event schedule on startup. Event schedule should only check its own mysql.event table, it has no business checking other system tables. In particular, it's ridiculous for event schedule to fail when privilege tables are not the newest, because sql_acl.cc supports old privilege tables just fine.
-
Sergei Golubchik authored
Truncate_versioning_priv->Delete_history_priv because the command and the privilege were renamed
-
Sergei Golubchik authored
don't expand AS OF in views, and, in particular, don't auto-add AS OF NOW().
-
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
-