| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
merge_buffers
Fixed overflow error that caused fewer bites to be allocated than
necessary on Windows 64 bit. This is due to ulong being 32 bit on
64 bit Windows and 64 bit on 64 bit Linux.
|
|\ |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
on disconnect THD must clean user_var_events array before
dropping temporary tables. Otherwise when binlogging a DROP,
it'll access user_var_events, but they were allocated
in the already freed memroot.
|
| |
| |
| |
| |
| | |
take into account that argc can be 0
(if there were no commands on the command line)
|
| |
| |
| |
| |
| |
| |
| |
| | |
Don't use a fixed buffer for X509_NAME_oneline() in the client.
Do as the server does - allocate it dynamically.
For a test - regenerate certificates to have the server cert with
a long subject.
|
| |
| |
| |
| |
| |
| |
| |
| | |
ABORT_QUERY' failed in ha_rows filesort
if we clear the error status (in THD::clear_error())
make sure to clear the thd->killed == KILL_BAD_DATA too,
because it was caused by the error that we're clearing.
|
| |
| |
| |
| |
| |
| |
| | |
Remove the too restrictive bugfix for bug#67088.
FIFO can be used for general/slow logs, but lseek() and fsync() on
FIFO fail. And open() needs to be non-blocking, in case the other
end isn't reading.
|
| |
| |
| |
| | |
because current_thd is NULL and ER() causes sigsegv
|
| | |
|
|/
|
|
| |
The double call of ref used tables fixed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
slave and show variables of replication filters and show global status
Three-way deadlock:
T1: SHOW GLOBAL STATUS
-> acquire LOCK_status
T2: STOP SLAVE
-> acquire LOCK_active_mi
-> terminate_slave_thread()
-> -> cond_timedwait for handle_slave_sql to stop
T3: sql slave thread (same applies to io thread)
-> handle_slave_sql(), when exiting
-> -> THD::add_status_to_global()
-> -> -> wait for LOCK_status...
T1: SHOW GLOBAL STATUS
-> for "Slave_heartbeat_period" status variable
-> -> show_heartbeat_period()
-> -> -> wait for LOCK_active_mi
cherry-pick from 5.6:
commit fc8b395898f40387b3468122bd0dae31e29a6fde
Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com>
Date: Wed Jun 12 21:41:05 2013 +0530
BUG#16904035-SHOW STATUS - EXCESSIVE LOCKING ON LOCK_ACTIVE_MI AND
ACTIVE_MI->RLI->DATA_LOCK
Problem: Excessive locking on lock_active_mi and rli->data_lock
while executing any `show status like 'X'` command.
Analysis: SHOW_FUNCs for Slave_running, Slave_retried_transactions,
Slave_heartbeat_period, Slave_received_heartbeats,
Slave_last_heartbeat are acquiring lock_active_mi and rli->data_lock
to show their variable value. It is ok to show stale data while showing
the status variables i.e., even if they miss one update, it will
not cause any great trouble.
Fix: Remove the locks from the above mentioned SHOW_FUNC functions.
Add a test case
|
|\
| |
| |
| |
| | |
openquery/MDEV-7977-mutex-unlock_LOCK_log-in-MYSQL_BIN_LOG_write_incident
MDEV-7977 MYSQL_BIN_LOG::write_incident failing to release LOCK_log
|
| |
| |
| |
| | |
This adds a unlock(LOCK_log) for the unlikely(!is_open()) branch
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Taking into account implicit dependence of constant view field from nullable table of left join added.
Fixed finding real table to check if it turned to NULL (materialized view & derived taken into account)
Removed incorrect uninitialization.
|
| |
| |
| |
| |
| |
| | |
save_prep_leaf_tables() made recursive to work with underlying view
Arena restoiring fixed in case of EOM.
|
| |
| |
| |
| |
| |
| | |
convert_subq_to_sj() must check the results of in_equality->fix_fields()
call. It can fail in a meaningful way when e.g. we're trying to compare
columns with incompatible collations.
|
| |
| |
| |
| |
| | |
Cherry-picking https://github.com/olesalscheider/server/commit/fc4df415049271ef625783c31f2999e7d1bdc816
(it was a 10.1 pull request, we want it in 5.5)
|
| | |
|
|\ \
| | |
| | | |
MDEV-7820 Server crashes in in my_strcasecmp_utf8 on subquery in ORDER B...
|
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
clause of GROUP_CONCAT
It is possible for Item_field to have a NULL field_name. This is true if
the Item_field is created based on a field in a temporary table that has
no name. It is thus necessary to do a null check before attempting a
strcmp.
|
| |
| |
| |
| |
| |
| | |
Item_func_conv_charset::Item_func_conv_charset
Removing a wrong assertion.
|
|/
|
|
| |
Multi-update do not need full list of leaf tables. It also do not use it on prepare (mysql_multi_update_prepare()).
|
|
|
|
|
|
|
| |
buffer configurable.
The serve_audit_query_log_limit variable implemented.
Also QUERY_DCL filter added.
|
|
|
|
| |
Update test results after the patch for MDEV-7474.
|
|
|
|
|
|
|
|
| |
when using function.
Merged upstream fix to Bug#16221433 MYSQL REJECTS QUERY DUE TO BAD
RESOLUTION OF NAMES IN HAVING; VIEW UNREADABLE
authored by Guilhem Bichot <guilhem.bichot@oracle.com>.
|
|
|
|
|
|
|
| |
If the spatial key is used within an equality comparison, the comparison
does not produce relevant results generally as identical geometry can be
stored differently. Still, we want to support the operation. In order
to allow a hash join plan, we must define a key_length for Field_geom.
|
|
|
|
|
| |
plugin_variable_update() can get NULL as a value for a string parameter.
Needs to be checked and handled properly.
|
|
|
|
|
|
|
|
|
|
| |
JOIN::cur_dups_producing_tables was not maintained correctly in
the cases of greedy optimization (search_depth < n_tables).
Moved it to POSITION structure where it will be maintained automatically.
Removed POSITION::prefix_dups_producing_tables since its value can now
be calculated.
|
|
|
|
|
|
|
|
| |
'xtradb' fails - @@version_comment
The test checked version_comment which is not helpful, and it would
cause the mismatch on any build apart from default source builds.
Fixed by removing the check
|
|
|
|
|
|
|
|
| |
1) fix 5.5.42 vs 5.5.41 problem, nested links;
2) fix older MariaDB vs MySQL problem, var_auto_** dirs were not
removed from the tmpfs location.
Both problems were caused by vardir being expanded to real path
too early, in two different places in the script code
|
|
|
|
|
| |
otherwise innodb plugin might invoke xtradb function with the same name,
and that might crash (./mtr --emb innodb.strict_mode)
|
|
|
|
| |
update test results after the fix
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
safe_process puts its children (mysqld, in this case) into a separate
process group, to be able to kill it all at once.
buildslave kills mtr's process group when it loses connection to
the master.
result? buildslave kills mtr and safe_process, but leaves stale
mysqld processes in their own process groups.
fix: put safe_process itself into a separate process group, then
buildslave won't kill it and safe_process will kill mysqld'd
and itself when it will notice that the parent mtr no longer exists.
|
|
|
|
|
|
|
|
|
| |
Analysis: after a red-black-tree lookup we use node withouth
checking did lookup succeed or not. This lead to situation
where NULL-pointer was used.
Fix: Add additional check that found node from red-back-tree
is valid.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
master when using RBR
Analysis: On master when executing (single/multi) row INSERTs/REPLACEs
InnoDB fallback to old style autoinc locks (table locks)
only if another transaction has already acquired the AUTOINC lock.
Instead on slave as we are executing log_events and sql_command
is not correctly set, InnoDB does not use new style autoinc
locks when it could.
Fix: Use new style autoinc locks also when
thd_sql_command(user_thd) == SQLCOM_END i.e. this is RBR event.
|
|
|
|
|
|
|
|
|
|
|
| |
This bug manifests due to wrong computation and evaluation of
keyinfo->key_length. The issues were:
* Using table->file->max_key_length() as an absolute value that must not be
reached for a key, while it represents the maximum number of bytes
possible for a table key.
* Incorrectly computing the keyinfo->key_length size during
KEY_PART_INFO creation. The metadata information regarding the key
such the field length (for strings) was added twice.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
group commit
When the binlog was rotated due to @@max_binlog_size, the values of the
binlog_shapshot_file and binlog_snapshot_position were inconsistent in case of
non-transactional DML. The position was refering to the old file, while the
filename was of the new file after rotation. This patch makes them consistent
by making sure the position is also refering to the new file.
|
|
|
|
|
|
| |
Start the client API for low-level protocol access:
* unsigned long mysql_net_read_packet(MYSQL *mysql);
* unsigned long mysql_net_field_length(unsigned char **packet);
|
|\ |
|
| |\ |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
* fix /etc/init.d/mysql to use log-basename for pid-filename
* fix mysqld_safe not to force logging-to-file when log-basename is specified
|