Commit graph

39 commits

Author SHA1 Message Date
Igor Babaev
2e7ba70a94 Fixed the bug mdev-10693.
The code that chooses between materialization of a non-correlated
IN subquery and its transformation into an EXISTS correlated
subquery assumes that the execution plan for the outer select
has been already built. However it was not always so if subqueries
occurred in the expressions used for ref access to tables of
the outer select. A call of the function create_ref_for_key() in
get_best_combination() could trigger a premature execution of
the above mentioned code when the execution plan structures for
the outer select were not fully built. This could cause a crash
of the server.

The fix postpones the calls of create_ref_for_key() until the
structures for the execution plan is fully built.
2017-04-24 11:46:01 -07:00
Igor Babaev
b0395d8701 Fixed the bug mdev-12429 and its duplicates mdev-12145 and mdev-9886.
Also fixed a wrong result for a test case for mdev-7691
(the alternative one).
The test  cases for all these bug have materialized semi-joins used
inside dependent sub-queries.

The patch actually reverts the change inroduced by Monty in 2003.
It looks like this change is not valid anymore after the implementation
of semi-joins.
Adjusted output from EXPLAIN for many other test cases.
2017-04-04 10:04:52 -07:00
Oleksandr Byelkin
75f6067e89 MDEV-9635: Server crashes in part_of_refkey or assertion `!created && key_to_save < (int)s->keys' failed in TABLE::use_index(int) or with join_cache_level>2
Do not try to create index where ref is for hash join.
2017-02-28 20:52:26 +01:00
Sergey Petrunya
e8b0b51966 MDEV-4042: Assertion `table->key_read == 0' fails in close_thread_table on EXPLAIN
MDEV-4536: ...sql/sql_base.cc:1598: bool close_thread_table(THD*, TABLE**): Assertion
- Make JOIN::cleanup(full=true) always free join optimization tabs.
2013-07-11 19:27:39 +04:00
unknown
599a1384af Fix for MDEV-4144
Analysis:
The reason for the inefficent plan was that Item_subselect::is_expensive()
didn't detect the special case when a subquery was optimized, but had no
join plan because it either has no table, or its tables have been optimized
away, or the optimizer detected that the result set is empty.
  
Solution:
Identify the special cases above in the Item_subselect::is_expensive(),
and consider such degenerate subqueries inexpensive.
2013-03-29 17:53:21 +02:00
Igor Babaev
32151409c1 Merge 5.3->5.5 2013-01-23 15:18:05 -08:00
unknown
a716b06167 MDEV-3988 fix.
Subquery turned into constant too late to be excluded from grouping list so test for constant added to the create_temp_table().
2013-01-16 15:11:13 +02:00
unknown
80b3f74705 Fix bug mdev-447: Wrong output from the EXPLAIN command of the test case for lp bug #714999
The fix backports from MWL#182: Explain running statements the logic that
saves the original JOIN_TAB array of a query plan after optimization. This
array is later used during EXPLAIN to iterate over the original JOIN plan
nodes in the cases when this plan could be changed by early subquery
execution during the optimization phase of the outer query.
2012-08-21 15:24:43 +03:00
unknown
c2677de7ac Merge the fix for lp:944706, mdev-193 2012-06-06 22:26:40 +03:00
Sergei Golubchik
3e3606d21d merge with 5.3.
Take only test cases from MDEV-136 Non-blocking "set read_only"
2012-06-04 17:26:11 +02:00
unknown
66dfceb11f Fix for bug lp:1006231
Analysis:

When a subquery that needs a temp table is executed during
the prepare or optimize phase of the outer query, at the end
of the subquery execution all the JOIN_TABs of the subquery
are replaced by a new JOIN_TAB that selects from the temp table.
However that temp table has no corresponding TABLE_LIST.
Once EXPLAIN execution reaches its last phase, it tries to print
the names of the subquery tables through its TABLE_LISTs, but in
the case of this bug there is no such TABLE_LIST (it is NULL),
hence a crash.

Solution:
The fix is to block subquery evaluation inside
Item_func_like::fix_fields and Item_func_like::select_optimize()
using the Item::is_expensive() test.
2012-05-30 19:10:18 +03:00
Sergei Golubchik
7f6f53a8df 5.2 merge 2012-05-20 14:57:29 +02:00
unknown
da5214831d Fix for bug lp:944706, task MDEV-193
The patch enables back constant subquery execution during
query optimization after it was disabled during the development
of MWL#89 (cost-based choice of IN-TO-EXISTS vs MATERIALIZATION).

The main idea is that constant subqueries are allowed to be executed
during optimization if their execution is not expensive.

The approach is as follows:
- Constant subqueries are recursively optimized in the beginning of
  JOIN::optimize of the outer query. This is done by the new method
  JOIN::optimize_constant_subqueries(). This is done so that the cost
  of executing these queries can be estimated.
- Optimization of the outer query proceeds normally. During this phase
  the optimizer may request execution of non-expensive constant subqueries.
  Each place where the optimizer may potentially execute an expensive
  expression is guarded with the predicate Item::is_expensive().
- The implementation of Item_subselect::is_expensive has been extended
  to use the number of examined rows (estimated by the optimizer) as a
  way to determine whether the subquery is expensive or not.
- The new system variable "expensive_subquery_limit" controls how many
  examined rows are considered to be not expensive. The default is 100.

In addition, multiple changes were needed to make this solution work
in the light of the changes made by MWL#89. These changes were needed
to fix various crashes and wrong results, and legacy bugs discovered
during development.
2012-05-17 13:46:05 +03:00
Sergei Golubchik
431e042b5d c 2012-05-21 15:30:25 +02:00
Sergey Glukhov
ea1b0492a0 5.1-security -> 5.5-security merge 2012-04-04 14:19:00 +04:00
Sergey Glukhov
b5c690aa54 Bug#11766300 59387: FAILING ASSERTION: CURSOR->POS_STATE == 1997660512 (BTR_PCUR_IS_POSITIONE
Bug#13639204 64111: CRASH ON SELECT SUBQUERY WITH NON UNIQUE INDEX
The crash happened due to wrong calculation
of key length during creation of reference for
sort order index. The problem is that
keyuse->used_tables can have OUTER_REF_TABLE_BIT enabled
but used_tables parameter(create_ref_for_key() func) does
not have it. So key parts which have OUTER_REF_TABLE_BIT
are ommited and it could lead to incorrect key length
calculation(zero key length).


mysql-test/r/subselect_innodb.result:
  test result
mysql-test/t/subselect_innodb.test:
  test case
sql/sql_select.cc:
  added OUTER_REF_TABLE_BIT to the used_tables parameter
  for create_ref_for_key() function.
storage/innobase/handler/ha_innodb.cc:
  added assertion, request from Inno team
storage/innodb_plugin/handler/ha_innodb.cc:
  added assertion, request from Inno team
2012-04-04 13:29:45 +04:00
Sergei Golubchik
4f435bddfd 5.3 merge 2012-01-13 15:50:02 +01:00
unknown
072073c09e Backport of WL#5953 from MySQL 5.6
The patch differs from the original MySQL patch as follows:
- All test case differences have been reviewed one by one, and
  care has been taken to restore the original plan so that each
  test case executes the code path it was designed for.
- A bug was found and fixed in MariaDB 5.3 in
  Item_allany_subselect::cleanup().
- ORDER BY is not removed because we are unsure of all effects,
  and it would prevent enabling ORDER BY ... LIMIT subqueries.
- ref_pointer_array.m_size is not adjusted because we don't do
  array bounds checking, and because it looks risky.

Original comment by Jorgen Loland:
-------------------------------------------------------------
WL#5953 - Optimize away useless subquery clauses
      
For IN/ALL/ANY/SOME/EXISTS subqueries, the following clauses are 
meaningless:
      
* ORDER BY (since we don't support LIMIT in these subqueries)
* DISTINCT
* GROUP BY if there is no HAVING clause and no aggregate 
  functions
      
This WL detects and optimizes away these useless parts of the
query during JOIN::prepare()
2011-12-19 23:05:44 +02:00
Sergei Golubchik
d2755a2c9c 5.3->5.5 merge 2011-11-22 18:04:38 +01:00
Sergei Golubchik
76f0b94bb0 merge with 5.3
sql/sql_insert.cc:
  CREATE ... IF NOT EXISTS may do nothing, but
  it is still not a failure. don't forget to my_ok it.
  ******
  CREATE ... IF NOT EXISTS may do nothing, but
  it is still not a failure. don't forget to my_ok it.
sql/sql_table.cc:
  small cleanup
  ******
  small cleanup
2011-10-19 21:45:18 +02:00
unknown
b53744b79e Fix bug lp:858148.
Analysis:
The crash is a result of the same cause as all similar
bugs (lp:827416, lp:718763, lp:778413, lp:806943,
lp:611690). The general pattern is that some optimization
requires the evaluation of some condition (e.g. the WHERE
clause), and this condition contains a subquery, such that
the subquery itself requires a temporary table for its
execution. During the subquery execution the original
tables in the FROM clause are replaced by the temporary
table needed for the final GROUP or ORDER operation. All
this happens during optimization of the outer query. Later
when EXPLAIN is run for the subquery, explain attempts to
print the name of the tables in the FROM clause, but it
finds there a temporary table without a corresponding
TABLE_LIST object. The attempt to print the name of a
NULL table list results in a crash.

Solution:
This patch extends the fix to bug lp:702301, and dissalows
constant substitution of aggregate functions if the filter
condition used to check MIN/MAX keys is an expensive condition.
2011-09-28 17:20:43 +03:00
unknown
2df1914791 Fix bug lp:827416
Analysis:
Constant table optimization of the outer query finds that
the right side of the equality is a constant that can
be used for an eq_ref access to fetch one row from t1,
and substitute t1 with a constant. Thus constant optimization
triggers evaluation of the subquery during the optimize
phase of the outer query.

The innermost subquery requires a plan with a temporary
table because with InnoDB tables the exact count of rows
is not known, and the empty tables cannot be optimzied
way. JOIN::exec for the innermost subquery substitutes
the subquery tables with a temporary table.

When EXPLAIN gets to print the tables in the innermost
subquery, EXPLAIN needs to print the name of each table
through the corresponding TABLE_LIST object. However,
the temporary table created during execution doesn't
have a corresponding TABLE_LIST, so we get a null
pointer exception.

Solution:
The solution is to forbid using expensive constant
expressions for eq_ref access for contant table
optimization. Notice that eq_ref with a subquery
providing the value is still possible during regular
execution.
2011-08-27 00:40:29 +03:00
Sergey Petrunya
1492de8563 Set the default to be mrr=off,mrr_sort_keys=off:
- 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
2011-07-08 18:46:47 +04:00
Tor Didriksen
08c8d21f2b Bug #11766860 - 60085: CRASH IN ITEM::SAVE_IN_FIELD() WITH TIME DATA TYPE
This assumption in Item_cache_datetime::cache_value_int
was wrong:
-  /* Assume here that the underlying item will do correct conversion.*/
-  int_value= example->val_int_result();


mysql-test/r/subselect_innodb.result:
  New test case.
mysql-test/t/subselect_innodb.test:
  New test case.
sql/item.cc:
  In Item_cache_datetime::cache_value_int()
   - call get_time() or get_date() depending on desired type
   - convert the returned MYSQL_TIME value to longlong depending on desired type
sql/item.h:
  The cached int_value in Item_cache_datetime should not be unsigned:
   - it is used mostly in signed context
   - it can actually have negative value (for TIME data type)
sql/item_cmpfunc.cc:
  Add comment on Bug#59685
sql/item_subselect.cc:
  Add some DBUG_TRACE for easier bug-hunting.
2011-02-17 13:41:25 +01:00
unknown
313ea47da4 Add new option "check-testcases" to mysql-test-run.pl
Cleanup the sideeffects from most of the  testcases with sideeffects.


mysql-test/mysql-test-run.pl:
  Add option "check-testcases" to mysql-test-run.pl
  Will execute "include/check-testcase.test" once before each tescase and record the output into "var/tmp/check-testcase.result"
  After the teastcase it will run again and this time compare the output with previously recorded file.
mysql-test/r/analyze.result:
  Drop table t1 at end of test
mysql-test/r/create_select_tmp.result:
  Drop table t1 at end of test
mysql-test/r/ctype_cp932.result:
  Drop table t1 at end of test
mysql-test/r/ctype_recoding.result:
  Drop table t1 at end of test
mysql-test/r/grant2.result:
  Drop user mysqltest_2 and mysqltest_A@'%'
mysql-test/r/join_outer.result:
  Drop view v1 to cleanup
mysql-test/r/ps_1general.result:
  Drop table t1 at end of test
mysql-test/r/query_cache.result:
  Drop function "f1"
mysql-test/r/read_only.result:
  Reset the "read_only" flag
mysql-test/r/rpl000001.result:
  Remove user "blafasel2"
mysql-test/r/rpl000017.result:
  Remove user "replicate"
mysql-test/r/rpl_failed_optimize.result:
  Drop table t1 to cleanup
mysql-test/r/rpl_flush_tables.result:
  Drop tables t3, t4, t5
mysql-test/r/rpl_ignore_revoke.result:
  Delete user "user_foo"
mysql-test/r/rpl_insert_id.result:
  Drop table t1 to cleanup
mysql-test/r/rpl_loaddata.result:
  Drop tyable t1 to cleanup
mysql-test/r/rpl_loaddata_rule_m.result:
  Drop tyable t1 to cleanup
mysql-test/r/rpl_loaddata_rule_s.result:
  Drop tyable t1 to cleanup
mysql-test/r/rpl_misc_functions.result:
  Drop tyable t1 to cleanup
mysql-test/r/rpl_multi_update3.result:
  Drop tyable t1 and t2 to cleanup
mysql-test/r/rpl_replicate_do.result:
  Drop tyable t1 to cleanup
mysql-test/r/rpl_skip_error.result:
  Drop tyable t1 to cleanup
mysql-test/r/rpl_slave_status.result:
  Drop tyable t1 to cleanup
mysql-test/r/sp-prelocking.result:
  Drop view v1 and tables t1, t2, t3 and t4 to cleanup
mysql-test/r/sp-security.result:
  Delete users to cleanup
  Delete remaining traces in tables_priv and procs_priv
mysql-test/r/subselect_innodb.result:
  Drop procedure p1 to cleanup
mysql-test/r/trigger-compat.result:
  Drop trigger wl2818_trg1 and wl2818_trg2.
  Drop table t1, t2
  Drop database mysqltest_db1
  And the users "mysqltest_dfn@localhost" and "mysqltest_inv@localhost"
mysql-test/r/type_bit.result:
  Drop tables t1 and t2 to cleanup
mysql-test/r/variables.result:
  Set GLOBAL max_join_size to 10 as it originally was in variables-master.opt
mysql-test/r/view_grant.result:
  Dop user "test@localhost" to cleanup
mysql-test/t/analyze.test:
  Drop table t1 to cleanup
mysql-test/t/create_select_tmp.test:
  Drop table t1 to cleanup
mysql-test/t/ctype_cp932.test:
  Drop table t1 to cleanup
mysql-test/t/ctype_recoding.test:
  Drop table t1 to cleanup
mysql-test/t/fulltext_var.test:
  Restore the original ft_boolean_syntax
mysql-test/t/grant2.test:
  Drop users "mysqltest_2" and "mysqltest_A@'%'" to cleanup
mysql-test/t/innodb_cache.test:
  Reset query_cache_size to original value
mysql-test/t/join_outer.test:
  Drop view v1 to cleanup
mysql-test/t/ps_1general.test:
  Drop table t1 to cleanup
mysql-test/t/query_cache.test:
  Drop function "f1" to cleanup
mysql-test/t/read_only.test:
  Reset the readonly flag
mysql-test/t/rpl000001.test:
  Delete user "blafasel2" to cleanup
mysql-test/t/rpl000017.test:
  Delete user "replicate" to cleanup
mysql-test/t/rpl_failed_optimize.test:
  Drop table t1 to cleanup
mysql-test/t/rpl_flush_tables.test:
  Droip table t3, t4 and t5 to cleanup
mysql-test/t/rpl_ignore_revoke.test:
  Delet user "user_foo" to cleanup
mysql-test/t/rpl_insert_id.test:
  drop table t1 to cleanup
mysql-test/t/rpl_loaddata.test:
  Drop table t1 to cleanup
mysql-test/t/rpl_loaddata_rule_m.test:
  Drop table t1 to cleanup
mysql-test/t/rpl_loaddata_rule_s.test:
  Drop table t1 to cleanup
mysql-test/t/rpl_misc_functions.test:
  Drop table t1 to cleanup
mysql-test/t/rpl_multi_update3.test:
  Drop table t1 and t2 to cleanup
mysql-test/t/rpl_replicate_do.test:
  Drop table t1 to cleanup
mysql-test/t/rpl_skip_error.test:
  Drop table t1 to cleanup
mysql-test/t/rpl_slave_status.test:
  Drop table t1 to cleanup
mysql-test/t/sp-prelocking.test:
  Drop table t1, t2 t3 and t4 to cleanup
  Drop view v1
mysql-test/t/sp-security.test:
  Delete  test users from mysql.user, mysql.db, mysql.procs_priv and mysql.tables_priv
  Drop table t1 to cleanup
mysql-test/t/subselect_innodb.test:
  Drop procedure p1 to cleanup
mysql-test/t/trigger-compat.test:
  Drop trigger wl2818_trg1 and wl2818_trg2 to cleanup
  Drop table t1, t2
  Drop users
  drop database mysqltest_db1
mysql-test/t/type_bit.test:
  drop table t1 and t2 to cleanup
mysql-test/t/variables-master.opt:
  Increase max_join_size to 100.
mysql-test/t/variables.test:
  Set max_join_size to 10, which was the original value in variables-master.opt
mysql-test/t/view_grant.test:
  Drop the user "test@localhost"
mysql-test/include/check-testcase.test:
  New BitKeeper file ``mysql-test/include/check-testcase.test''
2006-01-26 17:54:34 +01:00
unknown
234bf9a70c avoiding of calling Item::val_* methods family with opt_range mem_root, because its life time is too short. (BUG#14342)
mysql-test/r/subselect_innodb.result:
  BUG#14342 test case
mysql-test/t/subselect_innodb.test:
  BUG#14342 test case
sql/opt_range.cc:
  avoiding of calling Item::val_* methods family with opt_range mem_root, because its life time is too short.
2005-11-04 13:16:46 +02:00
unknown
d31e997d57 A fix and a test case for Bug#12736 "Server crash during a select".
The bug was in JOIN::join_free which was wrongly determining that
all joins have been already executed and therefore all used tables
can be closed.


mysql-test/r/subselect_innodb.result:
  - test results fixed (Bug#12736 "Server crash during a select
mysql-test/t/subselect_innodb.test:
  - a test case for Bug#12736 "Server crash during a select": test
  that ha_index_or_rnd_end and mysql_unlock_tables are called
  for all used tables in proper order.
sql/item_subselect.cc:
  - implement subselect_union_engine::is_executed
sql/item_subselect.h:
  - implement Item_subselect::is_evaluated. This function is used
  to check whether we can clean up a non-correlated join of a subquery
  when cleaning up the join of the outer query
sql/sql_lex.h:
  - declare st_select_lex::cleanup_all_joins
sql/sql_select.cc:
  - remove an argument from JOIN::join_free, it's now not used
  - reimplement JOIN::join_free to not unlock tables if there
    is a subquery that has not yet been evaluated. Make sure that the
    new implementation calls ha_index_or_rnd_end for every table in
    the join and inner joins, because all table cursors must be closed
    before mysql_unlock_tables.
sql/sql_select.h:
  - JOIN::join_free signature changed
sql/sql_union.cc:
  - implement a helper method st_select_lex::cleanup_all_joins, which
    recursively walks over a tree of joins and calls cleanup() for
    each join.
2005-10-13 11:53:00 +04:00
unknown
3455bc5398 fixed test 'subselect' in case when innodb is not compiled in (thanks HF who niticed it)
mysql-test/r/subselect.result:
  test depends on innodb moved from 'subselect' to 'subselect_innodb'
mysql-test/r/subselect_innodb.result:
  test depends on innodb moved from 'subselect' to 'subselect_innodb'
mysql-test/t/subselect.test:
  test depends on innodb moved from 'subselect' to 'subselect_innodb'
mysql-test/t/subselect_innodb.test:
  test depends on innodb moved from 'subselect' to 'subselect_innodb'
2005-02-06 13:06:12 +02:00
unknown
56080a8d1e postreview fixes
mysql-test/r/subselect_innodb.result:
  fixed result of test
mysql-test/t/subselect_innodb.test:
  fixed test layout
2004-12-04 00:14:18 +02:00
unknown
b9826e1063 test case of bug#5220 2004-09-08 21:54:01 +03:00
unknown
07b5fdbcdb do not unlock tables early if we have subquery in HAVING clause (BUG#3984)
mysql-test/r/subselect_innodb.result:
  test of unlocking innodb tables and subquery in HAVING clause
mysql-test/t/subselect_innodb.test:
  test of unlocking innodb tables and subquery in HAVING clause
sql/item_subselect.cc:
  mark SELECT with subquery in HAVING clause
sql/sql_lex.cc:
  mark SELECT with subquery in HAVING clause
sql/sql_lex.h:
  mark SELECT with subquery in HAVING clause
sql/sql_select.cc:
  do not unlock tables early if we have subquery in HAVING clause
2004-06-09 23:32:20 +03:00
unknown
a07e48eca0 After merge fixes
Added more DBUG statements
Ensure that we are comparing end space with BINARY strings
Use 'any_db' instead of '' to mean any database. (For HANDLER command)
Only strip ' ' when comparing CHAR, not other space-like characters (like \t)


BitKeeper/deleted/.del-ctype_tis620.result-old~3578ceb0b8284685:
  Delete: mysql-test/r/ctype_tis620.result-old
BitKeeper/deleted/.del-ctype_tis620.test-old~ffb1bbd2935d1aba:
  Delete: mysql-test/t/ctype_tis620.test-old
client/mysqlbinlog.cc:
  Added DBUG statements
  Added call of my_end() to free all used memory on exit
heap/hp_info.c:
  After merge fixes
heap/hp_open.c:
  After merge fixes
include/heap.h:
  After merge fixes
include/m_ctype.h:
  Use pchar instead of 'int' for character parameters.
  Added 'my_binary_compare()'
include/m_string.h:
  Fixed wrong define
innobase/ibuf/ibuf0ibuf.c:
  After merge fixes
innobase/srv/srv0start.c:
  After merge fixes
mysql-test/r/alter_table.result:
  Fixed results after merge
mysql-test/r/auto_increment.result:
  Fixed results after merge
mysql-test/r/bdb.result:
  Fixed results after merge
mysql-test/r/binary.result:
  Fixed results after merge
mysql-test/r/create.result:
  Fixed results after merge
mysql-test/r/ctype_mb.result:
  Fixed results after merge
mysql-test/r/ctype_tis620.result:
  Fixed results after merge
mysql-test/r/ctype_utf8.result:
  Fixed results after merge
mysql-test/r/delete.result:
  Fixed results after merge
mysql-test/r/func_compress.result:
  Fixed results after merge
mysql-test/r/func_gconcat.result:
  Fixed results after merge
mysql-test/r/func_group.result:
  Fixed results after merge
mysql-test/r/func_str.result:
  Fixed results after merge
mysql-test/r/innodb.result:
  Fixed results after merge
mysql-test/r/insert.result:
  Fixed results after merge
mysql-test/r/insert_select.result:
  Fixed results after merge
mysql-test/r/key.result:
  Fixed results after merge
mysql-test/r/loaddata.result:
  Fixed results after merge
mysql-test/r/lock.result:
  Fixed results after merge
mysql-test/r/myisam.result:
  Fixed results after merge
mysql-test/r/null.result:
  Fixed results after merge
mysql-test/r/null_key.result:
  Fixed results after merge
mysql-test/r/order_by.result:
  Fixed results after merge
mysql-test/r/query_cache.result:
  Fixed results after merge
mysql-test/r/range.result:
  Fixed results after merge
mysql-test/r/rpl_multi_delete.result:
  Fixed results after merge
mysql-test/r/rpl_until.result:
  Fixed results after merge
mysql-test/r/subselect.result:
  Fixed results after merge
mysql-test/r/subselect_innodb.result:
  Fixed results after merge
mysql-test/r/type_blob.result:
  Fixed results after merge
mysql-test/r/type_datetime.result:
  Fixed results after merge
mysql-test/r/type_decimal.result:
  Fixed results after merge
mysql-test/r/type_enum.result:
  Fixed results after merge
mysql-test/r/type_float.result:
  Fixed results after merge
mysql-test/r/type_ranges.result:
  Fixed results after merge
mysql-test/r/type_time.result:
  Fixed results after merge
mysql-test/r/type_timestamp.result:
  Fixed results after merge
mysql-test/r/type_uint.result:
  Fixed results after merge
mysql-test/r/type_year.result:
  Fixed results after merge
mysql-test/r/variables.result:
  Fixed results after merge
mysql-test/r/warnings.result:
  Fixed results after merge
mysql-test/t/case.test:
  Fixed shifted error messages
mysql-test/t/create.test:
  Fixed shifted error messages
mysql-test/t/ctype_collate.test:
  Fixed shifted error messages
mysql-test/t/ctype_tis620.test:
  Merge with 4.0 ctype_tis620 test
mysql-test/t/delete.test:
  Fixed shifted error messages
mysql-test/t/derived.test:
  Fixed shifted error messages
mysql-test/t/fulltext.test:
  Fixed shifted error messages
mysql-test/t/func_in.test:
  Fixed shifted error messages
mysql-test/t/func_str.test:
  Fixed shifted error messages
mysql-test/t/func_test.test:
  Fixed shifted error messages
mysql-test/t/grant.test:
  Fixed shifted error messages
mysql-test/t/innodb.test:
  Change to 4.1 syntax
mysql-test/t/key_cache.test:
  Fixed shifted error messages
mysql-test/t/myisam.test:
  New test of blob and end space
mysql-test/t/row.test:
  Fixed shifted error messages
mysql-test/t/rpl_until.test:
  Fixed shifted error messages
mysql-test/t/subselect.test:
  Fixed shifted error messages
mysql-test/t/subselect_innodb.test:
  Fix test to take into account foreign key constraints
mysql-test/t/union.test:
  Fixed shifted error messages
mysql-test/t/user_var.test:
  Fixed shifted error messages
mysql-test/t/variables.test:
  Fixed shifted error messages
mysys/my_handler.c:
  Merge with 4.0 code
sql/ha_heap.cc:
  After merge fixes
sql/handler.cc:
  After merge fixes
sql/item.cc:
  After merge fixes
sql/item_cmpfunc.cc:
  Ensure that we are comparing end space with BINARY strings
sql/item_cmpfunc.h:
  Ensure that we are comparing end space with BINARY strings
sql/log_event.cc:
  More DBUG statements
  Ensure that we use all options to LOAD DATA in replication
sql/opt_range.cc:
  After merge fixes
sql/sql_db.cc:
  After merge fixes
sql/sql_handler.cc:
  After merge fixes
  Use 'any_db' instead of '' to mean 'no database comparison'
sql/sql_parse.cc:
  After merge fixes
sql/sql_select.cc:
  After merge fixes
  Added function comment for setup_group()
sql/sql_string.cc:
  Added stringcmp() for binary comparison.
  Added function comments for sortcmp() and stringcmp()
sql/sql_string.h:
  Added stringcmp()
sql/sql_table.cc:
  After merge fixes
sql/sql_update.cc:
  After merge fixes
sql/sql_yacc.yy:
  Use 'any_db' instead of '' to mean any database. Using "" causes a 'wrong db name' error.
strings/ctype-big5.c:
  Strip only end space, not other space characters.
strings/ctype-bin.c:
  Removed some not needed functions.
  Added function comments
  Don't remove end space in comparisons
  Change my_wildcmp_bin() to be 'identical' with other similar code
strings/ctype-czech.c:
  Strip only end space, not other space characters.
strings/ctype-gbk.c:
  Strip only end space, not other space characters.
strings/ctype-latin1.c:
  Strip only end space, not other space characters.
strings/ctype-mb.c:
  Strip only end space, not other space characters.
strings/ctype-simple.c:
  Strip only end space, not other space characters.
strings/ctype-sjis.c:
  Strip only end space, not other space characters.
strings/ctype-tis620.c:
  Added usage of my_instr_simple. This needs to be cleaned up!
strings/ctype-utf8.c:
  Strip only end space, not other space characters.
strings/ctype-win1250ch.c:
  Strip only end space, not other space characters.
  Fixed indentation
strings/strto.c:
  Code cleanup
2004-02-16 10:03:25 +02:00
unknown
fb006367e5 merge
sql/mysql_priv.h:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_help.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
2004-01-17 13:13:48 +02:00
unknown
2de832dbf9 switched to new syntax (TYPE->ENGINE)
check of memory allocation operation was added


mysql-test/r/subselect_innodb.result:
  switched to new syntax
mysql-test/t/subselect_innodb.test:
  switched to new syntax
sql/sql_select.cc:
  check of memory allocation operation
2004-01-17 13:00:46 +02:00
unknown
adca234881 Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.1
into sanja.is.com.ua:/home/bell/mysql/bk/work-sub-4.1


mysql-test/r/subselect_innodb.result:
  Auto merged
mysql-test/t/subselect_innodb.test:
  Auto merged
sql/item_subselect.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_union.cc:
  Auto merged
2004-01-17 11:53:04 +02:00
unknown
b21d8b0eff removed droping field->query_id for reinitialization tables for subquery.
(BUG#2089)


mysql-test/r/subselect_innodb.result:
  correct results
sql/mysql_priv.h:
  new parameter for setup_tables()
sql/sql_base.cc:
  new parameter for setup_tables() added to avoid dropping query_id of fields during reinitialization subquery
sql/sql_class.cc:
  layout fixed
sql/sql_help.cc:
  new parameter for setup_tables()
sql/sql_insert.cc:
  new parameter for setup_tables()
sql/sql_lex.cc:
  removed incorrect code
sql/sql_load.cc:
  new parameter for setup_tables()
sql/sql_olap.cc:
  new parameter for setup_tables()
sql/sql_prepare.cc:
  new parameter for setup_tables()
sql/sql_select.cc:
  new parameter for setup_tables()
sql/sql_update.cc:
  new parameter for setup_tables()
2004-01-03 00:12:07 +02:00
unknown
fc75518a78 fixed unlocking tables during subquery execution (BUG#2048)
mysql-test/r/subselect_innodb.result:
  bug 2048 test
mysql-test/t/subselect_innodb.test:
  bug 2048 test
sql/item_subselect.cc:
  do not unlock tables for subqueries
sql/sql_derived.cc:
  derived table tables can be unlocked
sql/sql_lex.h:
  new interface to pass additional options
sql/sql_union.cc:
  new interface to pass additional options
  do not unlock tables for UNION
2003-12-10 22:46:14 +02:00
unknown
80ec807976 WorkLog#1323
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
2003-12-10 04:31:42 +00:00
unknown
4b8568a797 BUG#1708 & other subselects with innodb tests 2003-11-02 14:43:11 +02:00