- 24 Mar, 2017 4 commits
-
-
Marko Mäkelä authored
This could fix a race condition between mysqld and perl on Windows.
-
Marko Mäkelä authored
The test was unnecessarily depending on InnoDB purge, which can sometimes fail to proceed. Let us rewrite the test to use BEGIN;INSERT;ROLLBACK to cause the immediate removal of the desired records.
-
Vladislav Vaintroub authored
MDEV-12328, added building of AWS for release builds
-
Rasmus Johansson authored
-
- 21 Mar, 2017 1 commit
-
-
Alexey Botchkov authored
instance connects to server. New thread kill status added KILL_SLAVE_SAME_ID, and the related error message.
-
- 20 Mar, 2017 2 commits
-
-
Vladislav Vaintroub authored
On some weird reason, Visual C++ does not like newly introduced #define ut_ad(EXPR) DBUG_ASSERT(EXPR) and writes bogus "not enough parameters for DBUG_ASSERT" warning. Workaround it with #define ut_ad DBUG_ASSERT
-
Alexey Botchkov authored
JSON_REMOVE. null_value wasn't properly set in Item_json_func_remove::val_str.
-
- 18 Mar, 2017 1 commit
-
-
Marko Mäkelä authored
After a partial rollback, an undo log segment that is empty may carry a duplicate-looking top_undo_no. Adjust the debug assertions and add a test.
-
- 17 Mar, 2017 6 commits
-
-
Vladislav Vaintroub authored
When "simulate_failed_connection_1" DBUG keyword is set, current thread's DBUG stack points to global variable in dbug (init_settings). This global variable could be overriden while current THD is still active, producing crash in worst scenario. Added DBUG_SET()so that the current thread own dbug context that cannot concurrently modified by anyone else.
-
Jon Olav Hauglid authored
Follow-up to Bug#21141390: REMOVE UNUSED FUNCTIONS AND CONVERT GLOBAL SYMBOLS TO STATIC but for variables instead of functions. Was identified with the -Wmissing-variable-declarations compiler warning option supported by Clang 3.6. Reviewed-by: Marko Mäkelä <marko.makela@oracle.com> RB: 9070
-
Marko Mäkelä authored
InnoDB defines some functions that are not called at all. Other functions are called, but only from the same compilation unit. Remove some function declarations and definitions, and add 'static' keywords. Some symbols must be kept for separately compiled tools, such as innochecksum.
-
Marko Mäkelä authored
Also, remove empty .ic files that were not removed by my MySQL commit. Problem: InnoDB used to support a compilation mode that allowed to choose whether the function definitions in .ic files are to be inlined or not. This stopped making sense when InnoDB moved to C++ in MySQL 5.6 (and ha_innodb.cc started to #include .ic files), and more so in MySQL 5.7 when inline methods and functions were introduced in .h files. Solution: Remove all references to UNIV_NONINL and UNIV_MUST_NOT_INLINE from all files, assuming that the symbols are never defined. Remove the files fut0fut.cc and ut0byte.cc which only mattered when UNIV_NONINL was defined.
-
Vladislav Vaintroub authored
until the protocol changes for bulk are finalized.
-
Vladislav Vaintroub authored
-
- 16 Mar, 2017 3 commits
-
-
Marko Mäkelä authored
This is a partial port of my patch in MySQL 8.0. In MySQL 8.0, all InnoDB references to DBUG_OFF were replaced with UNIV_DEBUG. We will not do that in MariaDB. InnoDB used two independent compile-time flags that distinguish debug and non-debug builds, which is confusing. Also, make ut_ad() and alias of DBUG_ASSERT().
-
Marko Mäkelä authored
In the InnoDB internal SQL parser, there is the keyword DOES_NOT_FIT_IN_MEMORY that is never specified in any CREATE TABLE statement that is passed to the InnoDB SQL parser (que_eval_sql() or pars_sql() or yyparse()). If this keyword were ever present, it would set the flag dict_table_t::does_not_fit_in_memory which is only present in debug builds. Let us remove all traces of this. Also, fix storage/innobase/pars/make_flex.sh so that no the generated file storage/innobase/pars/lexyy.cc works as is. FIXME: Always generate the InnoDB Bison files at build time, similar to how sql/sql_yacc.yy is handled. (This would still leave the generated scanner files, unless we want to add a build-time dependency for Flex.)
-
Varun Gupta authored
-
- 15 Mar, 2017 4 commits
-
-
Varun Gupta authored
The fix is about filling the space beyond the end of VARCHAR values with zeroes. VARCHAR NULLs already has its buffer filled with zeros. So when the VARCHAR fields are not NULL, then we explicitly fill the buffer with zeros.
-
Varun Gupta authored
Added conditions so that the WITH queries are also added to the query cache
-
Oleksandr Byelkin authored
fix proposed by Diego
-
Alexey Botchkov authored
-
- 14 Mar, 2017 5 commits
-
-
Marko Mäkelä authored
dict_create_or_check_foreign_constraint_tables(): Change the warning about the foreign key metadata table creation to a note. Remove messages after metadata table creation. If the creation fails, startup will abort with a message. Normally the creation succeeds on bootstrap, and the messages would only be noise. Remove the related suppressions from the tests.
-
Alexey Botchkov authored
Now let's check JSON length to fit the max_allowed packet.
-
Alexey Botchkov authored
In get_mm_tree we have to change Field_geom::geom_type to GEOMETRY as we have to let storing all types of the spatial features in the field. So now we restore the original geom_type as it's done.
-
Alexey Botchkov authored
character ("). The my_wildcmp function doesn't expect the string parameter to have escapements, only the template. So the string should be unescaped if necessary.
-
Marko Mäkelä authored
row_purge_remove_sec_if_poss_leaf(): Add a debug assertion. row_purge_parse_undo_rec(): Add a debug assertion that the table cannot be a temporary table. Remove a dead condition.
-
- 13 Mar, 2017 10 commits
-
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
- add PAGESIZE property to the MSI installer - add combobox to the MSI UI to select innodb page size - add new parameter --innodb_page_size for mysql_install_db.exe. this is passed down to bootstrap and also stored in my.ini. MSI will call mysql_install_db.exe with --innodb_page_size set to the PAGESIZE property
-
Oleksandr Byelkin authored
fixed C++ comment in C code
-
Marko Mäkelä authored
Starting with MySQL 5.7, temporary tables in InnoDB are handled differently from persistent tables. Because temporary tables are private to a connection, concurrency control and multi-versioning (MVCC) are not applicable. For performance reasons, purge is disabled as well. Rollback is supported for temporary tables; that is why we have the temporary undo logs in the first place. Because MVCC and purge are disabled for temporary tables, we should discard all temporary undo logs already at transaction commit, just like we discard the persistent insert_undo logs. Before this change, update_undo logs were being preserved. trx_temp_undo_t: A wrapper for temporary undo logs, comprising a rollback segment and a single temporary undo log. trx_rsegs_t::m_noredo: Use trx_temp_undo_t. (Instead of insert_undo, update_undo, there will be a single undo.) trx_is_noredo_rseg_updated(), trx_is_rseg_assigned(): Remove. trx_undo_add_page(): Remove the parameter undo_ptr. Acquire and release the rollback segment mutex inside the function. trx_undo_free_last_page(): Remove the parameter trx. trx_undo_truncate_end(): Remove the parameter trx, and add the parameter is_temp. Clean up the code a bit. trx_undo_assign_undo(): Split the parameter undo_ptr into rseg, undo. trx_undo_commit_cleanup(): Renamed from trx_undo_insert_cleanup(). Replace the parameter undo_ptr with undo. This will discard the temporary undo or insert_undo log at commit/rollback. trx_purge_add_update_undo_to_history(), trx_undo_update_cleanup(): Remove 3 parameters. Always operate on the persistent update_undo. trx_serialise(): Renamed from trx_serialisation_number_get(). trx_write_serialisation_history(): Simplify the code flow. If there are no persistent changes, do not update MONITOR_TRX_COMMIT_UNDO. trx_commit_in_memory(): Simplify the logic, and add assertions. trx_undo_page_report_modify(): Keep a direct reference to the persistent update_undo log. trx_undo_report_row_operation(): Simplify some code. Always assign TRX_UNDO_INSERT for temporary undo logs. trx_prepare_low(): Keep only one parameter. Prepare all 3 undo logs. trx_roll_try_truncate(): Remove the parameter undo_ptr. Try to truncate all 3 undo logs of the transaction. trx_roll_pop_top_rec_of_trx_low(): Remove. trx_roll_pop_top_rec_of_trx(): Remove the redundant parameter trx->roll_limit. Clear roll_limit when exhausting the undo logs. Consider all 3 undo logs at once, prioritizing the persistent undo logs. row_undo(): Minor cleanup. Let trx_roll_pop_top_rec_of_trx() reset the trx->roll_limit.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
In the 10.1 InnoDB Plugin, a call os_event_free(buf_flush_event) was misplaced. The event could be triggered by rollback of resurrected transactions while shutdown was in progress. This bug was caught by cmake -DWITH_ASAN testing. This call was only present in the 10.1 InnoDB Plugin, not in other versions, or in XtraDB. That said, the bug affects all InnoDB versions. Shutdown assumes the cessation of any page-dirtying activity, including the activity of the background rollback thread. InnoDB only waited for the background rollback to finish as part of a slow shutdown (innodb_fast_shutdown=0). The default is a clean shutdown (innodb_fast_shutdown=1). In a scenario where InnoDB is killed, restarted, and shut down soon enough, the data files could become corrupted. logs_empty_and_mark_files_at_shutdown(): Wait for the rollback to finish, except if innodb_fast_shutdown=2 (crash-like shutdown) was requested. trx_rollback_or_clean_recovered(): Before choosing the next recovered transaction to roll back, terminate early if non-slow shutdown was initiated. Roll back everything on slow shutdown (innodb_fast_shutdown=0). srv_innodb_monitor_mutex: Declare as static, because the mutex is only used within one module. In 10.2, os_event_destroy() sets the event to a NULL pointer, while os_event_free() in earlier versions did not do that.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
os_sync_free(), which hid resource leaks, was removed in MySQL 5.7.
-
Oleksandr Byelkin authored
Take into acount result of open table operation in mysql_admin_table.
-
- 11 Mar, 2017 1 commit
-
-
Otto Kekäläinen authored
Compatibility links ended up looking like this: libmysqlclient.so.18 -> /tmp/buildd/mariadb-10.2-10.2.0/debian/tmp/usr/lib/i386-linux-gnu/libmariadb.so.3 This change fixes ln syntax to create links with correct target paths.
-
- 10 Mar, 2017 3 commits
-
-
Oleksandr Byelkin authored
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
Reason : after running sysbench tests (rw,update_no_index), in all cases the throughout was considerably (approx 15%) better with the patch removed. Reverted commit info commit 8dc03bee3ade2edcc53a3a257346f4a0a9f0b44c Author: Yasufumi Kinoshita <yasufumi.kinoshita@oracle.com> Date: Wed Nov 20 17:02:24 2013 +0900 Bug #17824101 : WL#7050 CAUSES RW PERFORMANCE REGRESSION AT SOME WINDOWS ENVIRONMENT
-