1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-24 19:42:23 +03:00
Commit Graph

1955 Commits

Author SHA1 Message Date
b9949ed9c7 Fixed bug #16281: Multi-table update broken in 5.0 on tables imported from 4.1
Mutli-table uses temporary table to store new values for fields. With the
new values the rowid of the record to be updated is stored in a Field_string
field. Table to be updated is set as source table of the rowid field.
But when the temporary table creates the tmp field for the rowid field it
converts it to a varstring field because the table to be updated was created by
the v4.1. Due to this the stored rowids were broken and no records for 
update were found.

The flag can_alter_field_type is added to Field_string class. When it is set to
0 the field won't be converted to varstring. The Field_string::type() function 
now always returns MYSQL_TYPE_STRING if can_alter_field_type is set to 0.
The multi_update::initialize_tables() function now sets can_alter_field_type
flag to 0 for the rowid fields denying conversion of the field to a varstring
field.
2006-04-05 13:29:04 +04:00
f5f01b15e7 Fixed compiler warnings from gcc 4.0.2:
- Added empty constructors and virtual destructors to many classes and structs
- Removed some usage of the offsetof() macro to instead use C++ class pointers


configure.in:
  Added comment
ndb/include/ndbapi/NdbDictionary.hpp:
  Fixed compiler warnings from gcc 4.0.2
sql/field.cc:
  Fixed compiler warnings from gcc 4.0.2
sql/handler.h:
  Fixed compiler warnings from gcc 4.0.2
sql/item.h:
  Fixed compiler warnings from gcc 4.0.2
sql/item_cmpfunc.h:
  Fixed compiler warnings from gcc 4.0.2
sql/log_event.h:
  Fixed compiler warnings from gcc 4.0.2
sql/mysql_priv.h:
  Fixed compiler warnings from gcc 4.0.2
  For find_table_in_list I fixed it to use proper C++ class pointers instead of C style pointers
sql/opt_range.cc:
  Fixed compiler warnings from gcc 4.0.2
sql/parse_file.h:
  Fixed compiler warnings from gcc 4.0.2
sql/sp_rcontext.h:
  Fixed compiler warnings from gcc 4.0.2
sql/spatial.h:
  Fixed compiler warnings from gcc 4.0.2
sql/sql_base.cc:
  Fixed compiler warnings from gcc 4.0.2
sql/sql_cache.h:
  Fixed compiler warnings from gcc 4.0.2
sql/sql_class.h:
  Fixed compiler warnings from gcc 4.0.2
sql/sql_parse.cc:
  Fixed compiler warnings from gcc 4.0.2
  (Not pretty, but seams to work...)
sql/sql_select.h:
  Fixed compiler warnings from gcc 4.0.2
sql/sql_update.cc:
  Fixed compiler warnings from gcc 4.0.2
sql/table.h:
  Fixed compiler warnings from gcc 4.0.2
sql/tztime.cc:
  Fixed compiler warnings from gcc 4.0.2
sql/tztime.h:
  Fixed compiler warnings from gcc 4.0.2
2006-02-25 17:46:30 +02:00
54274976e7 Fixed compiler warnings from gcc 4.0.2:
- Added empty constructors and virtual destructors to many classes and structs
- Removed some usage of the offsetof() macro to instead use C++ class pointers
2006-02-25 17:46:30 +02:00
ae8ed9fdf1 Merge mysql.com:/home/kostja/mysql/mysql-5.0-root
into  mysql.com:/home/kostja/mysql/mysql-5.1-merge


mysql-test/r/sp-error.result:
  Auto merged
mysql-test/r/sp-security.result:
  Auto merged
mysql-test/r/sp.result:
  Auto merged
mysql-test/t/sp-error.test:
  Auto merged
mysql-test/t/sp-security.test:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sp.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/share/errmsg.txt:
  Manual merge
sql/sql_base.cc:
  Manual merge.
2006-02-22 14:04:24 +03:00
a27e32b565 Merge mysql.com:/home/kostja/mysql/mysql-5.0-root
into  mysql.com:/home/kostja/mysql/mysql-5.1-merge
2006-02-22 14:04:24 +03:00
50c1d251e8 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  mysql.com:/home/dlenev/src/mysql-5.0-bg16593


sql/sql_base.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
2006-02-16 16:22:53 +03:00
e47606a30b Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  mysql.com:/home/dlenev/src/mysql-5.0-bg16593
2006-02-16 16:22:53 +03:00
e1c8d9c9b4 Fix for bug #16593 "Deadlock or crash in stress test for case where
trigger starts trigger".

In short, the deadlock/crash happened when execution of statement, which used
stored functions or activated triggers, coincided with alteration of the
tables used by these functions or triggers (in highly concurrent environment).

Bug was caused by the incorrect handling of tables from prelocked set in
open_tables() functions in situations when refresh happened. This fix replaces
old smart but not very robust way of handling tables after refresh (which was
closing only old tables), with new one which simply closes all tables opened so
far and restarts open_tables().
Also fixed handling of temporary tables in close_tables_for_reopen().

No test case present since bug manifests itself only in concurrent environment.


sql/mysql_priv.h:
  In order to handle correctly case when table list completely consists from tables
  from prelocked set close_tables_for_reopen() have to accept table list as in/out
  parameter.
sql/sql_base.cc:
  open_tables():
    Removed part of comment  which was out of date.
    Changed handling of case when refresh happens during opening of tables, now
    instead of having code which decides for each table if it should be closed
    we simply close all tables. Old code also incorrectly handled tables from
    prelocked set in this situation which resulted in bug #16593 "Deadlock or
    crash in stress test for case where triggers starting trigger".
  close_tables_for_reopen():
    Now we correctly handle the case when table list completely consists from
    tables from prelocked set. Also now we simply close all tables instead
    leaving temporary tables non-closed (such approach allows easily handle
    correctly tables from prelocked set).
sql/sql_prepare.cc:
  In order to handle correctly case when table list completely consists from tables
  from prelocked set close_tables_for_reopen() have to accept table list as in/out
  parameter.
sql/sql_update.cc:
  In order to handle correctly case when table list completely consists from tables
  from prelocked set close_tables_for_reopen() have to accept table list as in/out
  parameter.
2006-02-16 16:19:24 +03:00
4a41a00d4b Fix for bug #16593 "Deadlock or crash in stress test for case where
trigger starts trigger".

In short, the deadlock/crash happened when execution of statement, which used
stored functions or activated triggers, coincided with alteration of the
tables used by these functions or triggers (in highly concurrent environment).

Bug was caused by the incorrect handling of tables from prelocked set in
open_tables() functions in situations when refresh happened. This fix replaces
old smart but not very robust way of handling tables after refresh (which was
closing only old tables), with new one which simply closes all tables opened so
far and restarts open_tables().
Also fixed handling of temporary tables in close_tables_for_reopen().

No test case present since bug manifests itself only in concurrent environment.
2006-02-16 16:19:24 +03:00
ea6aba52c1 Merge mysql.com:/home/kostja/mysql/tmp_merge
into  mysql.com:/home/kostja/mysql/mysql-5.1-merge


configure.in:
  Auto merged
include/heap.h:
  Auto merged
libmysql/libmysql.c:
  Auto merged
mysql-test/r/date_formats.result:
  Auto merged
mysql-test/t/date_formats.test:
  Auto merged
sql/ha_heap.cc:
  Auto merged
sql/ha_heap.h:
  Auto merged
sql/item_timefunc.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_select.h:
  Auto merged
storage/heap/hp_create.c:
  Auto merged
storage/ndb/include/mgmapi/mgmapi_config_parameters.h:
  Auto merged
storage/ndb/test/ndbapi/testBlobs.cpp:
  Auto merged
sql/sql_update.cc:
  Manual merge
tests/mysql_client_test.c:
  SCCS merged
2006-02-08 23:53:45 +03:00
5ed755d0d8 Merge mysql.com:/home/kostja/mysql/tmp_merge
into  mysql.com:/home/kostja/mysql/mysql-5.1-merge
2006-02-08 23:53:45 +03:00
4f9e66daa4 WL#2985 "Partition pruning", "do pruning for UPDATE/DELETE": Post-merge fixes 2006-02-06 18:33:39 +03:00
a906e3c62d WL#2985 "Partition pruning", "do pruning for UPDATE/DELETE": Post-merge fixes 2006-02-06 18:33:39 +03:00
95a3509a66 Merge mysql.com:/opt/local/work/mysql-4.1-root
into  mysql.com:/opt/local/work/mysql-5.0-root


BitKeeper/deleted/.del-rpl_ignore_table.result:
  Delete: mysql-test/r/rpl_ignore_table.result
BitKeeper/deleted/.del-rpl_multi_update4.result:
  Delete: mysql-test/r/rpl_multi_update4.result
BitKeeper/deleted/.del-rpl_ignore_table-slave.opt:
  Delete: mysql-test/t/rpl_ignore_table-slave.opt
BitKeeper/deleted/.del-rpl_ignore_table.test:
  Delete: mysql-test/t/rpl_ignore_table.test
BitKeeper/deleted/.del-rpl_multi_update4-slave.opt:
  Delete: mysql-test/t/rpl_multi_update4-slave.opt
BitKeeper/deleted/.del-disabled.def:
  Auto merged
BitKeeper/deleted/.del-rpl_multi_update4.test:
  Delete: mysql-test/t/rpl_multi_update4.test
heap/hp_create.c:
  Auto merged
mysql-test/r/date_formats.result:
  Auto merged
mysql-test/r/myisam.result:
  Auto merged
mysql-test/r/update.result:
  Auto merged
mysql-test/t/date_formats.test:
  Auto merged
mysql-test/t/heap.test:
  Auto merged
mysql-test/t/kill.test:
  Auto merged
mysql-test/t/update.test:
  Auto merged
ndb/include/mgmapi/mgmapi_config_parameters.h:
  Auto merged
ndb/test/ndbapi/testBlobs.cpp:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_select.h:
  Auto merged
configure.in:
  Manual merge.
libmysql/libmysql.c:
  Manual merge.
mysql-test/r/heap.result:
  Manual merge.
mysql-test/r/heap_hash.result:
  Manual merge.
mysql-test/r/kill.result:
  Manual merge.
sql/ha_heap.cc:
  Manual merge.
sql/ha_heap.h:
  Manual merge.
sql/item_timefunc.cc:
  Manual merge.
sql/sql_class.cc:
  Manual merge.
sql/sql_parse.cc:
  Manual merge.
sql/sql_update.cc:
  Manual merge.
tests/mysql_client_test.c:
  Manual merge.
2006-02-02 18:17:18 +03:00
98091b152a Merge mysql.com:/opt/local/work/mysql-4.1-root
into  mysql.com:/opt/local/work/mysql-5.0-root
2006-02-02 18:17:18 +03:00
d50236f69e WL#2985 "Partition pruning": addition2: perform partition pruning for
single-table UPDATE/DELETE.


mysql-test/r/partition_pruning.result:
  WL#2985 "Partition pruning": addition2: perform partition pruning for UPDATE/DELETE:
  testcases added
mysql-test/t/partition_pruning.test:
  WL#2985 "Partition pruning": addition2: perform partition pruning for UPDATE/DELETE:
  testcases added
sql/sql_delete.cc:
  WL#2985 "Partition pruning": addition2: perform partition pruning for UPDATE/DELETE:
  Added partition pruning call in mysql_delete()
sql/sql_update.cc:
  WL#2985 "Partition pruning": addition2: perform partition pruning for UPDATE/DELETE:
  Added partition pruning call in mysql_update()
2006-01-26 20:17:17 +03:00
c53b5a0b9f WL#2985 "Partition pruning": addition2: perform partition pruning for
single-table UPDATE/DELETE.
2006-01-26 20:17:17 +03:00
7dd2ec0f1b BUG#15935: post-review fixes: added comment 2006-01-26 00:09:04 +03:00
5c3027833b BUG#15935: post-review fixes: added comment 2006-01-26 00:09:04 +03:00
d33ac37ba6 BUG#15935: In mysql_update, don't use full index scan when we could have used quick select scan.
mysql-test/r/update.result:
  Testcase for BUG#15935
mysql-test/t/update.test:
  Testcase for BUG#15935
sql/sql_update.cc:
  BUG#15935: 
  - Do account for the fact that used_index!=MAX_KEY is also true for cases
    when quick select is used, and use quick select then (and not full index scan).
  - Also removed the redundant "used_index= MAX_KEY" statement
2006-01-25 23:25:23 +03:00
5d0e8d81ee BUG#15935: In mysql_update, don't use full index scan when we could have used quick select scan. 2006-01-25 23:25:23 +03:00
de69ff3d63 Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into mysql.com:/home/psergey/mysql-5.1-ppruning-r4


sql/sql_update.cc:
  Auto merged
2006-01-04 11:25:48 +03:00
56ba8abd12 Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into mysql.com:/home/psergey/mysql-5.1-ppruning-r4
2006-01-04 11:25:48 +03:00
3004081129 Fix compiler warning 2006-01-04 11:16:34 +03:00
7c3fe127e0 Fix compiler warning 2006-01-04 11:16:34 +03:00
4b543591b0 Merge mysql.com:/home/mydev/mysql-4.1
into  mysql.com:/home/mydev/mysql-4.1-bug5390


libmysqld/ha_blackhole.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
2005-12-27 10:36:19 +01:00
44ef4989bb Merge mysql.com:/home/mydev/mysql-4.1
into  mysql.com:/home/mydev/mysql-4.1-bug5390
2005-12-27 10:36:19 +01:00
d03d5a305f Merge mysql.com:/home/mydev/mysql-5.0
into  mysql.com:/home/mydev/mysql-5.0-bug5390


BitKeeper/deleted/.del-ha_blackhole.cc~727c69ef7846623a:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_delete.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
2005-12-27 10:31:00 +01:00
ef52a59418 Merge mysql.com:/home/mydev/mysql-5.0
into  mysql.com:/home/mydev/mysql-5.0-bug5390
2005-12-27 10:31:00 +01:00
0040aff931 BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 5.1.
Extended the unique table check by a check of lock data.
Merge sub-tables cannot be detected by doing name checks only.


mysql-test/r/create.result:
  BUG#5390 - problems with merge tables
  Removed a duplicate test.
mysql-test/r/merge.result:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT
  Added test results.
mysql-test/t/create.test:
  BUG#5390 - problems with merge tables
  Removed a duplicate test.
mysql-test/t/merge.test:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT
  Added tests.
sql/lock.cc:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT, Version for 5.1.
  Added a new function to find a duplicate lock in a list of tables.
sql/mysql_priv.h:
  Problem #1: INSERT...SELECT, Version for 5.1.
  Added the thread handle to unique_table().
  Added a declaration for the new function.
sql/sql_base.cc:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT, Version for 5.1.
  Added the thread handle to unique_table().
  Added a call to the new mysql_lock_have_duplicate(),
  which needs the thread handle, to unique_table().
sql/sql_delete.cc:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT, Version for 5.1.
  Added the thread handle to unique_table().
sql/sql_insert.cc:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT, Version for 5.1.
  Added the thread handle to unique_table().
sql/sql_load.cc:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT, Version for 5.1.
  Added the thread handle to unique_table().
sql/sql_parse.cc:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT, Version for 5.1.
  Added the thread handle to unique_table().
sql/sql_update.cc:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT, Version for 5.1.
  Added the thread handle to unique_table().
  Replaced a call to find_table_in_local_list() by
  the newly extended unique_table().
2005-12-22 13:48:00 +01:00
a04c5adb0b BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 5.1.
Extended the unique table check by a check of lock data.
Merge sub-tables cannot be detected by doing name checks only.
2005-12-22 13:48:00 +01:00
09346e6e2d WL#1012: All changes as one single changeset.
This includes both code and test cases.


BitKeeper/deleted/.del-ctype_ucs_binlog.result~280d136b1a0bcf17:
  Delete: mysql-test/r/ctype_ucs_binlog.result
BitKeeper/deleted/.del-rpl_delete_all.result~7c050d592614b3f:
  Delete: mysql-test/r/rpl_delete_all.result
BitKeeper/deleted/.del-rpl000013-slave.opt~18266ad8a2403e8d:
  Delete: mysql-test/t/rpl000013-slave.opt
BitKeeper/deleted/.del-rpl_delete_all.test~700a1490277780e0:
  Delete: mysql-test/t/rpl_delete_all.test
mysql-test/extra/binlog_tests/binlog.test:
  Import patch wl1012.patch
mysql-test/extra/binlog_tests/blackhole.test:
  Import patch wl1012.patch
mysql-test/extra/binlog_tests/ctype_cp932.test:
  Import patch wl1012.patch
mysql-test/extra/binlog_tests/ctype_cp932_binlog.test:
  Import patch wl1012.patch
mysql-test/extra/binlog_tests/ctype_ucs_binlog.test:
  Import patch wl1012.patch
mysql-test/extra/binlog_tests/drop_temp_table.test:
  Import patch wl1012.patch
mysql-test/extra/binlog_tests/insert_select-binlog.test:
  Import patch wl1012.patch
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_ddl.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_deadlock.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_err_ignoredtable.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_flsh_tbls.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_loaddata_m.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_log.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_max_relay_size.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_multi_query.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_reset_slave.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_stm_000001.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_stm_EE_err.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_stm_charset.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_user_variables.test:
  Import patch wl1012.patch
mysql-test/r/binlog_stm_binlog.result:
  Import patch wl1012.patch
mysql-test/r/binlog_stm_blackhole.result:
  Import patch wl1012.patch
mysql-test/r/binlog_stm_ctype_cp932.result:
  Import patch wl1012.patch
mysql-test/r/binlog_stm_ctype_ucs.result:
  Import patch wl1012.patch
mysql-test/r/binlog_stm_drop_tmp_tbl.result:
  Import patch wl1012.patch
mysql-test/r/binlog_stm_insert_select.result:
  Import patch wl1012.patch
mysql-test/r/binlog_stm_mix_innodb_myisam.result:
  Import patch wl1012.patch
mysql-test/r/rpl_000012.result:
  Import patch wl1012.patch
mysql-test/r/rpl_000015.result:
  Import patch wl1012.patch
mysql-test/r/rpl_deadlock_innodb.result:
  Import patch wl1012.patch
mysql-test/r/rpl_flushlog_loop.result:
  Import patch wl1012.patch
mysql-test/r/rpl_loaddata_s.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_000001.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_EE_err.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_charset.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_ddl.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_err_ignoredtable.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_flsh_tbls.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_loaddata_m.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_log.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_max_relay_size.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_multi_query.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_mystery22.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_reset_slave.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_rewrt_db.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_sp.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_timezone.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_until.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_user_variables.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_view.result:
  Import patch wl1012.patch
mysql-test/t/binlog_row_binlog-master.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_000012.test:
  Import patch wl1012.patch
mysql-test/t/rpl_000015-slave.sh:
  Import patch wl1012.patch
mysql-test/t/rpl_000015.slave-mi:
  Import patch wl1012.patch
mysql-test/t/rpl_000015.test:
  Import patch wl1012.patch
mysql-test/t/rpl_deadlock_innodb-slave.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_flushlog_loop-master.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_flushlog_loop-master.sh:
  Import patch wl1012.patch
mysql-test/t/rpl_flushlog_loop-slave.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_flushlog_loop-slave.sh:
  Import patch wl1012.patch
mysql-test/t/rpl_flushlog_loop.test:
  Import patch wl1012.patch
mysql-test/t/rpl_loaddata_s-slave.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_loaddata_s.test:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_000001-slave.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_err_ignoredtable-slave.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_loaddata_m-master.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_log-master.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_log-slave.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_mystery22.test:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_rewrt_db-slave.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_rewrt_db.test:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_sp-master.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_sp-slave.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_sp.test:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_timezone-master.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_timezone-slave.opt:
  Import patch wl1012.patch
BUILD/SETUP.sh:
  Import patch wl1012.patch
Makefile.am:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_timezone.test:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_until.test:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_view.test:
  Import patch wl1012.patch
client/Makefile.am:
  Import patch wl1012.patch
client/client_priv.h:
  Import patch wl1012.patch
client/mysqlbinlog.cc:
  Import patch wl1012.patch
configure.in:
  Import patch wl1012.patch
include/Makefile.am:
  Import patch wl1012.patch
include/base64.h:
  Import patch wl1012.patch
include/config-win.h:
  Import patch wl1012.patch
include/my_base.h:
  Import patch wl1012.patch
include/my_global.h:
  Import patch wl1012.patch
mysql-test/Makefile.am:
  Import patch wl1012.patch
mysql-test/mysql-test-run.pl:
  Import patch wl1012.patch
mysql-test/mysql-test-run.sh:
  Import patch wl1012.patch
mysql-test/r/date_formats.result:
  Import patch wl1012.patch
mysql-test/r/flush_block_commit.result:
  Import patch wl1012.patch
mysql-test/r/innodb.result:
  Import patch wl1012.patch
mysql-test/r/rpl000017.result:
  Import patch wl1012.patch
mysql-test/r/rpl_change_master.result:
  Import patch wl1012.patch
mysql-test/r/rpl_commit_after_flush.result:
  Import patch wl1012.patch
mysql-test/r/rpl_create_database.result:
  Import patch wl1012.patch
mysql-test/r/rpl_do_grant.result:
  Import patch wl1012.patch
mysql-test/r/rpl_loaddata.result:
  Import patch wl1012.patch
mysql-test/r/rpl_log_pos.result:
  Import patch wl1012.patch
mysql-test/r/rpl_multi_delete.result:
  Import patch wl1012.patch
mysql-test/r/rpl_multi_update.result:
  Import patch wl1012.patch
mysql-test/r/rpl_openssl.result:
  Import patch wl1012.patch
mysql-test/r/rpl_replicate_do.result:
  Import patch wl1012.patch
mysql-test/r/rpl_rotate_logs.result:
  Import patch wl1012.patch
mysql-test/r/rpl_server_id1.result:
  Import patch wl1012.patch
mysql-test/r/rpl_server_id2.result:
  Import patch wl1012.patch
mysql-test/r/rpl_temporary.result:
  Import patch wl1012.patch
mysql-test/r/user_var-binlog.result:
  Import patch wl1012.patch
mysql-test/t/create_select_tmp.test:
  Import patch wl1012.patch
mysql-test/t/date_formats.test:
  Import patch wl1012.patch
mysql-test/t/disabled.def:
  Import patch wl1012.patch
mysql-test/t/innodb.test:
  Import patch wl1012.patch
mysql-test/t/mysqlbinlog.test:
  Import patch wl1012.patch
mysql-test/t/mysqlbinlog2.test:
  Import patch wl1012.patch
mysql-test/t/rpl000002.test:
  Import patch wl1012.patch
mysql-test/t/rpl000006.test:
  Import patch wl1012.patch
mysql-test/t/rpl000013.test:
  Import patch wl1012.patch
mysql-test/t/rpl000017.test:
  Import patch wl1012.patch
mysql-test/t/rpl_auto_increment.test:
  Import patch wl1012.patch
mysql-test/t/rpl_change_master.test:
  Import patch wl1012.patch
mysql-test/t/rpl_commit_after_flush.test:
  Import patch wl1012.patch
mysql-test/t/rpl_create_database.test:
  Import patch wl1012.patch
mysql-test/t/rpl_do_grant.test:
  Import patch wl1012.patch
mysql-test/t/rpl_drop.test:
  Import patch wl1012.patch
mysql-test/t/rpl_empty_master_crash.test:
  Import patch wl1012.patch
mysql-test/t/rpl_failed_optimize.test:
  Import patch wl1012.patch
mysql-test/t/rpl_heap.test:
  Import patch wl1012.patch
mysql-test/t/rpl_insert_id.test:
  Import patch wl1012.patch
mysql-test/t/rpl_insert_ignore.test:
  Import patch wl1012.patch
mysql-test/t/rpl_loaddata.test:
  Import patch wl1012.patch
mysql-test/t/rpl_log_pos.test:
  Import patch wl1012.patch
mysql-test/t/rpl_multi_delete.test:
  Import patch wl1012.patch
mysql-test/t/rpl_multi_update.test:
  Import patch wl1012.patch
mysql-test/t/rpl_multi_update2.test:
  Import patch wl1012.patch
mysql-test/t/rpl_multi_update3.test:
  Import patch wl1012.patch
mysql-test/t/rpl_openssl.test:
  Import patch wl1012.patch
mysql-test/t/rpl_redirect.test:
  Import patch wl1012.patch
mysql-test/t/rpl_relayrotate.test:
  Import patch wl1012.patch
mysql-test/t/rpl_replicate_do.test:
  Import patch wl1012.patch
mysql-test/t/rpl_rotate_logs.test:
  Import patch wl1012.patch
mysql-test/t/rpl_server_id1.test:
  Import patch wl1012.patch
mysql-test/t/rpl_sp_effects.test:
  Import patch wl1012.patch
mysql-test/t/rpl_temporary.test:
  Import patch wl1012.patch
mysql-test/t/rpl_trigger.test:
  Import patch wl1012.patch
mysql-test/t/sp.test:
  Import patch wl1012.patch
mysql-test/t/user_var-binlog.test:
  Import patch wl1012.patch
mysys/Makefile.am:
  Import patch wl1012.patch
mysys/base64.c:
  Import patch wl1012.patch
sql/Makefile.am:
  Import patch wl1012.patch
sql/ha_innodb.cc:
  Import patch wl1012.patch
sql/ha_innodb.h:
  Import patch wl1012.patch
sql/ha_partition.cc:
  Import patch wl1012.patch
sql/handler.cc:
  Import patch wl1012.patch
sql/handler.h:
  Import patch wl1012.patch
sql/item_sum.cc:
  Import patch wl1012.patch
sql/log.cc:
  Import patch wl1012.patch
sql/log_event.cc:
  Import patch wl1012.patch
sql/log_event.h:
  Import patch wl1012.patch
sql/mysql_priv.h:
  Import patch wl1012.patch
sql/mysqld.cc:
  Import patch wl1012.patch
sql/rpl_filter.h:
  Import patch wl1012.patch
sql/set_var.cc:
  Import patch wl1012.patch
sql/share/errmsg.txt:
  Import patch wl1012.patch
sql/slave.cc:
  Import patch wl1012.patch
sql/slave.h:
  Import patch wl1012.patch
sql/sp.cc:
  Import patch wl1012.patch
sql/sp_head.cc:
  Import patch wl1012.patch
sql/sql_acl.cc:
  Import patch wl1012.patch
sql/sql_base.cc:
  Import patch wl1012.patch
sql/sql_class.cc:
  Import patch wl1012.patch
sql/sql_class.h:
  Import patch wl1012.patch
sql/sql_delete.cc:
  Import patch wl1012.patch
sql/sql_insert.cc:
  Import patch wl1012.patch
sql/sql_lex.h:
  Import patch wl1012.patch
sql/sql_list.h:
  Import patch wl1012.patch
sql/sql_load.cc:
  Import patch wl1012.patch
sql/sql_parse.cc:
  Import patch wl1012.patch
sql/sql_plugin.cc:
  Import patch wl1012.patch
sql/sql_rename.cc:
  Import patch wl1012.patch
sql/sql_repl.h:
  Import patch wl1012.patch
sql/sql_select.cc:
  Import patch wl1012.patch
sql/sql_show.cc:
  Import patch wl1012.patch
sql/sql_table.cc:
  Import patch wl1012.patch
sql/sql_udf.cc:
  Import patch wl1012.patch
sql/sql_union.cc:
  Import patch wl1012.patch
sql/sql_update.cc:
  Import patch wl1012.patch
sql/sql_yacc.yy:
  Import patch wl1012.patch
sql/table.cc:
  Import patch wl1012.patch
sql/table.h:
  Import patch wl1012.patch
storage/innobase/include/lock0lock.h:
  Import patch wl1012.patch
storage/innobase/include/row0mysql.h:
  Import patch wl1012.patch
storage/innobase/include/row0vers.h:
  Import patch wl1012.patch
storage/innobase/lock/lock0lock.c:
  Import patch wl1012.patch
storage/innobase/row/row0mysql.c:
  Import patch wl1012.patch
storage/innobase/row/row0sel.c:
  Import patch wl1012.patch
storage/innobase/row/row0vers.c:
  Import patch wl1012.patch
2005-12-22 06:39:02 +01:00
ad126d90e0 WL#1012: All changes as one single changeset.
This includes both code and test cases.
2005-12-22 06:39:02 +01:00
5113bdffd0 BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 5.0.
Extended the unique table check by a check of lock data.
Merge sub-tables cannot be detected by doing name checks only.


mysql-test/r/create.result:
  BUG#5390 - problems with merge tables
  Removed a duplicate test.
mysql-test/r/merge.result:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT
  Added test results.
mysql-test/t/create.test:
  BUG#5390 - problems with merge tables
  Removed a duplicate test.
mysql-test/t/merge.test:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT
  Added tests.
sql/lock.cc:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT, Version for 5.0.
  Added a new function to find a duplicate lock in a list of tables.
sql/mysql_priv.h:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT, Version for 5.0.
  Added the thread handle to unique_table().
  Added a declaration for the new function.
sql/sql_base.cc:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT, Version for 5.0.
  Added the thread handle to unique_table().
  Added a call to the new mysql_lock_have_duplicate(),
  which needs the thread handle, to unique_table().
sql/sql_delete.cc:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT, Version for 5.0.
  Added the thread handle to unique_table().
sql/sql_insert.cc:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT, Version for 5.0.
  Added the thread handle to unique_table().
sql/sql_load.cc:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT, Version for 5.0.
  Added the thread handle to unique_table().
sql/sql_parse.cc:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT, Version for 5.0.
  Added the thread handle to unique_table().
sql/sql_update.cc:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT, Version for 5.0.
  Added the thread handle to unique_table().
  Replaced a call to find_table_in_local_list() by
  the newly extended unique_table().
2005-12-20 16:35:05 +01:00
b0e84cb999 BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 5.0.
Extended the unique table check by a check of lock data.
Merge sub-tables cannot be detected by doing name checks only.
2005-12-20 16:35:05 +01:00
6a53fec551 Merge mysql.com:/home/jimw/my/mysql-5.0-clean
into  mysql.com:/home/jimw/my/mysql-5.1-clean


mysql-test/r/sp.result:
  Auto merged
sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_strfunc.cc:
  Auto merged
sql/item_subselect.cc:
  Auto merged
sql/item_sum.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_db.cc:
  Auto merged
sql/sql_delete.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/sql_base.cc:
  Resolve conflict
2005-12-12 11:57:07 -08:00
00d29cd259 Merge mysql.com:/home/jimw/my/mysql-5.0-clean
into  mysql.com:/home/jimw/my/mysql-5.1-clean
2005-12-12 11:57:07 -08:00
d6e5fdf08a Merge mysql.com:/home/jimw/my/mysql-4.1-clean
into  mysql.com:/home/jimw/my/mysql-5.0-clean


mysql-test/r/bdb.result:
  Resolve conflicts
mysql-test/t/bdb.test:
  Resolve conflicts
sql/sql_delete.cc:
  Resolve conflicts
sql/sql_insert.cc:
  Resolve conflicts
sql/sql_update.cc:
  Resolve conflicts
2005-12-12 10:11:56 -08:00
e18679c7ff Merge mysql.com:/home/jimw/my/mysql-4.1-clean
into  mysql.com:/home/jimw/my/mysql-5.0-clean
2005-12-12 10:11:56 -08:00
ab597139a7 Fix calls to free_underlaid_joins() in INSERT, DELETE, and UPDATE
handling so that indexes are closed before trying to commit the
transaction. (Bug #15536)


mysql-test/r/bdb.result:
  Add new results
mysql-test/t/bdb.test:
  Add new test
sql/sql_delete.cc:
  Move call to free_underlaid_joins() to before ha_autocommit_or_rollback().
sql/sql_insert.cc:
  Move call to free_underlaid_joins() to before ha_autocommit_or_rollback().
sql/sql_update.cc:
  Move call to free_underlaid_joins() to before ha_autocommit_or_rollback().
2005-12-08 12:33:33 -08:00
f7ff3d653a Fix calls to free_underlaid_joins() in INSERT, DELETE, and UPDATE
handling so that indexes are closed before trying to commit the
transaction. (Bug #15536)
2005-12-08 12:33:33 -08:00
f6cac54bf6 BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 4.1.
INSERT ... SELECT with the same table on both sides (hidden
below a MERGE table) does now work by buffering the select result.
The duplicate detection works now after open_and_lock_tables() 
on the locks.
I did not find a test case that failed without the change in
sql_update.cc. I made the change anyway as it should in theory
fix a possible MERGE table problem with multi-table update.


libmysqld/ha_blackhole.cc:
  BUG#5390 - problems with merge tables
  No idea, how the symlink change made it into my patch.
mysql-test/r/create.result:
  BUG#5390 - problems with merge tables
  Removed a duplicate test.
mysql-test/r/merge.result:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT, Version for 4.1.
  Added test results.
mysql-test/t/create.test:
  BUG#5390 - problems with merge tables
  Removed a duplicate test.
mysql-test/t/merge.test:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT, Version for 4.1.
  Added tests.
sql/lock.cc:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT, Version for 4.1.
  Added a new function to find a duplicate lock in a list of tables.
sql/mysql_priv.h:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT, Version for 4.1.
  Added a declaration for the new function.
sql/sql_parse.cc:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT, Version for 4.1.
  Changed the duplicate tables detection for INSERT ... SELECT
  to use the new function, which does also work for MERGE tables.
sql/sql_update.cc:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT, Version for 4.1.
  Changed the duplicate tables detection for UPDATE
  to use the new function, which does also work for MERGE tables.
2005-12-07 19:52:26 +01:00
5aa315e23a BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 4.1.
INSERT ... SELECT with the same table on both sides (hidden
below a MERGE table) does now work by buffering the select result.
The duplicate detection works now after open_and_lock_tables() 
on the locks.
I did not find a test case that failed without the change in
sql_update.cc. I made the change anyway as it should in theory
fix a possible MERGE table problem with multi-table update.
2005-12-07 19:52:26 +01:00
e324da302f Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-2


sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_strfunc.cc:
  Auto merged
sql/item_sum.cc:
  Auto merged
sql/item_sum.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2005-12-02 20:42:36 -08:00
09e6597015 Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-2
2005-12-02 20:42:36 -08:00
93e597c12c Merge moonbone.local:/work/15028-bug-5.0-mysql
into moonbone.local:/work/15028-bug-5.1-new-mysql


configure.in:
  Auto merged
mysql-test/r/query_cache.result:
  Auto merged
mysql-test/t/query_cache.test:
  Auto merged
sql/sql_cache.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
storage/ndb/src/kernel/blocks/backup/Backup.cpp:
  Auto merged
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
  Auto merged
2005-12-02 22:07:10 +03:00
f2559fbcc3 Merge moonbone.local:/work/15028-bug-5.0-mysql
into moonbone.local:/work/15028-bug-5.1-new-mysql
2005-12-02 22:07:10 +03:00
454e085291 Manually merged
mysql-test/r/update.result:
  Auto merged
mysql-test/t/update.test:
  Auto merged
ndb/src/kernel/blocks/backup/Backup.cpp:
  Auto merged
sql/sql_update.cc:
  Auto merged
2005-12-02 19:42:14 +03:00
00b902b065 Manually merged 2005-12-02 19:42:14 +03:00
136c81732a Fix bug#15028 Multitable update returns different numbers of matched rows
depending on table order

multi_update::send_data() was counting updates, not updated rows. Thus if one 
record have several updates it will be counted several times in 'rows matched'
but updated only once.

multi_update::send_data() now counts only unique rows.


sql/sql_update.cc:
  Fix bug#15028  Multitable update returns different numbers of matched rows
  depending on table order
  multi_update::send_data() now counts only unique rows.
mysql-test/t/update.test:
  Test case for bug#15028 Multitable update returns different numbers of matched rows depending on table order
mysql-test/r/update.result:
  Test case for bug#15028 Multitable update returns different numbers of matched rows depending on table order
2005-12-01 23:22:20 +03:00