This allows one to run the test suite even if any of the following
options are changed:
- character-set-server
- collation-server
- join-cache-level
- log-basename
- max-allowed-packet
- optimizer-switch
- query-cache-size and query-cache-type
- skip-name-resolve
- table-definition-cache
- table-open-cache
- Some innodb options
etc
Changes:
- Don't print out the value of system variables as one can't depend on
them to being constants.
- Don't set global variables to 'default' as the default may not
be the same as the test was started with if there was an additional
option file. Instead save original value and reset it at end of test.
- Test that depends on the latin1 character set should include
default_charset.inc or set the character set to latin1
- Test that depends on the original optimizer switch, should include
default_optimizer_switch.inc
- Test that depends on the value of a specific system variable should
set it in the test (like optimizer_use_condition_selectivity)
- Split subselect3.test into subselect3.test and subselect3.inc to
make it easier to set and reset system variables.
- Added .opt files for test that required specfic options that could
be changed by external configuration files.
- Fixed result files in rockdsb & tokudb that had not been updated for
a while.
- Change the default flag value to ON.
- Update the testcases to be run extended_keys=ON:
= trivial test result updates
= If extended_keys setting makes a difference for a testcase, run the testcase
with extended_keys=off. There were only a few such cases
- Update to vcol_select_innodb looks like a worse plan but it will be gone in 10.0.
The code of JOIN::optimize that performed substitutions for the best equal
field in all ref items did not take into account that a multiple equality
could contain the result of the single-value subquery if the subquery is
inexpensive. This code was corrected.
Also made necessary corresponding corrections in the code of make_join_select().
MDEV-567: Wrong result from a query with correlated subquery if ICP is allowed:
backport the fix developed for SHOW EXPLAIN:
revision-id: psergey@askmonty.org-20120719115219-212cxmm6qvf0wlrb
branch nick: 5.5-show-explain-r21
timestamp: Thu 2012-07-19 15:52:19 +0400
BUG#992942 & MDEV-325: Pre-liminary commit for testing
and adjust it so that it handles DS-MRR scans correctly.
.. into MariaDB 5.3
Fix for Bug#12667154 SAME QUERY EXEC AS WHERE SUBQ GIVES DIFFERENT
RESULTS ON IN() & NOT IN() COMP #3
This bug causes a wrong result in mysql-trunk when ICP is used
and bad performance in mysql-5.5 and mysql-trunk.
Using the query from bug report to explain what happens and causes
the wrong result from the query when ICP is enabled:
1. The t3 table contains four records. The outer query will read
these and for each of these it will execute the subquery.
2. Before the first execution of the subquery it will be optimized. In
this case the important is what happens to the first table t1:
-make_join_select() will call the range optimizer which decides
that t1 should be accessed using a range scan on the k1 index
It creates a QUICK_RANGE_SELECT object for this.
-As the last part of optimization the ICP code pushes the
condition down to the storage engine for table t1 on the k1 index.
This produces the following information in the explain for this table:
2 DEPENDENT SUBQUERY t1 range k1 k1 5 NULL 3 Using index condition; Using filesort
Note the use of filesort.
3. The first execution of the subquery does (among other things) due
to the need for sorting:
a. Call create_sort_index() which again will call find_all_keys():
b. find_all_keys() will read the required keys for all qualifying
rows from the storage engine. To do this it checks if it has a
quick-select for the table. It will use the quick-select for
reading records. In this case it will read four records from the
storage engine (based on the range criteria). The storage engine
will evaluate the pushed index condition for each record.
c. At the end of create_sort_index() there is code that cleans up a
lot of stuff on the join tab. One of the things that is cleaned
is the select object. The result of this is that the
quick-select object created in make_join_select is deleted.
4. The second execution of the subquery does the same as the first but
the result is different:
a. Call create_sort_index() which again will call find_all_keys()
(same as for the first execution)
b. find_all_keys() will read the keys from the storage engine. To
do this it checks if it has a quick-select for the table. Now
there is NO quick-select object(!) (since it was deleted in
step 3c). So find_all_keys defaults to read the table using a
table scan instead. So instead of reading the four relevant records
in the range it reads the entire table (6 records). It then
evaluates the table's condition (and here it goes wrong). Since
the entire condition has been pushed down to the storage engine
using ICP all 6 records qualify. (Note that the storage engine
will not evaluate the pushed index condition in this case since
it was pushed for the k1 index and now we do a table scan
without any index being used).
The result is that here we return six qualifying key values
instead of four due to not evaluating the table's condition.
c. As above.
5. The two last execution of the subquery will also produce wrong results
for the same reason.
Summary: The problem occurs due to all but the first executions of the
subquery is done as a table scan without evaluating the table's
condition (which is pushed to the storage engine on a different
index). This is caused by the create_sort_index() function deleting
the quick-select object that should have been used for executing the
subquery as a range scan.
Note that this bug in addition to causing wrong results also can
result in bad performance due to executing the subquery using a table
scan instead of a range scan. This is an issue in MySQL 5.5.
The fix for this problem is to avoid that the Quick-select-object that
the optimizer created is deleted when create_sort_index() is doing
clean-up of the join-tab. This will ensure that the quick-select
object and the corresponding pushed index condition will be available
and used by all following executions of the subquery.
fixed several defects in the greedy optimization:
1) The greedy optimizer calculated the 'compare-cost' (CPU-cost)
for iterating over the partial plan result at each level in
the query plan as 'record_count / (double) TIME_FOR_COMPARE'
This cost was only used locally for 'best' calculation at each
level, and *not* accumulated into the total cost for the query plan.
This fix added the 'CPU-cost' of processing 'current_record_count'
records at each level to 'current_read_time' *before* it is used as
'accumulated cost' argument to recursive
best_extension_by_limited_search() calls. This ensured that the
cost of a huge join-fanout early in the QEP was correctly
reflected in the cost of the final QEP.
To get identical cost for a 'best' optimized query and a
straight_join with the same join order, the same change was also
applied to optimize_straight_join() and get_partial_join_cost()
2) Furthermore to get equal cost for 'best' optimized query and a
straight_join the new code substrcated the same '0.001' in
optimize_straight_join() as it had been already done in
best_extension_by_limited_search()
3) When best_extension_by_limited_search() aggregated the 'best' plan a
plan was 'best' by the check :
'if ((search_depth == 1) || (current_read_time < join->best_read))'
The term '(search_depth == 1' incorrectly caused a new best plan to be
collected whenever the specified 'search_depth' was reached - even if
this partial query plan was more expensive than what we had already
found.
of the 5.3 code line after a merge with 5.2 on 2010-10-28
in order not to allow the cost to access a joined table to be equal
to 0 ever.
Expanded data sets for many test cases to get the same execution plans
as before.
- Set the default
- Adjust the testcases so that 'new' tests are run with optimizations turned on.
- Pull out relevant tests from "irrelevant" tests and run them with optimizations on.
- Run range.test and innodb.test with both mrr=on and mrr=off
semijoin=on,firstmatch=on,loosescan=on
to
semijoin=off,firstmatch=off,loosescan=off
Adjust the testcases:
- Modify subselect*.test and join_cache.test so that all tests
use the same execution paths as before (i.e. optimizations that
are being tested are enabled)
- Let all other test files run with the new default settings (i.e.
with new optimizations disabled)
- Copy subquery testcases from these files into t/subselect_extra.test
which will run them with new optimizations enabled.
- Update test results
- Fix a problem with PS:
= convert_subq_to_sj() should not save where to prep_where or on_expr to prep_on_expr.
= After an unmerged subquery predicate has been pulled, it should call fix_after_pullout() for
outer_refs.
- Make the code produce correct result: use an array of triggers to turn on/off equalities for each
compared column. Also turn on/off optimizations based on those equalities.
- Make EXPLAIN output show "Full scan on NULL key" for tables for which we switch between
ref/unique_subquery/index_subquery and ALL access.
- index_subquery engine now has HAVING clause when it is needed, and it is
displayed in EXPLAIN EXTENDED
- Fix incorrect presense of "Using index" for index/unique-based subqueries (BUG#22930)
// bk trigger note: this commit refers to BUG#24127
mysql-test/r/ndb_subquery.result:
BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
- Updated test results (checked)
mysql-test/r/subselect.result:
BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
- Updated test results (checked)
mysql-test/r/subselect2.result:
BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
- Updated test results (checked)
mysql-test/r/subselect3.result:
BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
- Testcases
mysql-test/t/subselect3.test:
BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
- Testcases
sql/item_cmpfunc.cc:
BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
- For row-based IN subqueries, use one flag per each column. Set the flags appropriately before
running the subquery.
sql/item_cmpfunc.h:
BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
- Added Item_func_trig_cond::get_triv_var()
sql/item_subselect.cc:
BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
- Item_subselect::exec() and subselect_*_engine::exec() don't have parameter
anymore - now Item_subselect owns the pushed down predicates guard flags.
- A correct set of conditional predicates is now pushed into row-based IN
subquery.
- select_indexsubquery_engine now has "HAVING clause" (needed for correct query
results), and it is shown in EXPLAIN EXTENDED
sql/item_subselect.h:
BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
- Item_subselect::exec() and subselect_*_engine::exec() don't have parameter
anymore - now Item_subselect owns the pushed down predicates guard flags.
- A correct set of conditional predicates is now pushed into row-based IN
subquery.
- select_indexsubquery_engine now has "HAVING clause" (needed for correct query
results), and it is shown in EXPLAIN EXTENDED
sql/mysql_priv.h:
BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
- Added "in_having_cond" special Item name
sql/mysqld.cc:
BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
- Added "in_having_cond" special Item name
sql/sql_lex.h:
BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
sql/sql_select.cc:
BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
- Make "ref" analyzer be able to work with conditional equalities
- Fix subquery optimization code to match the changes in what kinds of
conditions are pushed down into subqueries
- Fix wrong EXPLAIN output in some queries with subquery (BUG#22390)
sql/sql_select.h:
BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
- Make "ref" analyzer be able to work with conditional equalities
- Fix wrong EXPLAIN output in some queries with subquery (BUG#22390)
When processing aggregate functions all tables values are reset
to NULLs at the end of each group.
When doing that if there are no rows found for a group
the const tables must not be reset as they are not recalculated
by do_select()/sub_select() for each group.
mysql-test/r/subselect2.result:
* Bug #20792: Incorrect results from aggregate subquery
- test suite for the bug. This is dependent on InnoDB despite
the fact that the bug and the fix are not InnoDB specific.
This is because of the table flag HA_NOT_EXACT_COUNT.
When this flag is off (as in MyISAM) both t2 and t3 become of
join type 'system' as they are estimated to have 1 record and
and this statistics can be trusted (according to the absence of
HA_NOT_EXACT_COUNT).
mysql-test/t/subselect2.test:
* Bug #20792: Incorrect results from aggregate subquery
- test suite for the bug
sql/sql_select.cc:
* Bug #20792: Incorrect results from aggregate subquery
- when clearing results if there are not rows found for group
the const tables must not be reset as they are not recalculated
for each group.
into mysql.com:/users/lthalmann/bk/mysql-5.0
myisam/mi_rkey.c:
Auto merged
mysql-test/r/subselect2.result:
Auto merged
mysql-test/t/select.test:
Auto merged
ndb/src/mgmsrv/InitConfigFileParser.cpp:
Auto merged
scripts/make_binary_distribution.sh:
Auto merged
configure.in:
After merge fixes
myisam/mi_search.c:
After merge fixes
mysql-test/r/select.result:
After merge fixes
sql/item.cc:
After merge fixes
sql/sql_parse.cc:
After merge fixes
sql/sql_update.cc:
After merge fixes
into mishka.local:/home/my/mysql-5.0
BitKeeper/etc/ignore:
auto-union
BitKeeper/deleted/.del-Grep.cpp~ad798e9ae519d667:
Auto merged
BitKeeper/deleted/.del-Grep.hpp~b05e3af6cfabe387:
Auto merged
BitKeeper/deleted/.del-ctype_cp932.result:
Auto merged
BitKeeper/deleted/.del-ctype_cp932.test:
Auto merged
BitKeeper/deleted/.del-have_lowercase0.inc:
Delete: mysql-test/include/have_lowercase0.inc
VC++Files/mysql-test/mysql_test_run_new.dsp:
Auto merged
configure.in:
Auto merged
mysql-test/include/ps_conv.inc:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/set_var.cc:
Auto merged
sql/examples/ha_archive.cc:
Auto merged
sql/examples/ha_example.cc:
Auto merged
sql/sql_table.cc:
Auto merged
support-files/mysql.spec.sh:
Auto merged
VC++Files/client/mysqltest.dsp:
manual merge
VC++Files/sql/mysqld.dsp:
manual merge
mysql-test/r/grant2.result:
patch merge
mysql-test/r/subselect2.result:
manual merge
mysql-test/t/grant2.test:
patch merge
mysys/charset.c:
Remove already deleted function
sql/examples/ha_archive.h:
Manual merge
sql/sql_acl.cc:
manual merge
sql/sql_db.cc:
merge (no differences)
sql/sql_select.cc:
manual merge
sql/table.h:
merge (no differences)
tests/mysql_client_test.c:
patch merge
Update test result to reflect the fix of Bug #12779 : EXPLAIN SELECT of a subquery is now different
mysql-test/r/subselect2.result:
Update test result to reflect the fix of Bug #12779 : EXPLAIN SELECT of a subquery is now different
Deprecate the use of TYPE=... Preferred syntax is ENGINE=
include/mysqld_error.h:
New warning for deprecated syntax
sql/lex.h:
Introduce ENGINE keyword
Sort order of symbols
sql/share/czech/errmsg.txt:
New warning for deprecated syntax
sql/share/danish/errmsg.txt:
New warning for deprecated syntax
sql/share/dutch/errmsg.txt:
New warning for deprecated syntax
sql/share/english/errmsg.txt:
New warning for deprecated syntax
sql/share/estonian/errmsg.txt:
New warning for deprecated syntax
sql/share/french/errmsg.txt:
New warning for deprecated syntax
sql/share/german/errmsg.txt:
New warning for deprecated syntax
sql/share/greek/errmsg.txt:
New warning for deprecated syntax
sql/share/hungarian/errmsg.txt:
New warning for deprecated syntax
sql/share/italian/errmsg.txt:
New warning for deprecated syntax
sql/share/japanese/errmsg.txt:
New warning for deprecated syntax
sql/share/korean/errmsg.txt:
New warning for deprecated syntax
sql/share/norwegian-ny/errmsg.txt:
New warning for deprecated syntax
sql/share/norwegian/errmsg.txt:
New warning for deprecated syntax
sql/share/polish/errmsg.txt:
New warning for deprecated syntax
sql/share/portuguese/errmsg.txt:
New warning for deprecated syntax
sql/share/romanian/errmsg.txt:
New warning for deprecated syntax
sql/share/russian/errmsg.txt:
New warning for deprecated syntax
sql/share/serbian/errmsg.txt:
New warning for deprecated syntax
sql/share/slovak/errmsg.txt:
New warning for deprecated syntax
sql/share/spanish/errmsg.txt:
New warning for deprecated syntax
sql/share/swedish/errmsg.txt:
New warning for deprecated syntax
sql/share/ukrainian/errmsg.txt:
New warning for deprecated syntax
sql/sql_show.cc:
Change TYPE= with ENGINE=
sql/sql_yacc.yy:
Introduce ENGINE keyword,
Deprecate TYPE= syntax,
Introduce SHOW ENGINE syntax,
Deprecate SHOW INNODB/BDB syntax.
mysql-test/r/alias.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/alter_table.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/auto_increment.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/bdb-alter-table-1.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/bdb-crash.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/bdb-deadlock.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/bdb.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/bdb_cache.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/case.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/cast.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/constraints.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/create.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/ctype_collate.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/ctype_latin1_de.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/ctype_many.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/ctype_mb.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/ctype_recoding.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/ctype_ucs.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/delete.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/distinct.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/fulltext.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/fulltext2.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/fulltext_distinct.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/fulltext_left_join.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/func_compress.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/func_date_add.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/func_group.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/func_if.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/func_str.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/func_system.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/func_test.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/func_time.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/gis-rtree.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/group_by.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/handler.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/heap.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/heap_auto_increment.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/heap_btree.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/heap_hash.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/help.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/innodb-deadlock.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/innodb.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/innodb_cache.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/innodb_handler.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/insert_select.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/isam.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/join.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/join_crash.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/join_outer.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/key.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/lock.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/lock_tables_lost_commit.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/merge.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/mix_innodb_myisam_binlog.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/multi_update.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/myisam.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/null.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/null_key.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/order_by.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/query_cache.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/range.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/repair_part1.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/replace.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/rollback.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/rpl000006.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/rpl_flush_tables.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/rpl_insert_id.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/rpl_relayrotate.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/select.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/select_found.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/show_check.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/sql_mode.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/status.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/subselect.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/subselect2.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/subselect_innodb.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/symlink.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/temp_table.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/type_blob.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/type_datetime.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/type_enum.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/type_nchar.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/type_set.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/union.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/update.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/warnings.result:
Change occurances of TYPE= to ENGINE=
mysql-test/t/alias.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/alter_table.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/auto_increment.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/bdb-alter-table-1.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/bdb-crash.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/bdb-deadlock.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/bdb.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/bdb_cache.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/create.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/ctype_ucs.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/delete.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/distinct.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/fulltext.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/fulltext2.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/fulltext_distinct.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/fulltext_left_join.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/func_compress.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/func_date_add.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/func_group.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/func_if.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/func_str.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/func_test.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/func_time.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/gis-rtree.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/group_by.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/handler.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/heap.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/heap_auto_increment.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/heap_btree.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/heap_hash.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/help.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/innodb-deadlock.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/innodb.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/innodb_cache.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/innodb_handler.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/insert_select.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/isam.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/join.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/join_crash.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/join_outer.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/key.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/lock.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/lock_tables_lost_commit.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/merge.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/mix_innodb_myisam_binlog.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/multi_update.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/myisam.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/null.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/null_key.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/order_by.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/outfile.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/query_cache.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/query_cache_merge.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/range.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/repair_part1.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/replace.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/rollback.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/rpl000006.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/rpl_flush_tables.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/rpl_insert_id.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/rpl_relayrotate.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/select.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/select_found.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/show_check.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/sql_mode.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/status.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/subselect.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/subselect2.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/subselect_innodb.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/symlink.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/temp_table.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/type_datetime.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/type_set.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/union.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/update.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/warnings.test:
Change occurances of TYPE= to ENGINE=
New test for deprecated syntax