In fix for BUG#15872, a condition of type "t.key NOT IN (c1, .... cN)"
where N>1000, was incorrectly converted to
(-inf < X < c_min) OR (c_max < X)
Now this conversion is removed, we dont produce any range lists for such
conditions.
mysql-test/r/range.result:
BUG#21282: Testcase
mysql-test/t/range.test:
BUG#21282: Testcase
sql/opt_range.cc:
BUG#21282: Incorrect query results for "t.key NOT IN (<big const list>)
In fix for BUG#15872, a condition of type "t.key NOT IN (c1, .... cN)"
where N>1000, was incorrectly converted to
(-inf < X < c_min) OR (c_max < X)
Now this conversion is removed, we dont produce any range lists for such
conditions.
- undeterminstic tests fixed
mysql-test/r/order_by.result:
Bug #21302: Result not properly sorted when using an ORDER BY on a second table in a join
- more undeterminstic tests fixed
mysql-test/t/order_by.test:
Bug #21302: Result not properly sorted when using an ORDER BY on a second table in a join
- more undeterminstic tests fixed
Disable const propagation for Item_hex_string.
This must be done because Item_hex_string->val_int() is not
the same as (Item_hex_string->val_str() in BINARY column)->val_int().
We cannot simply disable the replacement in a particular context (
e.g. <bin_col> = <int_col> AND <bin_col> = <hex_string>) since
Items don't know the context they are in and there are functions like
IF (<hex_string>, 'yes', 'no').
Note that this will disable some valid cases as well
(e.g. : <bin_col> = <hex_string> AND <bin_col2> = <bin_col>) but
there's no way to distinguish the valid cases without having the
Item's parent say something like : Item->set_context(Item::STRING_RESULT)
and have all the Items that contain other Items do that consistently.
mysql-test/r/compare.result:
Bug #21159: Optimizer: wrong result after AND with different data types
- test case
mysql-test/t/compare.test:
Bug #21159: Optimizer: wrong result after AND with different data types
- test case
sql/sql_select.cc:
Bug #21159: Optimizer: wrong result after AND with different data types
- disable const propagation for Item_hex_string.
optimizer does not honor IGNORE INDEX
- Allow an index to be used for sorting the table
instead of filesort only if it is not disabled by
IGNORE INDEX.
mysql-test/r/group_by.result:
Bug #21174: Index degrades sort performance and
optimizer does not honor IGNORE INDEX
- test case
mysql-test/t/group_by.test:
Bug #21174: Index degrades sort performance and
optimizer does not honor IGNORE INDEX
- test case
table in a join
The optimizer removes redundant columns in ORDER BY. It is considering
redundant every reference to const table column, e.g b in :
create table t1 (a int, b int, primary key(a));
select 1 from t1 order by b where a = 1
But it must not remove references to const table columns if the
const table is an outer table because there still can be 2 values :
the const value and NULL. e.g.:
create table t1 (a int, b int, primary key(a));
select t2.b c from t1 left join t1 t2 on (t1.a = t2.a and t2.a = 5)
order by c;
mysql-test/r/join_outer.result:
Bug #21302: Result not properly sorted when using an ORDER BY on a second
table in a join
- don't remove columns of const tables in ORDER BY if the const table
is an outer table.
mysql-test/r/order_by.result:
Bug #21302: Result not properly sorted when using an ORDER BY on a second
table in a join
- test case
mysql-test/t/order_by.test:
Bug #21302: Result not properly sorted when using an ORDER BY on a second
table in a join
- test case
sql/sql_select.cc:
Bug #21302: Result not properly sorted when using an ORDER BY on a second
table in a join
- don't remove columns of const tables in ORDER BY if the const table
is an outer table.
into may.pils.ru:/home/svoj/devel/mysql/BUG7391/mysql-5.0
mysql-test/r/grant.result:
Manual merge: use local.
mysql-test/t/grant.test:
Manual merge: use local.
sql/sql_update.cc:
Manual merge: use local.
mysql-test/r/grant2.result:
Merge update: Change between versions, it appears.
mysql-test/r/heap_btree.result:
Merge update: Add deterministic ordering of data, as the order is different
between versions.
mysql-test/r/mysql_client.result:
Merge update: Help options changed between versions.
mysql-test/t/heap_btree.test:
Merge update: Add deterministic ordering of data, as the order is different
between versions.
BitKeeper/deleted/.del-bug20328.test~c76d766fe3e1eb5:
Delete: mysql-test/t/bug20328.test
BitKeeper/deleted/.del-bug20328.result~4fee68989442c2a3:
Delete: mysql-test/r/bug20328.result
Problem described in this bug report affects MyISAM tables only.
Running mysqld --flush instructs mysqld to sync all changes to disk
after each SQL statement. It worked well for INSERT and DELETE
statements, but it did sync for UPDATE only in case if there was
index change (change of colum that has an index). If no updated column
has an index, data wasn't synced to disk.
This fix makes UPDATE statement to sync data to disk even if there is
no index change (that is only data change) and mysqld is run with
--flush option.
myisam/mi_update.c:
Every myisam function that updates myisam table must end with
call to _mi_writeinfo(). If operation (second param of
_mi_writeinfo()) is not 0 it sets share->changed to 1, that is
flags that data has changed. If operation is 0, this function
equals to no-op in this case.
mi_update() must always pass !0 value as operation, since even if
there is no index change there could be data change.
into sunlight.local:/local_work/leak_fix
sql/sql_base.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/table.cc:
Auto merged
sql/sql_view.cc:
Manually merged
into neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
client/mysql.cc:
Auto merged
client/mysqldump.c:
Auto merged
configure.in:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/item_strfunc.h:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_yacc.yy:
Auto merged
client/mysqldump.c:
Remove double error printout, mysql_query_with_error_report will do that. And set the exit code for us.
mysql-test/r/mysqldump.result:
Update test result after merge
into neptunus.(none):/home/msvensson/mysql/mysql-5.0
client/mysql.cc:
Auto merged
configure.in:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/item_strfunc.h:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_yacc.yy:
Auto merged
client/mysqldump.c:
Manual merge
mysql-test/r/mysqldump.result:
Manual merge
mysql-test/t/mysqldump.test:
Manual merge
privileges
This problem is 4.1 specific. It doesn't affect 4.0 and was fixed
in 5.x before.
Having any mysql user who is allowed to issue multi table update
statement and any column/table grants, allows this user to update
any table on a server (mysql grant tables are not exception).
check_grant() accepts number of tables (in table list) to be checked
in 5-th param. While checking grants for multi table update, number
of tables must be 1. It must never be 0 (actually we have
DBUG_ASSERT(number > 0) in 5.x in grant_check() function).
mysql-test/r/grant.result:
Addition to test case for bug#7391:
- Added grant statement to trigger this problem in 4.1.
- Fixed error messages.
mysql-test/t/grant.test:
Addition to test case for bug#7391:
- Added grant statement to trigger this problem in 4.1.
- Fixed error messages.
sql/sql_update.cc:
check_grant() accepts number of tables (in table list) to be checked
in 5-th param. For this particular check number of tables must be 1.
It must never be 0 (actually we have DBUG_ASSERT(number > 0) in 5.x
in grant_check() function).
into neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
client/mysql.cc:
Auto merged
client/mysqltest.c:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/date_formats.result:
Auto merged
mysql-test/r/union.result:
Auto merged
mysql-test/t/union.test:
Auto merged
sql/field.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/item_strfunc.h:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/item_sum.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/r/func_group.result:
Merge manually
mysql-test/t/func_group.test:
Merge manually
into rama.(none):/home/jimw/my/mysql-5.0-16502
client/mysql.cc:
Auto merged
mysql-test/r/date_formats.result:
Auto merged
mysql-test/r/mysql.result:
Auto merged
mysql-test/r/type_ranges.result:
Auto merged
mysql-test/t/mysql.test:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/item_strfunc.h:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_yacc.yy:
Auto merged
into bodhi.local:/opt/local/work/mysql-5.0-runtime-merge
sql/item.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_view.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.h:
Auto merged
mysql-test/r/sp.result:
Manual merge.
mysql-test/r/udf.result:
Manual merge.
mysql-test/t/sp.test:
Manual merge.
mysql-test/t/udf.test:
Manual merge.
set.
(Ramil's patch, recreated.)
heap/hp_delete.c:
Reset info->lastkey_len for further heap_rnext/heap_rprev calls.
mysql-test/r/heap_btree.result:
Test for bug #9719: DELETE with WHERE on HEAP table just deletes first
row of matched set.
mysql-test/t/heap_btree.test:
Test for bug #9719: DELETE with WHERE on HEAP table just deletes first
row of matched set.