LOCK_thread_count)" and for BUG#12004 "SHOW BINARY LOGS reports 0
for the size of all binlogs but the current one".
There are a lot of 4.1->5.0 unmerged changes (hardest are in the optimizer), can't merge; still pushing in 4.1 because my changes
are very small. Feel free to ask me if you have problems merging them.
Added a test case for bug #11745.
sql_select.cc:
Fixed bug # 11745.
Added support of where clause for queries with FROM DUAL.
sql_yacc.yy:
Fixed bug # 11745.
Added optional where clause for queries with FROM DUAL.
"Negative integer keys incorrectly substituted for 0 during range analysis."
The problem is that the range optimizer incorrectly replaces any negative
constant with '0' for all types except BIGINT because the method save_in_field()
casts negative integers to non-negative. This causes incorrect query
results where (0 = any_negative_number).
The problem caused by this bug is fixed by the patch for BUG#11185.
That patch constitutes an optimization due to which the problem code is
never called with negative constants. This patch adds a test so we are sure
that the problem does not reappear.
disabled if ref is built with a key from the updated table
Problem was in add_not_null_conds() optimization function.
It contains following code:
JOIN_TAB *referred_tab= not_null_item->field->table->reginfo.join_tab;
...
add_cond_and_fix(&referred_tab->select_cond, notnull);
For UPDATE described in bug report referred_tab is 0 and dereferencing it
crashes the server.
of system vars at PREPARE time": implement a special Item
to handle system variables. This item substitutes itself with
a basic constant containing variable value at fix_fields.
than in previous 4.1.x
Wrongly applied optimization were adding NOT NULL constraint which results in
rejecting valid rows and reduced result set.
The problem was that add_notnull_conds() while checking subquery were adding
NOT NULL constraint to left joined table, to which, normally, optimization
don't have to be applied.
- Fixed problem, only detect comment if the # is on start of line AND starting line of the current command.
- Wrote tests for most of the mysqltest commands, added stricter checking of correct syntax.
No separate typecode for MEDIUMTEXT/LONGTEXT is added, as we
have no sound decision yet what typecodes and for what types are
sent by the server (aka what constitutes a distinct type in MySQL).
data": remove the fix for another bug (8807) that
added OUTER_REF_TABLE_BIT to all subqueries that used a placeholder
to prevent their evaluation at prepare. As this bit hanged in
Item_subselect::used_tables_cache for ever, a constant subquery with
a placeholder was never evaluated as such, which caused wrong
choice of the execution plan for the statement.
- to fix Bug#8807 backport a better fix from 5.0
- post-review fixes.
adding test case
sql_table.cc:
sql_table.cc:
- do not create a new item when charsets are the same
- return ER_INVALID_DEFAULT if default value cannot
be converted into the column character set.
item.cc:
- Allow conversion not only to Unicode,
but also to and from "binary".
- Adding safe_charset_converter() for Item_num
and Item_varbinary, returning a fixed const Item.
The problem here is that columns that have an especially long type
such as an enum type with many options would be longer than 40 chars
but the type column returned from show columns always was defined
as varchar(40).
This is fixed in 5.0 using info schema.
Bug#11591
CHAR column with utf8 does not work properly
(more chars than expected)
do_cut_string didn't call well_formed_length,
and copied all data, which was wrong in the
case of multibyte character set.
ctype_utf8.result, ctype_utf8.test:
adding test case