Commit graph

32369 commits

Author SHA1 Message Date
unknown
5a7c671c1f Merge chilla.local:/home/mydev/mysql-5.0--main
into  chilla.local:/home/mydev/mysql-5.0-toteam


sql/opt_range.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
2006-09-21 10:55:23 +02:00
unknown
0e4dd85d67 Fix for bug#20670 "UPDATE using key and invoking trigger that modifies
this key does not stop" (version for 5.0 only).

UPDATE statement which WHERE clause used key and which invoked trigger
that modified field in this key worked indefinetely.

This problem occured because in cases when UPDATE statement was
executed in update-on-the-fly mode (in which row is updated right
during evaluation of select for WHERE clause) the new version of
the row became visible to select representing WHERE clause and was
updated again and again.
We already solve this problem for UPDATE statements which does not
invoke triggers by detecting the fact that we are going to update
field in key used for scanning and performing update in two steps,
during the first step we gather information about the rows to be
updated and then doing actual updates. We also do this for
MULTI-UPDATE and in its case we even detect situation when such
fields are updated in triggers (actually we simply assume that
we always update fields used in key if we have before update
trigger).

The fix simply extends this check which is done in check_if_key_used()/
QUICK_SELECT_I::check_if_keys_used() routine/method in such way that
it also detects cases when field used in key is updated in trigger.
As nice side-effect we have more precise and thus more optimal
perfomance-wise check for the MULTI-UPDATE.
Also check_if_key_used()/QUICK_SELECT_I::check_if_keys_used() were
renamed to is_key_used()/QUICK_SELECT_I::is_keys_used() in order to
better reflect that boolean predicate.

Note that this check is implemented in much more elegant way in 5.1 


mysql-test/r/trigger.result:
  Added test case for bug#20670 "UPDATE using key and invoking trigger that
  modifies this key does not stop".
mysql-test/t/trigger.test:
  Added test case for bug#20670 "UPDATE using key and invoking trigger that
  modifies this key does not stop".
sql/key.cc:
  Renamed check_if_key_used() to is_key_used(). Also this routine checks if
  key uses field which can be updated by before update trigger defined on the
  table. As result we avoid using update-on-the-fly method in cases when trigger
  updates part of key which is used by select which filters rows to be updated
  and thus avoid infinite updates. By doing such check here we cover both UPDATE
  and MULTI-UPDATE cases.
sql/mysql_priv.h:
  Renamed check_if_key_used() to is_key_used().
sql/opt_range.cc:
  Renamed check_if_key_used()/QUICK_SELECT_I::check_if_keys_used() to
  is_key_used()/QUICK_SELECT_I::is_keys_used().
sql/opt_range.h:
  Renamed QUICK_SELECT_I::check_if_keys_used() method to is_keys_used(),
  also updated comment describing it to reflect its extended semantics
  (this change was caused by change in check_if_key_used()/is_key_used()
   routine semantics).
sql/sql_trigger.cc:
  Introduced Table_triggers_list::is_updated_in_before_update_triggers()
  method which is needed for checking if field of subject table can be
  changed in before update trigger.
sql/sql_trigger.h:
  Table_triggers_list:
    Removed has_before_update_triggers() method which is not used any longer.
    Added declaration of is_updated_in_before_update_triggers() which is
    needed for checking if field of subject table can be changed by before
    update trigger.
sql/sql_update.cc:
  safe_update_on_fly():
    check_if_key_used() routine and check_if_keys_used() method were
    renamed to is_key_used()/is_keys_used(). 
    Now cases when trigger updates fields which are part of key used for
    filtering rows for update are caught directly in is_key_used().
    This also allows to cover both UPDATE and MULTI-UPDATE cases.
2006-09-21 11:35:38 +04:00
unknown
9e9632fd9b Vertical printout in test to make easier to read 2006-09-21 03:32:42 +02:00
unknown
679ed1c869 Merge mysql.com:/users/lthalmann/bk/MERGE/mysql-4.1-merge
into  mysql.com:/users/lthalmann/bk/MERGE/mysql-5.0-merge


sql/sql_yacc.yy:
  Auto merged
2006-09-21 01:01:38 +02:00
unknown
aede420d41 Fix of result files from merge
mysql-test/r/mysqldump.result:
  Fix of result file (adding the echo's)
mysql-test/r/rpl_view.result:
  Added end of 5.0 echo
mysql-test/t/rpl_view.test:
  Added end of 5.0 echo
2006-09-21 00:59:48 +02:00
unknown
edbab3578b Merge mysql.com:/users/lthalmann/bkroot/mysql-5.0-rpl
into  mysql.com:/users/lthalmann/bk/MERGE/mysql-5.0-merge


ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
client/mysqldump.c:
  Merge main->rpl
mysql-test/r/mysqldump.result:
  Restore of main mysqldump test files in rpl tree (only added echo and one test case for bug 13926)
  Printouts not yet added to result file
mysql-test/t/mysqldump.test:
  Restore of main mysqldump test files in rpl tree (only added echo and one test case for bug 13926)
2006-09-21 00:05:56 +02:00
unknown
54bb1045ca Merge rurik.mysql.com:/home/igor/mysql-4.1-opt
into  rurik.mysql.com:/home/igor/mysql-5.0-opt


mysql-test/r/ctype_ucs.result:
  Auto merged
mysql-test/t/ctype_ucs.test:
  Auto merged
sql/field.h:
  Auto merged
sql/unireg.cc:
  Auto merged
2006-09-20 09:47:36 -07:00
unknown
0f50a8a7fe Fixed bug #20108.
Any default value for a enum fields over UCS2 charsets was corrupted
when we put it into the frm file, as it had been overwritten by its
HEX representation.
To fix it now we save a copy of structure that represents the enum
type and when putting the default values we use this copy. 


mysql-test/r/ctype_ucs.result:
  Added a test case for bug #20108.
mysql-test/t/ctype_ucs.test:
  Added a test case for bug #20108.
2006-09-20 09:46:12 -07:00
unknown
c358e322f8 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  rurik.mysql.com:/home/igor/mysql-5.0-opt
2006-09-20 08:10:21 -07:00
unknown
1b5bd18dc6 Fixed bug #22015: crash with GROUP_CONCAT over a derived table
that returns the results of aggregation by GROUP_CONCAT.
The crash was due to an overflow happened for the field
sortoder->length.
The fix prevents this overflow exploiting the fact that the
value of sortoder->length cannot be greater than the value of
thd->variables.max_sort_length.   


mysql-test/r/func_gconcat.result:
  Added a test case for bug #22015.
mysql-test/t/func_gconcat.test:
  Added a test case for bug #22015.
2006-09-20 08:08:57 -07:00
unknown
941e502079 Merge mysql.com:/users/lthalmann/bkroot/mysql-4.1-rpl
into  mysql.com:/users/lthalmann/bk/MERGE/mysql-4.1-merge


sql/sql_yacc.yy:
  Auto merged
2006-09-20 16:17:30 +02:00
unknown
1eb82be26d BUG#21459 - myisam_ftdump gives bad counts for common words
This problem affects myisam_ftdump tool only.

For fulltext index positive subkeys means word weight, negative subkeys
means number of documents in level 2 fulltext index.

Fixed that document counter was not properly updated for keys having
level 2 fulltext index.

No test case for this bug.


myisam/myisam_ftdump.c:
  For fulltext index positive subkeys means word weight, negative subkeys
  means number of documents in level 2 fulltext index.
  
  Fixed that document counter was not properly updated for keys having
  level 2 fulltext index.
2006-09-20 17:12:37 +05:00
unknown
15b1ee2fcf Bug#20830 - INSERT DELAYED does not honour SET INSERT_ID
Bug#20627 - INSERT DELAYED does not honour auto_increment_* variables

INSERT DELAYED ignored an explicitly set INSERT_ID and session
specific auto_increment_* variables.

The problem was that the inserts are done by a system thread,
which does not have access to the session variables of the user
thread.

On a proposal of Guilhem I fixed it so that the variables are
copied to the data structure for every delayed row. The system
thread sets its session variables from these values.


mysql-test/r/delayed.result:
  Bug#20830 - INSERT DELAYED does not honour SET INSERT_ID
  Bug#20627 - INSERT DELAYED does not honour auto_increment_* variables
  Turned some sleeps into FLUSH TABLEs.
  Added test cases.
mysql-test/t/delayed.test:
  Bug#20830 - INSERT DELAYED does not honour SET INSERT_ID
  Bug#20627 - INSERT DELAYED does not honour auto_increment_* variables
  Turned some sleeps into FLUSH TABLEs.
  Added test cases.
sql/sql_insert.cc:
  Bug#20830 - INSERT DELAYED does not honour SET INSERT_ID
  Bug#20627 - INSERT DELAYED does not honour auto_increment_* variables
  Added auto_increment/insert_id related variables to 'delayed_row'.
  The session values are copied to 'delayed_row' by the user thread.
  The delayed insert thread copies them to his session variables.
2006-09-20 11:05:11 +02:00
unknown
ea3dfa4a7f Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  rakia.(none):/home/kgeorge/mysql/autopush/B21540-5.0-opt
2006-09-20 12:03:56 +03:00
unknown
a952b3fcb2 fixed merge 2006-09-20 12:02:58 +03:00
unknown
f6951675f9 Merge bk-internal.mysql.com:/home/bk/mysql-4.1-engines
into  chilla.local:/home/mydev/mysql-4.1-bug14400-monty


BitKeeper/etc/ignore:
  auto-union
mysql-test/r/myisam.result:
  Auto merged
mysql-test/t/myisam.test:
  Auto merged
sql/sql_select.cc:
  Auto merged
2006-09-20 08:33:46 +02:00
unknown
23fefc8801 BUG#10974 - No error message if merge table based on union of innodb, memory
Fixed confusing error message from the storage engine when
it fails to open underlying table. The error message is issued
when a table is _opened_ (not when it is created).


myisammrg/myrg_open.c:
  Set my_errno to HA_ERR_WRONG_MRG_TABLE_DEF if attempt to open
  underlying table failed.
mysql-test/r/merge.result:
  A test case for bug#10974.
mysql-test/r/repair.result:
  Fixed a test case according to patch for bug#10974.
mysql-test/t/merge.test:
  A test case for bug#10974.
sql/share/english/errmsg.txt:
  Better error message if we fail to open underlying table.
sql/table.cc:
  Report error from handler with print_error instead of frm_error. This
  fixes confusing error message from the handler. Actually this is
  backported from 5.0.
2006-09-20 01:40:59 +05:00
unknown
76b354dcf7 Post-merge corrections. 2006-09-19 12:18:24 -07:00
unknown
4095b98598 Merge rurik.mysql.com:/home/igor/mysql-4.1-opt
into  rurik.mysql.com:/home/igor/mysql-5.0-opt


mysql-test/r/ps.result:
  Manual merge
mysql-test/t/ps.test:
  Manual merge
sql/sql_select.cc:
  Manual merge
2006-09-19 10:09:02 -07:00
unknown
de5b4eba91 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  rakia.(none):/home/kgeorge/mysql/autopush/B21540-5.0-opt


mysql-test/r/func_group.result:
  Auto merged
sql/item_sum.cc:
  Auto merged
2006-09-19 19:18:52 +03:00
unknown
903fc561b2 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into  rurik.mysql.com:/home/igor/mysql-4.1-opt
2006-09-19 08:42:58 -07:00
unknown
11ba3204e1 After merge fix. 2006-09-19 14:26:18 +02:00
unknown
08f4565e6a Merge chilla.local:/home/mydev/mysql-4.1-bug14400-monty
into  chilla.local:/home/mydev/mysql-5.0-bug14400-monty


BitKeeper/etc/ignore:
  auto-union
include/my_global.h:
  Auto merged
myisam/mi_rkey.c:
  Auto merged
mysql-test/r/myisam.result:
  Auto merged
mysql-test/t/myisam.test:
  Auto merged
myisam/mi_test_all.res:
  Manual merge from 4.1.
sql/sql_select.cc:
  Manual merge from 4.1.
2006-09-19 11:27:00 +02:00
unknown
82a72ee17e Merge bk-internal:/home/bk/mysql-4.0
into  chilla.local:/home/mydev/mysql-4.1-bug14400-monty


BitKeeper/etc/ignore:
  auto-union
include/my_global.h:
  Auto merged
myisam/mi_rkey.c:
  Manual null merge as a better fix is already present.
mysql-test/r/myisam.result:
  Manual null merge as a better fix is already present.
mysql-test/t/myisam.test:
  Manual null merge as a better fix is already present.
sql/sql_select.cc:
  Manual merge of purify improvements.
2006-09-19 10:17:25 +02:00
unknown
06ced7c198 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-engines
into  chilla.local:/home/mydev/mysql-5.0--team


mysql-test/r/myisam.result:
  Auto merged
mysql-test/t/myisam.test:
  Auto merged
sql/handler.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
2006-09-19 09:26:42 +02:00
unknown
8fbadf051a Merge bk-internal.mysql.com:/home/bk/mysql-5.0-engines
into  chilla.local:/home/mydev/mysql-5.0--team


mysql-test/r/myisam.result:
  Auto merged
mysql-test/t/myisam.test:
  Auto merged
sql/handler.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
2006-09-18 21:02:47 +02:00
unknown
186573b3d6 Merge may.pils.ru:/home/svoj/devel/mysql/merge/mysql-4.1
into  may.pils.ru:/home/svoj/devel/mysql/merge/mysql-4.1-engines


mysql-test/r/myisam.result:
  Auto merged
mysql-test/t/myisam.test:
  Auto merged
2006-09-18 20:35:33 +05:00
unknown
665ebc05d0 Merge bk-internal:/home/bk/mysql-5.0
into  dl145s.mysql.com:/data/bk/team_tree_merge/MERGE/mysql-5.0-opt


sql/item_cmpfunc.cc:
  Auto merged
sql/item_cmpfunc.h:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_func.h:
  Auto merged
2006-09-18 19:01:07 +04:00
unknown
74c8282479 Merge april.(none):/home/svoj/devel/bk/mysql-4.1-engines
into  april.(none):/home/svoj/devel/mysql/merge/mysql-5.0-engines


myisam/mi_rkey.c:
  Auto merged
mysql-test/r/myisam.result:
  Auto merged
mysql-test/t/myisam.test:
  Auto merged
2006-09-18 16:25:18 +05:00
unknown
dfb219f6c9 Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0
into  april.(none):/home/svoj/devel/mysql/merge/mysql-5.0-engines


mysql-test/r/myisam.result:
  Auto merged
mysql-test/t/myisam.test:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/share/errmsg.txt:
  SCCS merged
2006-09-18 16:23:45 +05:00
unknown
db1a94a7ff Merge bk-internal:/home/bk/mysql-5.0-opt
into  dl145s.mysql.com:/data/bk/team_tree_merge/MERGE/mysql-5.0-opt


sql/sql_insert.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_select.cc:
  Auto merged
2006-09-18 12:20:20 +02:00
unknown
4c8e0e192b merge fixes 2006-09-18 12:14:27 +02:00
unknown
7a0f9c8d4c Merge dl145s.mysql.com:/data/bk/team_tree_merge/MERGE/mysql-4.1-opt
into  dl145s.mysql.com:/data/bk/team_tree_merge/MERGE/mysql-5.0-opt


mysql-test/r/subselect.result:
  SCCS merged
mysql-test/t/subselect.test:
  SCCS merged
2006-09-18 11:19:40 +02:00
unknown
96dbaffda6 Merge bk-internal:/home/bk/mysql-4.1-opt
into  dl145s.mysql.com:/data/bk/team_tree_merge/MERGE/mysql-4.1-opt
2006-09-18 11:09:56 +02:00
unknown
447f2333fe BUG#19419: VIEW: View that the column name is different
by master and slave is made.


mysql-test/r/rpl_view.result:
  BUG#19419: VIEW: View that the column name is different
   by master and slave is made.
   Fixed result for the added test case.
mysql-test/t/rpl_view.test:
  BUG#19419: VIEW: View that the column name is different
   by master and slave is made.
   Added test case.
sql/sql_parse.cc:
  BUG#19419: VIEW: View that the column name is different
   by master and slave is made.
   Fixed: Add column_list to to the view creation statement
   which is written to binlog.
2006-09-18 03:21:00 +04:00
unknown
c46151d961 Fixed bug #22085: Crash on the execution of a prepared
statement that uses an aggregating IN subquery with 
HAVING clause.
A wrong order of the call of split_sum_func2 for the HAVING
clause of the subquery and the transformation for the 
subquery resulted in the creation of a andor structure
that could not be restored at an execution of the prepared
statement.


mysql-test/r/ps.result:
  Added a test cases for bug #22085.
mysql-test/t/ps.test:
  Added a test cases for bug #22085.
2006-09-16 11:50:00 -07:00
unknown
58e178c5cc Fixed bug #21493: crash for the second execution of a function
containing a select statement that uses an aggregating IN subquery.
Added a parameter to the function fix_prepare_information 
to restore correctly the having clause for the second execution.
Saved andor structure of the having conditions at the proper moment
before any calls of split_sum_func2 that could modify the having structure
adding new Item_ref objects. (These additions, are produced not with 
the statement mem_root, but rather with the execution mem_root.)


mysql-test/r/sp.result:
  Added a test case for bug #21493.
mysql-test/t/sp.test:
  Added a test case for bug #21493.
sql/sql_delete.cc:
  Fixed bug #21493: crash for the second execution of a function
  containing a select statement that uses an aggregating IN subquery.
  Added a parameter to the function fix_prepare_information 
  to restore correctly the having clause for the second execution.
sql/sql_insert.cc:
  Fixed bug #21493: crash for the second execution of a function
  containing a select statement that uses an aggregating IN subquery.
  Added a parameter to the function fix_prepare_information 
  to restore correctly the having clause for the second execution.
sql/sql_lex.cc:
  Fixed bug #21493: crash for the second execution of a function
  containing a select statement that uses an aggregating IN subquery.
  Added a parameter to the function fix_prepare_information 
  to restore correctly the having clause for the second execution.
sql/sql_lex.h:
  Fixed bug #21493: crash for the second execution of a function
  containing a select statement that uses an aggregating IN subquery.
  Added a parameter to the function fix_prepare_information 
  to restore correctly the having clause for the second execution.
sql/sql_update.cc:
  Fixed bug #21493: crash for the second execution of a function
  containing a select statement that uses an aggregating IN subquery.
  Added a parameter to the function fix_prepare_information 
  to restore correctly the having clause for the second execution.
2006-09-16 09:50:48 -07:00
unknown
24cdd48020 Merge shellback.(none):/home/msvensson/mysql/work/my50-work
into  shellback.(none):/home/msvensson/mysql/mysql-5.0-maint
2006-09-15 18:00:03 +02:00
unknown
e5345197ed Merge bk-internal:/home/bk/mysql-4.1-opt
into  macbook.gmz:/Users/kgeorge/mysql/work/B21180-4.1-opt


mysql-test/r/subselect.result:
  merge of 4.1-opt
mysql-test/t/subselect.test:
  merge of 4.1-opt
sql/opt_range.h:
  merge of 4.1-opt
2006-09-15 18:56:05 +03:00
unknown
1e5685bde0 Add definition of SHUT_RDWR for compiling on windows 2006-09-15 17:53:45 +02:00
unknown
9e1a6b0eef Merge bk-internal:/home/bk/mysql-5.0-maint
into  shellback.(none):/home/msvensson/mysql/mysql-5.0-maint
2006-09-15 17:09:58 +02:00
unknown
66b6357ea8 Merge shellback.(none):/home/msvensson/mysql/work/my50-work
into  shellback.(none):/home/msvensson/mysql/mysql-5.0-maint
2006-09-15 17:00:29 +02:00
unknown
6373941ad4 Merge shellback.(none):/home/msvensson/mysql/bug20602/my50-bug20602
into  shellback.(none):/home/msvensson/mysql/work/my50-work


configure.in:
  Auto merged
2006-09-15 16:57:37 +02:00
unknown
05b14821ed Merge msvensson.mysql.internal:mysql/my50-m-bug16574
into  shellback.(none):/home/msvensson/mysql/work/my50-work
2006-09-15 16:55:47 +02:00
unknown
0fa2995def Merge shellback.(none):/home/msvensson/mysql/work/my50-work
into  shellback.(none):/home/msvensson/mysql/mysql-5.0-maint
2006-09-15 16:52:52 +02:00
unknown
e15148ad79 Merge msvensson.mysql.internal:mysql/my50-m-bug16576
into  shellback.(none):/home/msvensson/mysql/work/my50-work


configure.in:
  Auto merged
2006-09-15 16:52:08 +02:00
unknown
860ae72264 Merge shellback.(none):/home/msvensson/mysql/work/my50-work
into  shellback.(none):/home/msvensson/mysql/mysql-5.0-maint
2006-09-15 16:50:08 +02:00
unknown
040c9378c1 Merge msvensson.mysql.internal:mysql/my50-m-bug21222
into  shellback.(none):/home/msvensson/mysql/work/my50-work
2006-09-15 16:49:24 +02:00
unknown
cb92ed6444 Merge shellback.(none):/home/msvensson/mysql/bug22139/my50-bug22139
into  shellback.(none):/home/msvensson/mysql/mysql-5.0-maint


tests/Makefile.am:
  Auto merged
2006-09-15 16:42:27 +02:00
unknown
1878b9f6f3 Merge hholzgraefe@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  mysql.com:/home/hartmut/projects/mysql/dev/teamtrees/mysql-5.0-maint
2006-09-15 16:38:18 +02:00