UPDATE contains wrong data if the SELECT employs a temporary table.
If the UPDATE values of the INSERT .. SELECT .. ON DUPLICATE KEY UPDATE
statement contains fields from the SELECT part and the select employs a
temporary table then those fields will contain wrong values because they
aren't corrected to get data from the temporary table.
The solution is to add these fields to the selects all_fields list,
to store pointers to those fields in the selects ref_pointer_array and
to access them via Item_ref objects.
The substitution for Item_ref objects is done in the new function called
Item_field::update_value_transformer(). It is called through the
item->transform() mechanism at the end of the select_insert::prepare()
function.
When opening/creating the transaction coordinator's log, if binlog is
used, the tc log is the binlog so we use the binlog's name; otherwise
we use the mmap-based log, named after the mandatory argument of the
--log-tc option (meant for that).
duplicate key entries on slave" (two concurrrent connections doing
multi-row INSERT DELAYED to insert into an auto_increment column,
caused replication slave to stop with "duplicate key error" (and
binlog was wrong)), and BUG#26116 "If multi-row INSERT
DELAYED has errors, statement-based binlogging breaks" (the binlog
was not accounting for all rows inserted, or slave could stop).
The fix is that: if (statement-based) binlogging is on, a multi-row
INSERT DELAYED is silently converted to a non-delayed INSERT.
Note: it is not possible to test BUG#25507 in 5.0 (requires mysqlslap),
so it is tested only in the changeset for 5.1. However, BUG#26116
is tested here, and the fix for BUG#25507 is the same code change.
were evaluated.
According to the new rules for string comparison partial indexes on text
columns can be used in the same cases when partial indexes on varchar
columns can be used.
remove SET_VAR_REQ,REF,CONF - unused, #if 0 and confusing
Remove the dead SET_VAR_REQ,REF,CONF signals.
They:
a) don't currently work
b) will cause confusion with future mgmd updates for
signal interface to configuration things (e.g. port numbers)
Don't send uninit data in TAMPER_ORD to DIHNDBTAMPER
Even though this data is unused from the CMVMI (mgmd) signal,
we shouldn't be doing stuff with uninited data.
there is backwards compatibility for GET CONFIG style configuration requests in
ndb_mgmd. None of the ndbd versions that use this couldn't possibly connect to a
5.0 or 5.1 cluster. remove the backwards compat
remove it
indicate units in SocketOutputStream timeout
rename timeout in SocketOutputStream to reflect units (ms)
In 5.0 as well as is safe cleanup patch that will help with merging.
Showstopper and regression against 5.0.24.
Previously, we ignored seek() errors (see Bug#22828) and let seek()s
against pipes fail. Now, since we check that a seek didn't fail,
and return without reading, this bug popped up.
This restores the behavior for file-ish objects that could never be
seek()ed.