BitKeeper/etc/ignore:
Added mysql-test/suite/funcs_1/r/innodb_views.warnings mysql-test/suite/funcs_1/r/memory_trig_03e.warnings mysql-test/suite/funcs_1/r/memory_views.warnings mysql-test/suite/funcs_1/r/myisam_trig_03e.warnings mysql-test/suite/funcs_1/r/myisam_views.warnings mysql-test/suite/funcs_1/r/ndb_trig_03e.warnings mysql-test/suite/funcs_1/r/ndb_views.warnings mysql-test/suite/partitions/r/diff mysql-test/suite/partitions/r/partition_bit_ndb.warnings mysql-test/suite/partitions/r/partition_special_innodb.warnings mysql-test/suite/partitions/r/partition_special_myisam.warnings storage/archive/archive_reader mysql-test/suite/funcs_1/r/innodb_trig_03e.warnings to the ignore list
mysql-test/suite/funcs_2/include/check_charset.inc:
inserted newline at the end of file.
mysql-test/suite/objects/include/drop_all.inc:
inserted newline at the end of file.
mysql-test/suite/partitions/include/partition_key_32col.inc:
inserted newline at the end of file.
mysql-test/suite/rpl/data/rpl_mixed.dat:
inserted newline at the end of file.
mysql-test/suite/rpl/include/rpl_mixed_check_event.inc:
inserted newline at the end of file.
mysql-test/suite/rpl/include/rpl_mixed_check_select.inc:
inserted newline at the end of file.
mysql-test/suite/rpl/include/rpl_mixed_check_user.inc:
inserted newline at the end of file.
mysql-test/suite/rpl/include/rpl_mixed_check_view.inc:
inserted newline at the end of file.
into mysql.com:/home/gluh/MySQL/Merge/5.1-opt
mysql-test/r/distinct.result:
Auto merged
mysql-test/r/join_nested.result:
Auto merged
mysql-test/r/null_key.result:
Auto merged
mysql-test/r/select.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/r/subselect3.result:
Auto merged
mysql-test/r/trigger.result:
Auto merged
mysql-test/t/select.test:
Auto merged
mysql-test/t/subselect.test:
Auto merged
mysql-test/t/trigger.test:
Auto merged
sql/filesort.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/opt_sum.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.cc:
Auto merged
mysql-test/r/func_time.result:
manual merge
mysql-test/r/information_schema.result:
manual merge
mysql-test/t/func_time.test:
manual merge
mysql-test/t/information_schema.test:
manual merge
sql/opt_range.cc:
manual merge
sql/sql_delete.cc:
manual merge
sql/sql_lex.h:
manual merge
additional call of file->extra() method with HA_EXTRA_NO_CACHE parameter
mysql-test/r/information_schema.result:
test result
mysql-test/t/information_schema.test:
test case
sql/sql_show.cc:
additional call of file->extra() method with HA_EXTRA_NO_CACHE parameter
into rakia.gmz:/home/kgeorge/mysql/autopush/B23556-5.1-opt
mysql-test/r/grant.result:
Auto merged
mysql-test/t/grant.test:
Auto merged
sql/sql_parse.cc:
Auto merged
The bug could cause choosing a sub-optimal execution plan for
a single-table query if a unique index with many null keys were
defined for the table.
It happened because the code of the check_quick_keys function
made an assumption that any key may occur in an unique index
only once. Yet this is not true for keys with nulls that may
have multiple occurrences in the index.
mysql-test/r/null_key.result:
Fixed bug #25407
Adjusted result after the fix.
mysql-test/r/select.result:
Added a test case for bug #25407.
mysql-test/t/select.test:
Added a test case for bug #25407.
into rakia.gmz:/home/kgeorge/mysql/autopush/B25575-5.0-opt
sql/mysql_priv.h:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.cc:
Auto merged
Two problems here:
Problem 1:
While constructing the join columns list the optimizer does as follows:
1. Sets the join_using_fields/natural_join members of the right JOIN
operand.
2. Makes a "table reference" (TABLE_LIST) to parent the two tables.
3. Assigns the join_using_fields/is_natural_join of the wrapper table
using join_using_fields/natural_join of the rightmost table
4. Sets join_using_fields to NULL for the right JOIN operand.
5. Passes the parent table up to the same procedure on the upper
level.
Step 1 overrides the the join_using_fields that are set for a nested
join wrapping table in step 4.
Fixed by making a designated variable SELECT_LEX::prev_join_using to
pass the data from step 1 to step 4 without destroying the wrapping
table data.
Problem 2:
The optimizer checks for ambiguous columns while transforming
NATURAL JOIN/JOIN USING to JOIN ON. While doing that there was no
distinction between columns that are used in the generated join
condition (where ambiguity can be checked) and the other columns
(where ambiguity can be checked only when resolving references
coming from outside the JOIN construct itself).
Fixed by allowing the non-USING columns to be present in multiple
copies in both sides of the join and moving the ambiguity check
to the place where unqualified references to the join columns are
resolved (find_field_in_natural_join()).
mysql-test/r/join_nested.result:
BUG#25575: ERROR 1052 (Column in from clause is ambiguous) with sub-join
- test case
mysql-test/t/join_nested.test:
BUG#25575: ERROR 1052 (Column in from clause is ambiguous) with sub-join
- test case
sql/mysql_priv.h:
BUG#25575: ERROR 1052 (Column in from clause is ambiguous) with sub-join
- use SELECT_LEX to store the ref to JOIN USING list needed by the
parser
sql/sql_base.cc:
BUG#25575: ERROR 1052 (Column in from clause is ambiguous) with sub-join
- proper check for duplicate cols
- more detailed debug output
sql/sql_lex.h:
BUG#25575: ERROR 1052 (Column in from clause is ambiguous) with sub-join
- use SELECT_LEX to store the ref to JOIN USING list needed by the
parser
sql/sql_parse.cc:
BUG#25575: ERROR 1052 (Column in from clause is ambiguous) with sub-join
- proper check for duplicate cols in JOIN USING
sql/sql_yacc.yy:
BUG#25575: ERROR 1052 (Column in from clause is ambiguous) with sub-join
- use SELECT_LEX to store the ref to JOIN USING list needed by the
parser
sql/table.cc:
BUG#25575: ERROR 1052 (Column in from clause is ambiguous) with sub-join
- return null if no table ref (as in nested join columns).
The optimizer takes away columns from GROUP BY/DISTINCT if they constitute
all the parts of an unique index.
However if some of the columns can contain NULLs this cannot be done
(because an UNIQUE index can have multiple rows with NULL values).
Fixed by not using UNIQUE indexes with nullable columns to remove
grouping columns from GROUP BY/DISTINCT.
mysql-test/r/distinct.result:
Bug #25551: inconsistent behaviour in grouping NULL, depending on index type
- test case
mysql-test/t/distinct.test:
Bug #25551: inconsistent behaviour in grouping NULL, depending on index type
- test case
sql/sql_select.cc:
Bug #25551: inconsistent behaviour in grouping NULL, depending on index type
- UNIQUE NULL indices don't guarantee GROUP BY/DISTINCT.
Checking for NULL before calling the val_xxx()
methods only checks for such arguments that are
known to be NULLs at compile time.
The arguments that may or may not contain
NULLs (e.g. function calls and possibly others)
are not checked at all.
Fixed by first calling the val_xxx() method and
then checking for null in SEC_TO_TIME().
In addition QUARTER() was not returning 0 (as all the
val_int() functions do when processing a NULL value).
mysql-test/r/func_time.result:
Bug #25643: SEC_TO_TIME function problem
- test case
mysql-test/t/func_time.test:
Bug #25643: SEC_TO_TIME function problem
- test case
sql/item_timefunc.cc:
Bug #25643: SEC_TO_TIME function problem
- null handling fixed for QUARTER() and SEC_TO_TIME()
client/client_priv.h:
More options
client/mysqlslap.c:
Extended the auto-sql in the following ways:
1) You can now specify a load type of either "mixed", "read", or "write". Not great, but a definite improvement.
2) A new option allows you to specify how many rows are inserted for the "read" load.
I also fixed a bug where limit was not being reached by running threads.
mysql-test/r/mysqlslap.result:
Updated results
The function that checks whether we can use keys for aggregates,
find_key_for_maxmin(), assumes that keys disabled by ALTER TABLE
... DISABLE KEYS are not in the set table->keys_in_use_for_query.
I.E., if a key is in this set, the optimizer assumes it is free to
use it.
The bug is that keys disabled with ALTER TABLE ... DISABLE KEYS still
appear in table->keys_in_use_for_query When the TABLE object has been
initialized with setup_tables(). Before setup_tables is called, however,
keys that are disabled in the aforementioned way are not included in
TABLE::keys_in_use_for_query.
The provided patch changes the code that updates keys_is_use_for_query so
that it assumes that keys_is_use_for_query already takes into account all
disabled keys, and generally all keys that should be used by the query.
mysql-test/r/key.result:
Test for BUG#20604.
The important part of the test is the explain output that
tests what indexes are used.
mysql-test/t/key.test:
The minimal test case that reveals the bug. The optimizer for
aggregates relies on keys disabled with ALTER TABLE ... DISABLE KEYS
not being in the set TABLE::keys_in_use_for_query.
When the execution engine tries to use a disabled index, MyISAM
returns an error.
sql/sql_base.cc:
Exclude the keys disabled by ALTER TABLE ... DISABLE_KEYS
from TABLE::keys_in_use_for_query, and in general, don't
introduce any new keys. We may not know why keys have been
removed at previous stages.
sql/sql_select.cc:
The intersection operation between table->s->keys_in_use and
table->keys_in_use_for_query is no longer necessary.
We can trust that the latter is a subset of the former.
sql/table.h:
Added comments to TABLE_SHARE::keys_in_use and
TABLE::keys_in_use_for_query.
Objects of the classes Item_func_is_not_null_test and Item_func_trig_cond
must be transparent for the method Item::split_sum_func2 as these classes
are pure helpers. It means that the method Item::split_sum_func2 should
look at those objects as at pure wrappers.
mysql-test/r/subselect3.result:
Added a test case for bug #24420.
mysql-test/t/subselect3.test:
Added a test case for bug #24420.
1) Two small windows cleanups for Archive.
2) Patch from Calvin for Falcon to be able to have its own I_S loaded. One example added for this, does hello world.
include/mysql/plugin.h:
Added new I_S type.
mysql-test/r/archive.result:
Fixed not dropped table.
mysql-test/t/archive.test:
Added additional drop table
sql/sql_plugin.cc:
Adding support in for the I_S.
sql/sql_show.cc:
Added schema type for plugin I_S. Additional loops were added to pop these on to the end of requests.
storage/archive/ha_archive.cc:
Windwos typo
mysql-test/r/archive.result:
Modified error output
mysql-test/t/archive.test:
Fix for the change in behavior
storage/archive/ha_archive.cc:
ifdef of the search record code
It also refactors the test case for Archive (removed two bad tests).
mysql-test/r/archive.result:
refactor archive test
mysql-test/t/archive.test:
Large refactoring of Archive test
storage/archive/ha_archive.cc:
Updated comments.
Added NULL packing hack
Fixed bug in wrong display of auto increment in show create table
into mysql.com:/home/gluh/MySQL/Merge/5.1
mysql-test/r/view.result:
Auto merged
mysql-test/t/innodb.test:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/item.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_update.cc:
Auto merged
The bug report has demonstrated the following two problems.
1. If an ORDER/GROUP BY list includes a constant expression being
optimized away and, at the same time, containing single-row
subselects that return more that one row, no error is reported.
Strictly speaking the standard allows to ignore error in this case.
Yet, now a corresponding fatal error is reported in this case.
2. If a query requires sorting by expressions containing single-row
subselects that, however, return more than one row, then the execution
of the query may cause a server crash.
To fix this some code has been added that blocks execution of a subselect
item in case of a fatal error in the method Item_subselect::exec.
mysql-test/r/subselect.result:
Added a test cases for bug #24653.
mysql-test/t/subselect.test:
Added a test cases for bug #24653.
sql/filesort.cc:
Fixed bug #24653.
Added a check for fatal error after reading the next row from the table
in the function find_all_keys.
sql/item.cc:
Fixed bug #24653.
Down-ported calculation of the attribute with_subselect of for Item objects.
sql/item.h:
Fixed bug #24653.
Down-ported calculation of the attribute with_subselect of for Item objects.
sql/item_cmpfunc.cc:
Fixed bug #24653.
Down-ported calculation of the attribute with_subselect of for Item objects.
sql/item_cmpfunc.h:
Fixed bug #24653.
Down-ported calculation of the attribute with_subselect of for Item objects.
sql/item_func.cc:
Fixed bug #24653.
Down-ported calculation of the attribute with_subselect of for Item objects.
sql/item_subselect.cc:
Fixed bug #24653.
Added a check for fatal error in the method Item_subselect::exec
to block evaluation of subselects in erroneous situations.
Down-ported calculation of the attribute with_subselect of for Item objects.
sql/sql_select.cc:
Fixed bug #24653.
Added a check to verify that any constant expression used
in ORDER BY and/or GROUP BY lists which is optimized away
does not contain subselects returning more than one row.
If it does a fatal error is reported.
into mysql.com:/home/svoj/devel/mysql/merge/mysql-5.1-engines
mysql-test/r/symlink.result:
Auto merged
mysql-test/t/symlink.test:
Auto merged
sql/lock.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/table.cc:
Auto merged
storage/federated/ha_federated.cc:
Auto merged
storage/myisam/mi_check.c:
Auto merged
storage/myisam/mi_packrec.c:
Auto merged
mysql-test/r/myisam.result:
Manually merged.
mysql-test/t/myisam.test:
Manually merged.
into mysql.com:/home/svoj/devel/mysql/merge/mysql-5.0-engines
mysql-test/r/symlink.result:
Auto merged
mysql-test/t/symlink.test:
Auto merged
sql/table.cc:
Auto merged
mysql-test/r/myisam.result:
Manually merged.
mysql-test/t/myisam.test:
Manually merged.
into mysql.com:/home/psergey/mysql-5.1-bug8804-r12-merge
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/item_subselect.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_select.h:
Auto merged
mysql-test/r/ndb_subquery.result:
Manual merge
mysql-test/r/subselect.result:
Manual merge
mysql-test/r/subselect3.result:
Manual merge
sql/item_subselect.cc:
Manual merge
into mockturtle.local:/home/dlenev/src/mysql-5.1-merge
mysql-test/t/ps.test:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_class.cc:
Auto merged
mysql-test/t/disabled.def:
Manual merge.