Commit graph

14750 commits

Author SHA1 Message Date
unknown
9cd6325b63 Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  mysql.com:/home/mysql_src/mysql-5.1-new


sql/mysqld.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/share/errmsg.txt:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
2006-02-25 22:22:12 +01:00
unknown
7cac0ddfd0 WL#2977 and WL#2712 global and session-level variable to set the binlog format (row/statement),
and new binlog format called "mixed" (which is statement-based except if only row-based is correct,
in this cset it means if UDF or UUID is used; more cases could be added in later 5.1 release):
SET GLOBAL|SESSION BINLOG_FORMAT=row|statement|mixed|default;
the global default is statement unless cluster is enabled (then it's row) as in 5.1-alpha.
It's not possible to use SET on this variable if a session is currently in row-based mode and has open temporary tables (because CREATE
TEMPORARY TABLE was not binlogged so temp table is not known on slave),  or if NDB is enabled (because
NDB does not support such change on-the-fly, though it will later), of if in a stored function (see below).
The added tests test the possibility or impossibility to SET, their effects, and the mixed mode,
including in prepared statements and in stored procedures and functions.
Caveats:
a) The mixed mode will not work for stored functions: in mixed mode, a stored function will
always be binlogged as one call and in a statement-based way (e.g. INSERT VALUES(myfunc()) or SELECT myfunc()).
b) for the same reason, changing the thread's binlog format inside a stored function is
refused with an error message.
c) the same problems apply to triggers; implementing b) for triggers will be done later (will ask
Dmitri).
Additionally, as the binlog format is now changeable by each user for his session, I remove the implication
which was done at startup, where row-based automatically set log-bin-trust-routine-creators to 1
(not possible anymore as a user can now switch to stmt-based and do nasty things again), and automatically
set --innodb-locks-unsafe-for-binlog to 1 (was anyway theoretically incorrect as it disabled
phantom protection).
Plus fixes for compiler warnings.


mysql-test/r/rpl_row_4_bytes.result:
  update
mysql-test/t/rpl_row_4_bytes.test:
  don't influence next tests
sql/ha_archive.cc:
  please pay attention to this structure when you change it...
sql/ha_berkeley.cc:
  please pay attention to this structure when you change it...
sql/ha_blackhole.cc:
  please pay attention to this structure when you change it...
sql/ha_federated.cc:
  please pay attention to this structure when you change it...
sql/ha_heap.cc:
  please pay attention to this structure when you change it...
sql/ha_innodb.cc:
  please pay attention to this structure when you change it...
sql/ha_myisam.cc:
  please pay attention to this structure when you change it...
sql/ha_myisammrg.cc:
  please pay attention to this structure when you change it...
sql/ha_ndbcluster_binlog.cc:
  no more global 'binlog_row_based'
sql/ha_partition.cc:
  please pay attention to this structure when you change it...
sql/handler.cc:
  please pay attention to this structure when you change it...
sql/handler.h:
  it's good to initialize statically (to get no compiler warning) even if to a null value.
sql/item_func.cc:
  UDFs require row-based if this is the "mixed" binlog format.
sql/item_strfunc.cc:
  UUID() requires row-based binlogging if this is the "mixed" binlog format
sql/log.cc:
  binlog_row_based -> thd->current_stmt_binlog_row_based
sql/log.h:
  the enum enum_binlog_format moves to log.h from mysqld.cc as we need it in several places.
sql/log_event.cc:
  binlog_row_based -> thd->current_stmt_binlog_row_based
sql/log_event.h:
  this global variable not used anymore
sql/mysql_priv.h:
  these global variables not used anymore
sql/mysqld.cc:
  simplification in the handling of --binlog-format (but with no user-visible change), thanks to
  the new global system variable.
  RBR does not anymore turn on --log-bin-trust-function-creators and --innodb-locks-unsafe-for-binlog
  as these are global options and RBR is now settable per session.
sql/partition_info.cc:
  compiler warnings
sql/set_var.cc:
  new class of thread's variable, to handle the binlog_format (like sys_var_thd_enum except
  that is_readonly() is overriden for more checks before update).
  compiler warnings (ok'd by Serg)
sql/set_var.h:
  new class for the thread's binlog_format (see set_var.cc)
sql/share/errmsg.txt:
  some messages for when one can't toggle from one binlog format to another
sql/sp_head.cc:
  binlog_row_based -> thd->current_stmt_binlog_row_based
sql/sql_base.cc:
  binlog_row_based -> thd->current_stmt_binlog_row_based
sql/sql_class.cc:
  When a THD is initialized, we set its current_stmt_binlog_row_based
sql/sql_class.h:
  new THD::variables.binlog_format (the value of the session variable set by SET
  or inherited from the global value), and THD::current_stmt_binlog_row_based which tells if the
  current statement does row-based or statement-based binlogging. Both members are needed
  as the 2nd one cannot be derived only from the first one (the statement's type plays a role too),
  and the 1st one is needed to reset the 2nd one.
sql/sql_delete.cc:
  binlog_row_based -> thd->current_stmt_binlog_row_based
sql/sql_insert.cc:
  binlog_row_based -> thd->current_stmt_binlog_row_based
sql/sql_load.cc:
  binlog_row_based -> thd->current_stmt_binlog_row_based.
sql/sql_parse.cc:
  when we are done with a statement, we reset the current_stmt_binlog_row_based to the value
  derived from THD::variables.binlog_format.
sql/sql_partition.cc:
  compiler warning
sql/sql_show.cc:
  compiler warning
sql/sql_table.cc:
  binlog_row_based -> thd->current_stmt_binlog_row_based
tests/mysql_client_test.c:
  compiler warning
mysql-test/r/ndb_binlog_basic2.result:
  new result
mysql-test/r/rpl_switch_stm_row_mixed.result:
  new result
mysql-test/t/ndb_binlog_basic2.test:
  new test to verify that if cluster is enabled, can't change binlog format on the fly.
mysql-test/t/rpl_switch_stm_row_mixed.test:
  test to see if one can switch between SBR, RBR, and "mixed" mode, and when one cannot,
  and test to see if the switching, and the mixed mode, work properly (using UUID() to test,
  as using UDFs is not possible in the testsuite for portability reasons).
2006-02-25 22:21:03 +01:00
unknown
8f4cec206b Merge zim.(none):/home/brian/mysql/mysql-5.0
into  zim.(none):/home/brian/mysql/dep-5.1


mysql-test/r/create.result:
  Auto merged
mysql-test/t/create.test:
  Auto merged
sql/sql_table.cc:
  Auto merged
2006-02-24 23:31:57 -08:00
unknown
7375fe240c Fix a typo in dbug printout
sql/opt_range.cc:
  Fix a typo in dbug printout: print "min_val < partitioning_field < max_val",
  not "max_val < partitioning_field < max_val"
2006-02-25 00:41:37 +03:00
unknown
b1793d9c13 Merge ahristov@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into lmy004.:/work/mysql-5.1-bug16411


sql/sql_show.cc:
  Auto merged
2006-02-24 14:14:51 +01:00
unknown
d587a26bfa fix for bug #16411 (microseconds are allowed)
last fixes


sql/event_executor.cc:
  fix message
2006-02-24 14:08:34 +01:00
unknown
4f2d6f1158 fix for bug #16411 (Microseconds are allowed for events)
sql/event_timed.cc:
  fix problem during merge
2006-02-24 14:02:26 +01:00
unknown
eb7f54a9f3 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into moonbone.local:/work/17530-bug-5.0-mysql
2006-02-24 14:29:41 +03:00
unknown
d7d068ea22 merge
mysql-test/r/events.result:
  Auto merged
sql/event.cc:
  Auto merged
sql/event.h:
  Auto merged
sql/event_executor.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/share/errmsg.txt:
  Auto merged
sql/event_timed.cc:
  manual merge
2006-02-24 12:03:32 +01:00
unknown
8fd0e70ce2 Merge ahristov@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into lmy004.:/work/mysql-5.1-bug16412


sql/sql_show.cc:
  Auto merged
2006-02-24 11:56:16 +01:00
unknown
5f214cf216 Fix output per bug #16412 (Events: SHOW PRIVILEGES gives incorrect information)
WL#1034 (Internal CRON)


mysql-test/r/grant.result:
  fix result file
sql/sql_show.cc:
  Fix output per bug #16412 (Events: SHOW PRIVILEGES gives incorrect information)
2006-02-24 11:52:03 +01:00
unknown
263abaebbe Merge paul@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  snake-hub.snake.net:/src/extern/MySQL/bk/mysql-5.1
2006-02-23 11:08:16 -06:00
unknown
19ed1c4b31 Merge paul@bk-internal.mysql.com:/home/bk/mysql-5.0
into  snake-hub.snake.net:/src/extern/MySQL/bk/mysql-5.0
2006-02-23 11:07:56 -06:00
unknown
82b98e2701 Merge snake-hub.snake.net:/src/extern/MySQL/bk/mysql-5.0
into  snake-hub.snake.net:/src/extern/MySQL/bk/mysql-5.1


sql/mysqld.cc:
  manual merge.
2006-02-23 09:41:04 -06:00
unknown
5dd2f66eaf mysqld.cc:
Fix out of order entries in option struct.


sql/mysqld.cc:
  Fix out of order entries in option struct.
2006-02-23 09:11:05 -06:00
unknown
97bc92752b Merge neptunus.(none):/home/msvensson/mysql/mysql-5.0
into  neptunus.(none):/home/msvensson/mysql/mysql-5.1


client/mysqldump.c:
  Auto merged
client/mysqltest.c:
  Auto merged
libmysql/libmysql.c:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
mysql-test/r/mysqldump.result:
  Auto merged
mysql-test/r/mysqltest.result:
  Auto merged
mysql-test/r/sp.result:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
sql/item.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
mysql-test/t/mysqldump.test:
  Merge with my own merge
mysql-test/t/mysqltest.test:
  Merge
2006-02-23 10:54:56 +01:00
unknown
f7295f2438 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0


mysql-test/r/sp.result:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
2006-02-23 10:45:39 +01:00
unknown
9ae84f70cf Merge bk-internal:/home/bk/mysql-5.1-new
into  neptunus.(none):/home/msvensson/mysql/mysql-5.1


mysql-test/r/sp.result:
  Auto merged
mysql-test/t/disabled.def:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
mysql-test/mysql-test-run.pl:
  Merge locationwhere to search for client bins
2006-02-23 10:41:37 +01:00
unknown
c330dc839b Fix a bad merge of mine. 2006-02-23 12:32:54 +03:00
unknown
5e02bec9ce Merge rburnett@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  linux.site:/home/reggie/work/mysql-5.1


sql/share/errmsg.txt:
  Auto merged
2006-02-22 14:18:45 -06:00
unknown
ef5d68f339 BUG# 17393: Partitions: Wrong error message when assigning too many subpartitions
We changed the error message to more clearly reflect the fact
that we are counting parts and subparts


mysql-test/r/partition_mgm_err.result:
  updated error message
sql/share/errmsg.txt:
  updated error message
2006-02-22 14:17:11 -06:00
unknown
37afbdc0b0 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  mysql.com:/home/kostja/mysql/mysql-5.1-merge


sql/ha_ndbcluster_binlog.cc:
  Auto merged
2006-02-22 20:15:24 +03:00
unknown
671d3e1ed5 Post-merge fixes.
sql/ha_ndbcluster_binlog.cc:
  A post-merge fix.
sql/log_event.cc:
  A post-merge fix.
2006-02-22 20:03:25 +03:00
unknown
2a88d0f4fa Merge mysql.com:/usr_rh9/home/elkin.rh9/MySQL/BARE/5.0
into  mysql.com:/usr_rh9/home/elkin.rh9/MySQL/FIXES/5.0-bug17265
2006-02-22 18:53:34 +02:00
unknown
0d3cf6b0fd BUG#17265 Assertion failure in rpl_row_view01.
To quote Timour review lines:

The actual cause of the bug is that sql_base.cc:setup_wild()
sets "select_lex->with_wild = 0" (in the end of the function) once
it expands all wild-cards, and wild-card expansion is done during
the prepare phase. During this phase we replace all "*" with the
corresponding items, which for views happen to be references to
references. When we do execute, select_lex->with_wild = 0, and
all "*" are already replaced by the corresponding items, which
in the case of views need to be dereferenced first.

Fixed by refining the assert. Regression test for the bug is rpl_row_view01,
as was reported.


sql/item.cc:
  Refined asssert, suggested by Evgen, due to BUG#17265 prepared statement for select with ps-protocol 
  does not hold the former.
2006-02-22 17:07:18 +02:00
unknown
ee1dc206b5 Removed unnecessary unlock/lock of mutex 2006-02-22 16:05:57 +01:00
unknown
0caf2a4667 Fixes for push version of discover of on-line altered table 2006-02-22 15:19:22 +01:00
unknown
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
unknown
85e54a08c4 Fix for BUG#7787: Stored procedures: improper warning for "grant execute" statement.
The problem was that error flag was not reset.


mysql-test/r/sp-security.result:
  Results for test case for BUG#7787.
mysql-test/t/sp-security.test:
  A test case for BUG#7787.
sql/sp.cc:
  Reset errors after sp_find_routine().
2006-02-22 13:44:04 +03:00
unknown
180693477d Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  mysql.com:/usr/local/home/marty/MySQL/mysql-5.1-new


sql/ha_ndbcluster.cc:
  Auto merged
storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp:
  Auto merged
2006-02-22 09:10:55 +01:00
unknown
0f545fc7f0 Merge bk-internal:/home/bk/mysql-5.1-new
into  neptunus.(none):/home/msvensson/mysql/mysql-5.1


mysql-test/t/partition_mgm_err.test:
  Auto merged
2006-02-22 08:55:19 +01:00
unknown
b2cf86f1bd BUG #15408 - Partitions: subpartition names are not unique
libmysqld/Makefile.am:
  changed name to partition_info.cc
mysql-test/r/partition_mgm_err.result:
  added drop table for previous test
mysql-test/t/partition_mgm_err.test:
  added drop table for previous test
sql/Makefile.am:
  reformatted a bit
  changed name of partition_info.cpp to partition_info.cc
sql/partition_element.h:
  updated copyright date
sql/partition_info.cc:
  minor corrections as a result of review
sql/partition_info.h:
  updated copyright date
sql/sql_partition.cc:
  updated file comment and fixed some spacing
sql/sql_partition.h:
  updated copyright date
win/cmakefiles/sql:
  changed name to partition_info.cc
2006-02-21 17:40:07 -06:00
unknown
b56d453c8d Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/opt/local/work/mysql-5.0-runtime


sql/sql_yacc.yy:
  Auto merged
sql/share/errmsg.txt:
  SCCS merged
2006-02-22 01:20:47 +03:00
unknown
cf5cb1e960 Merge rburnett@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  linux.site:/home/reggie/work/mysql-5.1-bug15408


sql/ha_ndbcluster.cc:
  Auto merged
sql/ha_partition.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
2006-02-21 10:29:41 -06:00
unknown
2e2ec866a6 Merge neptunus.(none):/home/msvensson/mysql/bug16878/my51-bug16878
into  neptunus.(none):/home/msvensson/mysql/mysql-5.1


sql/sp_head.cc:
  Auto merged
mysql-test/r/mysqldump.result:
  Merge
mysql-test/t/mysqldump.test:
  Merge
2006-02-21 17:25:21 +01:00
unknown
9eca58895b Merge neptunus.(none):/home/msvensson/mysql/bug16878/my50-bug16878
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0


sql/sp_head.cc:
  Auto merged
mysql-test/r/mysqldump.result:
  Merge
mysql-test/t/mysqldump.test:
  Merge
2006-02-21 17:19:46 +01:00
unknown
897702bd3e Merge neptunus.(none):/home/msvensson/mysql/bug16878/my50-bug16878
into  neptunus.(none):/home/msvensson/mysql/bug16878/my51-bug16878


sql/sp_head.cc:
  Auto merged
mysql-test/r/mysqldump.result:
  Merge
mysql-test/t/mysqldump.test:
  Merge
2006-02-21 17:15:37 +01:00
unknown
71ee8615c3 Fixed bug#17530: Incorrect key truncation on table creation caused server crash.
When a too long field is used for a key, only a prefix part of the field is 
used. Length is reduced to the max key length allowed for storage. But if the
field have a multibyte charset it is possible to break multibyte char
sequence. This leads to the failed assertion in the innodb code and 
server crash when a record is inserted.

The make_prepare_table() now aligns truncated key length to the boundary of
multibyte char.


mysql-test/t/create.test:
  Added test case for bug#17530: Incorrect key truncation on table creation caused server crash.
mysql-test/r/create.result:
  Added test case for bug#17530: Incorrect key truncation on table creation caused server crash.
sql/sql_table.cc:
  Fixed bug#17530: Incorrect key truncation on table creation caused server crash.
  The make_prepare_table() now aligns truncated key length to the boundary of
  multibyte char.
2006-02-21 18:09:32 +03:00
unknown
dc86ad6dc4 Merge mysql.com:/usr/local/home/marty/MySQL/mysql-5.1-new-ndb_improved_on-line_discover
into  mysql.com:/usr/local/home/marty/MySQL/mysql-5.1-new


sql/ha_ndbcluster.cc:
  Auto merged
sql/ha_ndbcluster.h:
  Auto merged
sql/ha_ndbcluster_binlog.h:
  Auto merged
storage/ndb/include/ndbapi/NdbDictionary.hpp:
  Auto merged
storage/ndb/src/kernel/blocks/backup/Backup.hpp:
  Auto merged
storage/ndb/src/kernel/blocks/suma/Suma.cpp:
  Auto merged
storage/ndb/src/ndbapi/NdbDictionary.cpp:
  Auto merged
storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp:
  Auto merged
storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp:
  Auto merged
sql/ha_ndbcluster_binlog.cc:
  Merge
2006-02-21 13:54:58 +01:00
unknown
d1f0fc821c Merge neptunus.(none):/home/msvensson/mysql/bug2845/my51-bug2845
into  neptunus.(none):/home/msvensson/mysql/mysql-5.1
2006-02-21 08:45:17 +01:00
unknown
ccec6f3e9f Merge neptunus.(none):/home/msvensson/mysql/bug2845/my50-bug2845
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0
2006-02-21 08:44:27 +01:00
unknown
ae48f5fdf7 fix for bug#16407 (EVENTS: sql_mode)
post-review fixes


mysql-test/r/events_bugs.result:
  fix result
sql/event.cc:
  fix compilation problem on windows
sql/event_executor.cc:
  show the right host in show processlist (should be event_scheduler@localhost)
sql/event_timed.cc:
  a bit more debug infor
  fix a problem introduced with previous push :( . clean everything that's whitespace.
  found because of new test cases which were crashing.
sql/sql_show.cc:
  fix compile problem on windows
2006-02-21 02:40:23 +01:00
unknown
e41f5cc464 manual merge
sql/event.cc:
  Auto merged
sql/event.h:
  Auto merged
sql/sql_show.cc:
  Auto merged
2006-02-21 00:01:39 +01:00
unknown
203b37effe fix for bug#16407 (Events: Changes in sql_mode won't be taken into account)
WL#1032
sql_mode setting was disregarded during create/alter event and wasn't set during
event execution.
(post-review small fixes)


sql/event.cc:
  store the sql_mode when the body is stored
  - always on create event
  - during alter event if the user changes the body
sql/event.h:
  add sql_mode as member variable
sql/event_timed.cc:
  - exchange thd->variables.sql_mode before and after execution
  - set the sql_mode of the anonymous SP -> event_timed::sphead
sql/sql_show.cc:
  - show real content in I_S.EVENTS.SQL_MODE , disallow NULL
2006-02-20 23:52:22 +01:00
unknown
b36730953c Merge ahristov@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into lmy004.:/work/mysql-5.1-bug16406
2006-02-20 23:29:55 +01:00
unknown
c1473ba882 Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  mysql.com:/usr/local/home/marty/MySQL/mysql-5.1-new


sql/ha_ndbcluster.cc:
  Auto merged
sql/ha_ndbcluster_binlog.cc:
  Auto merged
2006-02-20 22:23:02 +01:00
unknown
56d1810d0a Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into mysql.com:/home/psergey/mysql-5.1-look
2006-02-21 00:20:44 +03:00
unknown
c7d335a7d2 BUG#15448 (group_min_max test failure): Don't bypass group-min-max optimizer entry point
if we've got a tree of type ALWAYS or MAYBE.


sql/opt_range.cc:
  BUG#15448 (group_min_max test failure): Don't buypass group-min-max optimizer entry point 
  if we've got a tree of type ALWAYS or MAYBE.
  The effect observed by this bug has been introduced by this cset: 
  ChangeSet 1.1967.5.2 2005/12/26 08:40:09 sergefp@mysql.com. The cset introduced PARAM::remove_jump_scans
  which purpose was to avoid making [always unsuccessful] attempts to construct index_merge for construct 
  index_merge for conditions like "t.key1partX=c1 OR t.key1partY=c2". The effect of this change was that some
  queries that previously had produced a SEL_TREE representing candidate for index_merge(X,Y) now started to 
  produce SEL_TREE with type=ALWAYS, and group-min-max analysis for these trees has been bypassed.
  In this fix we make SEL_TREE with type=ALWAYS to be processed in the same way as (SEL_TREE*)NULL, its equivalent.
2006-02-21 00:17:29 +03:00
unknown
fc6416fca7 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  mysql.com:/home/kostja/mysql/mysql-5.1-vanilla
2006-02-20 23:00:50 +03:00
unknown
5e00b327cd Merge ahristov@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into lmy004.:/work/mysql-5.1-bug16406


mysql-test/r/events.result:
  Auto merged
2006-02-20 20:57:44 +01:00