Commit graph

48782 commits

Author SHA1 Message Date
unknown
3887705e09 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/24989-bug-5.0-opt-mysql


sql/ha_innodb.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
2007-07-30 18:10:34 +04:00
unknown
9246c37201 Bug#24989: The DEADLOCK error is improperly handled by InnoDB.
When innodb detects a deadlock it calls ha_rollback_trans() to rollback the 
main transaction. But such action isn't allowed from inside of triggers and
functions. When it happen the 'Explicit or implicit commit' error is thrown
even if there is no commit/rollback statements in the trigger/function. This
leads to the user confusion.

Now the convert_error_code_to_mysql() function doesn't call the 
ha_rollback_trans() function directly but rather calls the
mark_transaction_to_rollback function and returns an error.
The sp_rcontext::find_handler() now doesn't allow errors to be caught by the
trigger/function error handlers when the thd->is_fatal_sub_stmt_error flag
is set. Procedures are still allowed to catch such errors.
The sp_rcontext::find_handler function now accepts a THD handle as a parameter.
The transaction_rollback_request and the is_fatal_sub_stmt_error flags are 
added to the THD class. The are initialized by the THD class constructor.
Now the ha_autocommit_or_rollback function rolls back main transaction
when not in a sub statement and the thd->transaction_rollback_request
is set.
The THD::restore_sub_statement_state function now resets the 
thd->is_fatal_sub_stmt_error flag on exit from a sub-statement.


sql/ha_innodb.cc:
  Bug#24989: The DEADLOCK error is improperly handled by InnoDB.
  Now the convert_error_code_to_mysql() function doesn't call the
  ha_rollback_trans() function directly but rather calls the
  mark_transaction_to_rollback function and returns an error.
sql/handler.cc:
  Bug#24989: The DEADLOCK error is improperly handled by InnoDB.
  Now the ha_autocommit_or_rollback function rolls back main transaction
  when not in a sub statement and the thd->transaction_rollback_request
  is set.
mysql-test/r/innodb-big.result:
  Added a test case for the bug#24989: The DEADLOCK error is improperly handled by
  InnoDB.
mysql-test/t/innodb-big.test:
  Added a test case for the bug#24989: The DEADLOCK error is improperly handled by
  InnoDB.
sql/sql_class.h:
  Bug#24989: The DEADLOCK error is improperly handled by InnoDB.
  The transaction_rollback_request and the is_fatal_sub_stmt_error flags are 
  added to the THD class.
sql/sql_class.cc:
  Bug#24989: The DEADLOCK error is improperly handled by InnoDB.
  Initialization of the transaction_rollback_request and the
  is_fatal_sub_stmt_error flags are added to the THD class constructor.
  The mark_transaction_to_rollback function is added.
  The THD::restore_sub_statement_state function now resets the
  thd->is_fatal_sub_stmt_error flag on exit from a sub-statement.
sql/sp_rcontext.h:
  Bug#24989: The DEADLOCK error is improperly handled by InnoDB.
  The sp_rcontext::find_handler function now accepts a THD handle as a parameter.
  The in_sub_stmt flag is added to the sp_rcontext class.
sql/sp_rcontext.cc:
  Bug#24989: The DEADLOCK error is improperly handled by InnoDB.
  The sp_rcontext::find_handler() now doesn't allow errors to be caught by the
  trigger/function error handlers when the thd->is_fatal_sub_stmt_error flag
  is set. Instead it tries to find a most inner procedure that isn't called
  directly or indirectly from any function/trigger.
  Procedures are still allowed to catch such errors.
  The sp_rcontext::find_handler function now accepts a THD handle as a parameter.
2007-07-30 17:14:34 +04:00
unknown
b9097abf00 Moved the DBUG_ASSERT from bug 28983 to
a place where it would not obstruct
correct multithreading.
2007-07-30 16:03:52 +03:00
unknown
33fc4ad4e1 Fixed bug #30120.
SP with local variables with non-ASCII names crashed the server.

The server replaces SP local variable names with NAME_CONST calls
when putting statements into the binary log. It used UTF8-encoded
item names as variable names for the replacement inside NAME_CONST
calls. However, statement string may be encoded by any
known character set by the SET NAMES statement.
The server used byte length of UTF8-encoded names to increment
the position in the query string that led to array index overrun.


sql/item.cc:
  Fixed bug #30120.
  The Item_splocal class constructor has been modified to
  accept new parameter `len_in_q': the byte length of
  variable name in the query string.
sql/item.h:
  Fixed bug #30120.
  The Item_splocal class has been modified to keep new
  field `len_in_query': the byte length of variable name in
  the query string.
sql/sp_head.cc:
  Fixed bug #30120.
  The subst_spvars function has been modified to increment
  position in the query string by the lengths of not
  encoded variable names instead of byte length of names
  encoded to UTF-8.
sql/sql_yacc.yy:
  Fixed bug #30120.
  The simple_ident rule action has been modified to
  pass the byte length of the local variable name token
  to the Item_splocal object constructor.
mysql-test/t/sp.test:
  Updated test case for bug #30120.
mysql-test/r/sp.result:
  Updated test case for bug #30120.
2007-07-30 04:35:16 +05:00
unknown
c0b65fb77d disabled.def:
ddl_i18n_koi8r.test has been disabled to ignore bug #30120.


mysql-test/t/disabled.def:
  ddl_i18n_koi8r.test has been disabled to ignore bug #30120.
2007-07-30 03:20:45 +05:00
unknown
11816452bc sp_head.cc:
Post-merge fix.


sql/sp_head.cc:
  Post-merge fix.
2007-07-29 21:12:54 +05:00
unknown
a0a216bb40 Merge gleb.loc:/home/uchum/work/bk/5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.1-opt


mysql-test/r/query_cache.result:
  Auto merged
mysql-test/r/view.result:
  Auto merged
mysql-test/t/query_cache.test:
  Auto merged
sql/sql_show.cc:
  Auto merged
mysql-test/t/view.test:
  Merge with 5.0-opt.
sql/sp_head.cc:
  Merge with 5.0-opt.
2007-07-29 14:41:39 +05:00
unknown
d86f0a1382 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/29856-bug-5.0-opt-mysql


sql/sp_head.cc:
  Auto merged
mysql-test/r/query_cache.result:
  SCCS merged
mysql-test/t/query_cache.test:
  SCCS merged
2007-07-28 22:47:03 +04:00
unknown
ba9e6a5673 Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.0-opt
2007-07-28 23:47:02 +05:00
unknown
26c63ee58d Merge gleb.loc:/home/uchum/work/bk/5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.1-opt


mysql-test/r/sp.result:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
sql/sql_base.cc:
  Merge with 5.0-opt.
2007-07-28 23:38:59 +05:00
unknown
3c1716151e Merge gleb.loc:/home/uchum/work/bk/5.0-opt-29834
into  gleb.loc:/home/uchum/work/bk/5.0-opt


sql/sql_base.cc:
  Auto merged
mysql-test/r/sp.result:
  Merge with local tree.
mysql-test/t/sp.test:
  Merge with local tree.
2007-07-28 23:36:27 +05:00
unknown
90c5621d6c Fixed bug #29834.
Using view columns by their names during an execution of
a prepared SELECT statement or a SELECT statement inside
a SP caused a memory leak.


sql/sql_base.cc:
  Fixed bug #29834.
  The find_field_in_view function has been modified to
  use the execution memory root for the Item_direct_view_ref
  objects allocation at non-first executions of
  a PS/SP instead of the statement memory.
mysql-test/t/sp.test:
  Updated test case for bug #29834.
mysql-test/r/sp.result:
  Updated test case for bug #29834.
2007-07-28 23:10:38 +05:00
unknown
da2652884c Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/30020-bug-5.0-opt-mysql
2007-07-28 21:39:03 +04:00
unknown
78dd1fe530 Merge gleb.loc:/home/uchum/work/bk/5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.1-opt
2007-07-28 22:26:29 +05:00
unknown
7b9a6b1b37 Merge gleb.loc:/home/uchum/work/bk/5.1
into  gleb.loc:/home/uchum/work/bk/5.1-opt
2007-07-28 21:26:01 +05:00
unknown
bb2d58f5e4 Merge gleb.loc:/home/uchum/work/bk/5.0
into  gleb.loc:/home/uchum/work/bk/5.0-opt
2007-07-28 21:24:19 +05:00
unknown
92d83dd212 Merge gleb.loc:/home/uchum/work/bk/5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.1-opt
2007-07-28 21:18:19 +05:00
unknown
aa4a3c9ad0 Bug#30020: Insufficient check led to a wrong info provided by the
information schema table.

The get_schema_views_record() function fills records in the view table of
the informations schema with data about given views. Among other info
the is_updatable flag is set. But the check whether the view is updatable or
not wasn't covering all cases thus sometimes providing wrong info.
This might led to a user confusion.

Now the get_schema_views_record function additionally calls to the 
view->can_be_merge() function to find out whether the view can be updated or
not.


mysql-test/t/view.test:
  Added a test case for the bug#30020: Insufficient check led to a wrong info
  provided by the information schema table.
mysql-test/r/view.result:
  Added a test case for the bug#30020: Insufficient check led to a wrong info
  provided by the information schema table.
sql/sql_show.cc:
  Bug#30020: Insufficient check led to a wrong info provided by the
  information schema table.
  Now the get_schema_views_record function additionally calls to the 
  view->can_be_merge() function to find out whether the view can be updated or
  not.
2007-07-28 16:02:29 +04:00
unknown
40d596c200 Bug#29856: Insufficient buffer space led to a server crash.
The subst_spvars function is used to create query string with SP variables 
substituted with their values. This string is used later for the binary log
and for the query cache. The problem is that the
query_cache_send_result_to_client function requires some additional space
after the query to store database name and query cache flags. This 
space wasn't reserved by the subst_spvars function which led to a memory
corruption and crash.

Now the subst_spvars function reserves additional space for the query cache.


mysql-test/t/query_cache.test:
  Added a test case for the bug#29856: Insufficient buffer space led to a server crash.
mysql-test/r/query_cache.result:
  Added a test case for the bug#29856: Insufficient buffer space led to a server crash.
sql/sp_head.cc:
  Bug#29856: Insufficient buffer space led to a server crash.
  Now the subst_spvars function reserves additional space for the query cache.
2007-07-28 15:01:29 +04:00
unknown
e20fb23627 Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/home/hf/work/29878/my51-29878
2007-07-28 14:11:34 +05:00
unknown
5fb351ae07 rpl_session_var.test fixed to not depend on mysql_test_run parameters
mysql-test/suite/rpl/r/rpl_session_var.result:
  result fixed
mysql-test/suite/rpl/t/rpl_session_var.test:
  test fixed
2007-07-28 14:10:56 +05:00
unknown
9c79db318c show_check.result:
Addendum to thr fix for bug 30000:
  show procedure/function code defined only in debug builds
show_check.test:
  Addendum to thr fix for bug 30000: 
  show procedure/function code defined only in debug builds


mysql-test/t/show_check.test:
  Addendum to thr fix for bug 30000: 
  show procedure/function code defined only in debug builds
mysql-test/r/show_check.result:
  Addendum to thr fix for bug 30000:
  show procedure/function code defined only in debug builds
2007-07-28 08:42:43 +03:00
unknown
0ce785538f Merge bk@192.168.21.1:mysql-5.0-opt
into  mysql.com:/home/hf/work/29878/my50-29878
2007-07-28 01:33:03 +05:00
unknown
baf24e69da Merge bk@192.168.21.1:mysql-5.1-opt
into  mysql.com:/home/hf/work/29878/my51-29878
2007-07-28 00:50:17 +05:00
unknown
8feaed2ae7 Merge mysql.com:/home/hf/work/29878/my50-29878
into  mysql.com:/home/hf/work/29878/my51-29878


mysql-test/suite/rpl/r/rpl_session_var.result:
  Auto merged
mysql-test/suite/rpl/t/rpl_session_var.test:
  Auto merged
sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/item_strfunc.h:
  Auto merged
2007-07-27 22:43:33 +05:00
unknown
c40dabb64d Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B30000-5.1-opt
2007-07-27 17:57:29 +03:00
unknown
82c87c0a44 Bug #30000: SHOW commands once again ends up in the
slow query log
Disable the SHOW commands to appear in the show query
log.
Update the commands type array.


mysql-test/r/show_check.result:
  Bug #30000: test case
mysql-test/t/show_check.test:
  Bug #30000: test case
sql/sql_parse.cc:
  Bug #30000: skip SHOW commands from the
  slow query log.
2007-07-27 17:55:39 +03:00
unknown
d47763406d fixing the 5.1-opt merge of the fix for bug 29571:
cannot check the statments in the binlog for row based 
replication.
2007-07-27 17:29:48 +03:00
unknown
d27bf14ed7 Bug #29878 Garbage data generation when executing SESSION_USER() on a slave.
Item_func_user doesn't calculate anything in it's val_str() method,
just returns saved str_value.
Though Item::save_in_field method can destroy str_value, relying on
val_str() return. As a result we get the garbage stored in field.

We cannot use Item::save_in_field implementation for Item_func_user,
reimplement it in simpler way.


mysql-test/r/rpl_session_var.result:
  Bug #29878 Garbage data generation when executing SESSION_USER() on a slave.
  
  test result
mysql-test/t/rpl_session_var.test:
  Bug #29878 Garbage data generation when executing SESSION_USER() on a slave.
  
  test case
sql/item.cc:
  Bug #29878 Garbage data generation when executing SESSION_USER() on a slave.
  
  duplicating code moved to Item::save_str_in_field
sql/item.h:
  Bug #29878 Garbage data generation when executing SESSION_USER() on a slave.
  
  duplicating code moved to Item::save_str_in_field
sql/item_strfunc.h:
  Bug #29878 Garbage data generation when executing SESSION_USER() on a slave.
  
  Item_func_user::save_in_field implemented as simple storing str_value
2007-07-27 18:42:25 +05:00
unknown
78587a08ac portation of the test case for bug 29571 to cover row replication 2007-07-27 15:36:10 +03:00
unknown
13c679124f 5.0-opt -> 5.1-opt merge of the test case for bug 29571:
- reset the logs before and after the test.
 - cleanup from the previous tests : use the correct schema.


mysql-test/extra/rpl_tests/rpl_insert_delayed.test:
  5.0-opt -> 5.1-opt merge of the test case for bug 29571.
mysql-test/suite/rpl/r/rpl_stm_insert_delayed.result:
  5.0-opt -> 5.1-opt merge of the test case for bug 29571.
2007-07-27 14:28:36 +03:00
unknown
ebec403511 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B30036-5.1-opt
2007-07-27 12:54:05 +03:00
unknown
f97155c9f6 Merge mysql.com:/home/svoj/devel/mysql/BUG29957/mysql-5.0-engines
into  mysql.com:/home/svoj/devel/mysql/BUG29957/mysql-5.1-engines


storage/myisam/mi_extra.c:
  Auto merged
mysql-test/r/alter_table.result:
  Manual merge
mysql-test/t/alter_table.test:
  Manual merge
2007-07-27 14:44:31 +05:00
unknown
766725c502 Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0-engines
into  mysql.com:/home/svoj/devel/mysql/BUG29957/mysql-5.0-engines
2007-07-27 14:36:43 +05:00
unknown
e92ce5d56c BUG#29957 - alter_table.test fails
INSERT/DELETE/UPDATE followed by ALTER TABLE within LOCK TABLES
may cause table corruption on Windows.

That happens because ALTER TABLE writes outdated shared state
info into index file.

Fixed by removing obsolete workaround.

Affects MyISAM tables on Windows only.


myisam/mi_extra.c:
  On windows when mi_extra(HA_EXTRA_PREPARE_FOR_DELETE) is called,
  we release external lock and close index file. If we're in LOCK
  TABLES, MyISAM state info doesn't get updated until UNLOCK TABLES.
  
  That means when we release external lock and we're in LOCK TABLES,
  we may write outdated state info.
  
  As SQL layer closes all table instances, we do not need this
  workaround anymore.
mysql-test/r/alter_table.result:
  A test case for BUG#29957.
mysql-test/t/alter_table.test:
  A test case for BUG#29957.
2007-07-27 14:30:25 +05:00
unknown
30408a12d8 Merge gleb.loc:/home/uchum/work/bk/5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.1-opt


sql/sql_insert.cc:
  Auto merged
BitKeeper/deleted/.del-bdb.result:
  Auto merged
BitKeeper/deleted/.del-ha_berkeley.cc:
  Auto merged
BitKeeper/deleted/.del-rpl_insert_delayed.result:
  Auto merged
mysql-test/extra/rpl_tests/rpl_insert_delayed.test:
  Auto merged
sql/sql_select.cc:
  Merge with 5.0-opt.
sql/table.cc:
  Merge with 5.0-opt.
2007-07-27 13:38:11 +05:00
unknown
1a6ced2cfa Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/home/psergey/mysql-5.0-bdb-fix
2007-07-26 20:54:28 +04:00
unknown
9206f68477 BUG#28591: make the fix work for BDB tables too:
- make ha_berkeley::cmp_ref() take into account that auto-generated PKs 
   are stored in LSB-first order. 
 - Remove the temporary code that made the bugfix work for innodb only 


mysql-test/r/bdb.result:
  Adjust test-results.
sql/ha_berkeley.cc:
  BUG#28591: make the fix work for BDB tables too:
   - make ha_berkeley::cmp_ref() take into account that auto-generated PKs 
     are stored in LSB-first order.
sql/sql_select.cc:
  BUG#28591: Remove "innodb only" clause as the fix now works for BDB too
sql/table.cc:
  BUG#28591: Remove "innodb only" clause as the fix now works for BDB too
2007-07-26 20:52:53 +04:00
unknown
c7150fd814 Bug #30036: SHOW TABLE TYPES causes the debug client to crash
SHOW TABLE TYPES is a (to be deprecated) synonym for 
SHOW STORAGE ENGINES.
Fixed to use the right schema table in addition to 
issuing a warning.


mysql-test/r/show_check.result:
  Bug #30036: test case
mysql-test/t/show_check.test:
  Bug #30036: test case
sql/sql_yacc.yy:
  Bug #30036: use the right schema table
2007-07-26 18:33:05 +03:00
unknown
d64f73e431 Merge xiphis.org:/anubis/antony/work/mysql-5.0-engines.merge
into  xiphis.org:/anubis/antony/work/mysql-5.1-engines.merge
2007-07-26 08:18:32 -07:00
unknown
dd1d665a34 Merge xiphis.org:/anubis/antony/work/mysql-5.1-engines
into  xiphis.org:/anubis/antony/work/mysql-5.1-engines.merge
2007-07-26 07:57:50 -07:00
unknown
b7eca8bc16 Merge xiphis.org:/anubis/antony/work/mysql-5.0-engines
into  xiphis.org:/anubis/antony/work/mysql-5.0-engines.merge
2007-07-26 07:56:37 -07:00
unknown
f2a91e55c8 Addendum to bug 29571: wait for INSERT DELAYED to finish on master 2007-07-26 16:59:21 +03:00
unknown
935ce76278 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B29571-5.0-opt


sql/sql_insert.cc:
  Auto merged
2007-07-26 11:32:27 +03:00
unknown
5babac539d Bug #29571: INSERT DELAYED IGNORE written to binary log on
the master but on the slave

MySQL can decide to "downgrade" a INSERT DELAYED statement
to normal insert in certain situations.
One such situation is when the slave is replaying a 
replication feed.
However INSERT DELAYED is logged even if there're no updates
whereas the NORMAL INSERT is not logged in such cases.

Fixed by always logging a "downgraded" INSERT DELAYED: even 
if there were no updates.


mysql-test/r/rpl_insert_delayed.result:
  Bug #29571: test case
mysql-test/t/rpl_insert_delayed.test:
  Bug #29571: test case
sql/sql_insert.cc:
  Bug #29571: log INSERT DELAYED even if it was 
  "downgraded" to INSERT (and there were no updates)
2007-07-26 11:31:10 +03:00
unknown
a4b9f7f7c4 Merge acurtis@bk-internal.mysql.com:/home/bk/mysql-5.1-engines
into  pcg5ppc.xiphis.org:/Users/antony/Work/p1-bug29522.1
2007-07-25 21:21:02 -07:00
unknown
5cb265d874 Merge gleb.loc:/home/uchum/work/bk/5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.1-opt


mysql-test/t/create.test:
  Auto merged
sql/field.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/table.cc:
  Auto merged
mysql-test/r/create.result:
  Merge with 5.0-opt.
2007-07-26 05:28:10 +05:00
unknown
99dc9bdb4f Merge xiphis.org:/anubis/antony/work/p2-bug25679.3
into  xiphis.org:/anubis/antony/work/p2-bug25679.3.merge-5.1


storage/federated/ha_federated.cc:
  Auto merged
2007-07-25 17:24:59 -07:00
unknown
85af6ba9e3 fix pushbuild failures
sql/ha_federated.cc:
  remote_error_number is set to -1 when an error was already reported
  with my_error(). ER(-1) will also cause a crash on 64bit arch and only
  worked on 32bit arch by luck
2007-07-25 17:22:52 -07:00
unknown
217a35d64f Merge gleb.loc:/home/uchum/work/bk/5.1
into  gleb.loc:/home/uchum/work/bk/5.1-opt


mysql-test/r/sp.result:
  Auto merged
mysql-test/t/create.test:
  Auto merged
sql/field.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/table.cc:
  Auto merged
mysql-test/r/create.result:
  Merge with 5.1 (main).
2007-07-26 05:13:32 +05:00