Commit graph

53911 commits

Author SHA1 Message Date
unknown
fd8253afbb Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  bodhi.(none):/opt/local/work/mysql-5.1-27430


mysql-test/r/grant.result:
  Auto merged
mysql-test/t/disabled.def:
  Auto merged
mysql-test/t/grant.test:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
storage/myisam/mi_create.c:
  Auto merged
2008-04-19 14:58:37 +04:00
unknown
1fd4499747 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-27430
into  bodhi.(none):/opt/local/work/mysql-5.1-27430
2008-04-19 14:40:30 +04:00
unknown
f74a78b8eb Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  bodhi.(none):/opt/local/work/mysql-5.1-27430


include/my_global.h:
  Auto merged
mysql-test/r/grant.result:
  Auto merged
mysql-test/t/disabled.def:
  Auto merged
mysql-test/t/grant.test:
  Auto merged
sql/item.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/table.h:
  Auto merged
storage/myisam/mi_create.c:
  Auto merged
tests/mysql_client_test.c:
  Auto merged
sql/share/errmsg.txt:
  Manual merge.
2008-04-19 14:37:20 +04:00
unknown
642b4c27c5 Attempt to fix a sporadic failure of innodb_mysql.test 2008-04-19 14:27:17 +04:00
unknown
0a3d14a395 Add tests + modifications according to review
mysql-test/r/ps_ddl.result:
  Updated results
mysql-test/t/ps_ddl.test:
  - add missing subtests
  - add comments + minor reformatting for better overview on content
mysql-test/r/ps_ddl1.result:
  Expected results
mysql-test/t/ps_ddl1.test:
  Script for tests which do not really fit into ps_ddl
2008-04-18 21:18:53 +02:00
unknown
c1444fce1b Fix broken --cursor-protocol (all tests).
sql/sql_cursor.cc:
  Fix broken --cursor-protocol (all tests). Initialize a variable
  that was for some reason not initialized.
2008-04-17 23:02:01 +04:00
unknown
e119174cfe Minor corrections within the script
mysql-test/r/ps_ddl.result:
  Updated results
mysql-test/t/ps_ddl.test:
  - remove trailing spaces
  - correct wrong written word "echo"
2008-04-17 14:31:43 +02:00
unknown
9590918851 Fix create.test in --ps-protocol broken by the previous push.
sql/sql_table.cc:
  Fix create.test in --ps-protocol broken by the previous push,
  that added prepared statement validation of CREATE TABLE LIKE:
  move assignment of src_table->required_type to the parser.
sql/sql_yacc.yy:
  Fix create.test in --ps-protocol broken by the previous push,
  that added prepared statement validation of CREATE TABLE LIKE:
  move assignment of src_table->required_type to the parser.
2008-04-17 03:27:14 +04:00
unknown
bd2a732812 WL#4165 "Prepared statements: validation".
Add metadata validation to ~20 more SQL commands. Make sure that
these commands actually work in ps-protocol, since until now they
were enabled, but not carefully tested.
Fixes the ml003 bug found by Matthias during internal testing of the
patch.


mysql-test/r/ps_ddl.result:
  Update test results (WL#4165)
mysql-test/t/ps_ddl.test:
  Cover with tests metadata validation of 26 SQL statements.
sql/mysql_priv.h:
  Fix the name in the comment.
sql/sp_head.cc:
  Changed the way the observer is removed in case of stored procedures
  to support validation prepare stmt from "call p1(<expr>)": whereas
  tables used in the expression must be validated, substatements
  of p1 must not.
  The previous scheme used to silence the observer only in stored
  functions and triggers.
sql/sql_class.cc:
  Now the observer is silenced in sp_head::execute(). Remove it from
  Sub_statement_state.
sql/sql_class.h:
  Now the observer is silenced in sp_head::execute(). Remove it from
  Sub_statement_state.
sql/sql_parse.cc:
  Add CF_REEXECUTION_FRAGILE to 20 more SQLCOMs that need it.
sql/sql_prepare.cc:
  Add metadata validation to ~20 new SQLCOMs that need it.
  Fix memory leaks with expressions used in SHOW DATABASES and CALL
  (and prepared statements).
  We need to fix all expressions at prepare, since if these expressions
  use subqueries, there are one-time transformations of the parse
  tree that must be done at prepare. 
  List of fixed commands includes: SHOW TABLES, SHOW DATABASES,
  SHOW TRIGGERS, SHOW EVENTS, SHOW OPEN TABLES,SHOW KEYS, SHOW FIELDS, 
  SHOW COLLATIONS, SHOW CHARSETS, SHOW VARIABLES, SHOW TATUS, SHOW TABLE
  STATUS, SHOW PROCEDURE STATUS, SHOW FUNCTION STATUS, CALL.
  Add comment to set_parameters().
sql/table.h:
  Update comments.
2008-04-17 01:04:49 +04:00
unknown
bb9bec27eb Merge kpdesk.mysql.com:/home/thek/Development/cpp/mysql-5.0-merge
into  kpdesk.mysql.com:/home/thek/Development/cpp/mysql-5.1-merge


mysql-test/r/grant.result:
  Auto merged
mysql-test/t/grant.test:
  Auto merged
sql/sql_acl.cc:
  Auto merged
2008-04-14 13:28:45 +02:00
unknown
b11c44932e Merge kpdesk.mysql.com:/home/thek/Development/cpp/mysql-5.0
into  kpdesk.mysql.com:/home/thek/Development/cpp/mysql-5.0-merge


sql/sql_acl.cc:
  Auto merged
mysql-test/r/grant.result:
  manual merge
mysql-test/t/grant.test:
  manual merge
2008-04-14 13:27:26 +02:00
unknown
7378628456 Merge kpdesk.mysql.com:/home/thek/Development/cpp/mysql-5.1
into  kpdesk.mysql.com:/home/thek/Development/cpp/mysql-5.1-merge


mysql-test/r/grant.result:
  Auto merged
mysql-test/t/disabled.def:
  Auto merged
mysql-test/t/grant.test:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
storage/myisam/mi_create.c:
  Auto merged
2008-04-14 12:58:53 +02:00
unknown
1ff9a2437a Fix pushbuild errors and warnings. 2008-04-08 21:49:31 +04:00
unknown
f149152f97 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  dipika.(none):/opt/local/work/mysql-5.1-runtime
2008-04-08 20:32:29 +04:00
unknown
2ca624969a Remove dead code.
sql/sp.h:
  Remove unused code.
2008-04-08 20:31:40 +04:00
unknown
a63dde5a5b Tentative implementation of
WL#4165 Prepared statements: validation 
WL#4166 Prepared statements: automatic re-prepare
Fixes
Bug#27430 Crash in subquery code when in PS and table DDL changed after PREPARE
Bug#27690 Re-execution of prepared statement after table was replaced with a view crashes
Bug#27420 A combination of PS and view operations cause error + assertion on shutdown

The basic idea of the patch is to keep track of table metadata between
prepared statement prepare and execute. If some table used in the statement
has changed, the prepared statement is re-prepared before execution.

See WL#4165 and WL#4166 contents and comments in the code for details
of the implementation.


include/my_global.h:
  Remove 'register' keyword to avoid warnings when swapping large structures
  that don't fit into a register. Any modern compiler is capable of placing
  a variable in a register when that would benefit performance.
mysql-test/r/ps_1general.result:
  Update test results: since now we re-prepare automatically,
  more correct results are produced in prepare-ddl-execute scenario.
mysql-test/r/query_cache_merge.result:
  Ensure that the table definition cache is large enough for
  the test to pass in --ps-protocol
mysql-test/r/trigger.result:
  Update test results to reflect automatic statement reprepare.
mysql-test/t/disabled.def:
  Enable ps_ddl.test, which now passes.
mysql-test/t/ps_1general.test:
  Since now we re-execute prepared statements after DDL successfully,
  change the test to produce repeatable results. Remove expectancy of
  an error in one place where now we automatically reprepare the prepared
  statement.
mysql-test/t/query_cache_merge.test:
  Ensure the table definition cache is large enough for the test to pass
  in --ps-protocol
mysql-test/t/trigger.test:
  Sinc
sql/item.cc:
  Implement Item_param "copy" functionality, used at re-prepare of
  a prepared statement.
  We copy the type of the original parameter, and move the assigned value,
  if any. Sic, the value is "moved", since it can be quite big --
  e.g. in case we deal with a LONG DATA parameter.
  It's essential to move the value from the old parameter since
  at the time of re-prepare the client packet with the necessary information
  may be not available.
sql/item.h:
  Declare a new method used for reprepare.
sql/my_decimal.h:
  Implement "swap()" functionality of class my_decimal to be
  able to easily swap two decimal values.
sql/mysql_priv.h:
  Declare enum_metadata_type.
sql/mysqld.cc:
  Implement a status variable for the number of reprepared statements.
sql/sql_base.cc:
  Implement metadata version validation.
sql/share/errmsg.txt:
  Add two new error messages: ER_NEED_REPREPARE and ER_PS_REBIND.
  The first error (theoretically) never reaches the user.
  It is issued by the metadata validation framework when a metadata version
  has changed between prepare and execute. Later on it's intercepted
  and the statement is automatically re-prepared. Only if the error
  has occurred repeatedly MAX_REPREPARE_ATTEMTS (3) times do we
  return it to the user.
  
  The second error is issued when after re-prepare we discover
  that the metadata we sent over to the client using the binary
  protocol differs drammatically from the new result set metadata 
  that the reprepared statement produces (e.g. number of result
  set columns is different).
sql/sql_class.cc:
  Implement metadata version validation framework.
sql/sql_class.h:
  Declarations for metadata version validation framework.
sql/sql_parse.cc:
  Mark commands for which we must invalidate and reprepare a prepared
  statement when metadata has changed.
sql/sql_prepare.cc:
  Implement WL#4165 and WL#4166 (limited support of metadata validation
  and re-prepare).
sql/table.h:
  Implement metadata validation.
tests/mysql_client_test.c:
  Add a test case for WL#4166
2008-04-08 20:01:20 +04:00
unknown
f0b49d2819 Merge error between two patches caused error out-of-bounds assignment. 2008-04-08 15:57:44 +02:00
unknown
ab96882840 Merge kpettersson@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  adventure.(none):/home/thek/Development/cpp/mysql-5.1-runtime
2008-04-08 09:20:53 +02:00
unknown
797bfd6e3f Fix a compilation warning (unused variable). 2008-04-07 23:57:47 +04:00
unknown
17ec1c3c3b A fix for Bug#32724 "innodb_mysql.test fails randomly".
Enable back the disabled test case.


mysql-test/t/disabled.def:
  Enable the test case innodb_mysql.
sql/sql_parse.cc:
  Fix the random failure of innodb_mysql test. The failure is not
  random any more after a patch for Bug 12713 added asserts around
  handler commit.
2008-04-07 15:42:32 +04:00
unknown
ed0fd2f628 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  mockturtle.local:/home/dlenev/src/mysql-5.1-symlink
2008-04-07 13:46:56 +04:00
unknown
d017aceed0 Review and update WL#4165 and WL#4166 test coverage. 2008-04-07 13:35:42 +04:00
unknown
3f63ba7f8c Bug#34183 Missing DBUG_RETURN in alloc_root
DBUG_RETURN was missing form an exit path in 5.1 branch of alloc_root


mysys/my_alloc.c:
  Fixed missing DBUG_RETURN
2008-04-07 11:29:45 +02:00
unknown
d5990c2818 Fix for bug #35733 "main.symlink.test fails".
The problem was that symlink.test failed due to debug assertions or
due to errors emitted for wrong statements (in non-debug builds)
if 6.0 version of server was run with --thread-handling=pool-of-threads
option.

The above problems were caused by that on the one hand code mi_create()
which handles case when error is returned relies on my_errno being set
to appropriate non-0 value, but on the other it has not done this
in case when error was emitted due to discovery that share for table
which we are going to create is already present in the list of open
shares. Running server with pool-of-threads option just exposed this
bug since in this scheduler mode my_errno is reset to 0 when connection
(THD) is reattached to the "real" thread.

This fix ensures that code in mi_create() properly sets my_errno in
the case described above.

Since original reason that caused this bug to be exposed in 6.0 tree
might also under very special conditions lead to incorrect behavior
of earlier versions of server (i.e. to errors emitted for wrong
statements) this patch is also being pushed into 5.1 tree.

No test case is present as this code is already covered by a test
case + pushbuild options combination in 6.0.


storage/myisam/mi_create.c:
  Code in mi_create() which handles case when error is returned relies
  on my_errno being set to appropriate non-0 value. Adjusted code which
  emits error when we discover that share for table which we are going
  to create is already present in the list of open shares to do this.
2008-04-07 12:59:57 +04:00
unknown
c481f6b3cf Post-merge fixes.
sql/share/errmsg.txt:
  Reverting error message to before merge.
2008-04-01 18:50:35 +02:00
unknown
f2d504aa64 Bug#26208 a typo (wrong variable name) in mysql_prepare_update function's source code?
This is a code clean up.
Removed redundant (and unused) TABLE_LIST variable intended as an IN-
parameter for setup_order.


sql/sql_update.cc:
  Removed redundant (and unused) TABLE_LIST variable intended as an IN-
  parameter for setup_order.
2008-04-01 14:41:13 +02:00
unknown
4685004d2a Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl-merge
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge


mysql-test/r/binlog_index.result:
  Manual merge
2008-04-01 12:36:20 +02:00
unknown
edcf2742f8 Post-merge fixes.
mysql-test/r/binlog_index.result:
  Result set change.
2008-04-01 12:29:53 +02:00
unknown
a18647df1b Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl-merge
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge


sql/share/errmsg.txt:
  Manual merge
2008-04-01 11:54:25 +02:00
unknown
79f5fe21f3 Merge adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime
into  adventure.(none):/home/thek/Development/cpp/mysql-5.1-runtime


sql/sql_acl.cc:
  Auto merged
mysys/my_thr_init.c:
  Null merge.
2008-04-01 11:21:09 +02:00
unknown
90df35c950 Merge kpettersson@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime


sql/sql_acl.cc:
  Auto merged
2008-04-01 10:44:56 +02:00
unknown
c2249b8a59 Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
2008-04-01 08:45:24 +02:00
unknown
e538761350 Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.0
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl-merge


sql/share/errmsg.txt:
  Manual merge.
2008-04-01 08:43:15 +02:00
unknown
91b3983e50 Raise version number after cloning 5.1.24-rc 2008-03-31 19:05:18 +02:00
unknown
48d644fc4a Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl-merge
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge


mysql-test/suite/rpl/r/rpl_packet.result:
  Auto merged
mysql-test/suite/rpl/t/rpl_packet.test:
  Auto merged
2008-03-31 16:34:52 +02:00
unknown
a49184af50 Removing race conditions from rpl_packet causing test to fail.
mysql-test/r/rpl_packet.result:
  Result change.
mysql-test/t/rpl_packet.test:
  Setting net_buffer_length correctly for the test instead of relying on it
  being set correctly. Waiting for slave to stop after issuing a SLAVE STOP
  and waiting for slave to start when issuing a SLAVE START to prevent race
  conditions causing test failure.
2008-03-31 16:32:45 +02:00
unknown
f6bee7c13d Merge mysql.com:/Users/davi/mysql/bugs/ps-cleanup-5.1
into  mysql.com:/Users/davi/mysql/mysql-5.1-runtime


sql/sql_prepare.cc:
  Auto merged
2008-03-31 09:54:36 -03:00
unknown
02c00f95bf merge 5.1-main to 5.1-bugteam 2008-03-31 14:13:42 +03:00
unknown
fb1fdabc08 Remove some unused code.
sql/sql_base.cc:
  Remove table definition stage 3 code, stage 3 will be done differently 
  in scope of WL#3726
2008-03-31 14:52:41 +04:00
unknown
5ba1762d70 Merge bk-internal:/home/bk/mysql-5.1-bugteam
into  magare.gmz:/home/kgeorge/mysql/work/merge-build-5.1-bugteam
2008-03-31 12:38:01 +03:00
unknown
520365feb4 Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1-bugteam
into  mats-laptop.(none):/home/bk/b29020-mysql-5.1-rpl
2008-03-31 11:31:53 +02:00
unknown
600a664a5a Updating commit.inc since the number of commits done for non-transactional
tables is not zero any more. For row-based logging, there is an extra commit
for sending rows changed by the statement to the binary log.


mysql-test/include/commit.inc:
  For row-based logging, an extra commit is done for each statement to commit
  non-transactional changes to the binary log.
mysql-test/r/commit_1innodb.result:
  Result change.
2008-03-31 11:29:03 +02:00
unknown
f07915534b Merge bk-internal:/home/bk/mysql-5.1
into  magare.gmz:/home/kgeorge/mysql/work/merge-build-5.1-bugteam


sql/log.cc:
  Auto merged
sql/slave.cc:
  Auto merged
sql/share/errmsg.txt:
  merged 5.1-main to 5.1-bugteam
2008-03-31 11:57:18 +03:00
unknown
88a9262687 Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl-merge
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
2008-03-31 09:59:22 +02:00
unknown
d59b8cf093 Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.0
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl-merge
2008-03-31 09:57:29 +02:00
unknown
3afa15b53c Merge bk-internal:/home/bk/mysql-5.1-build
into  magare.gmz:/home/kgeorge/mysql/work/merge-build-5.1-bugteam


storage/innobase/handler/ha_innodb.cc:
  Auto merged
2008-03-31 10:41:26 +03:00
unknown
c13eb355bb Merge bk-internal:/home/bk/mysql-5.1
into  magare.gmz:/home/kgeorge/mysql/work/merge-build-5.1-bugteam


include/my_dbug.h:
  Auto merged
mysys/mf_keycache.c:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/log.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
storage/myisam/mi_check.c:
  Auto merged
storage/myisam/mi_dynrec.c:
  Auto merged
storage/myisam/mi_open.c:
  Auto merged
storage/myisam/mi_packrec.c:
  Auto merged
storage/myisam/mi_test1.c:
  Auto merged
storage/myisam/mi_test2.c:
  Auto merged
storage/myisam/mi_write.c:
  Auto merged
storage/myisammrg/ha_myisammrg.cc:
  Auto merged
2008-03-31 10:40:39 +03:00
unknown
f6229d3d9a Merge amd64.(none):/src/bug26243/my50-bug26243
into  amd64.(none):/src/bug26243/my51-bug26243


sql/tztime.cc:
  Null Merge
2008-03-30 15:47:44 -04:00
unknown
6edab4bc08 Bug#26243 - Cleanup Valgrind error 2008-03-30 15:46:37 -04:00
unknown
3d3c7fbe35 Merge mysql1000.(none):/home/andrei/MySQL/BARE/mysql-5.1
into  mysql1000.(none):/home/andrei/MySQL/MERGE/5.1-main2rpl


client/mysqltest.c:
  Auto merged
sql/log.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
2008-03-30 14:12:27 +03:00