Commit graph

1277 commits

Author SHA1 Message Date
unknown
01d69c4b96 This patch does 1) fix my build breakage 2) Complete the removal of all symbols which could clash with another parser.
sql/mysql_priv.h:
  Porting update
sql/mysqld.cc:
  Porting update
sql/sp.cc:
  Porting update
sql/sql_lex.cc:
  Porting update
sql/sql_lex.h:
  Porting update
sql/sql_parse.cc:
  Porting update
sql/sql_prepare.cc:
  Portinng update
sql/sql_trigger.cc:
  Porting update
sql/sql_view.cc:
  Porting update
2006-03-09 16:44:08 -08:00
unknown
99b9f7a45b Merge mysql.com:/home/alik/Documents/AllProgs/MySQL/devel/5.0-tree
into  mysql.com:/home/alik/Documents/AllProgs/MySQL/devel/5.1-merged


client/mysqldump.c:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
mysql-test/r/information_schema.result:
  Auto merged
mysql-test/r/mysqldump.result:
  Auto merged
mysql-test/r/rpl_ddl.result:
  Auto merged
mysql-test/r/rpl_sp.result:
  Auto merged
mysql-test/r/rpl_trigger.result:
  Auto merged
mysql-test/r/sp-security.result:
  Auto merged
mysql-test/r/sp.result:
  Auto merged
mysql-test/r/sql_mode.result:
  Auto merged
mysql-test/t/rpl_trigger.test:
  Auto merged
mysql-test/t/skip_grants.test:
  Auto merged
mysql-test/t/sp-security.test:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sp_head.h:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_trigger.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
mysql-test/lib/mtr_cases.pl:
  Manually merged.
sql/sp.cc:
  Manually merged.
sql/sql_yacc.yy:
  Manually merged.
2006-03-09 20:41:21 +03:00
unknown
40e371d2b6 Merge mysql.com:/home/bkroot/mysql-5.1-new
into  mysql.com:/home/bk/w3023-mysql-5.1-new


configure.in:
  Auto merged
mysql-test/r/rpl_row_create_table.result:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
sql/log.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/table.h:
  Auto merged
2006-03-07 10:00:13 +01:00
unknown
baa7cf94e1 Merge pchardin@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  mysql.com:/home/cps/mysql/devel/5.1-cleanup


sql/mysql_priv.h:
  Auto merged
sql/set_var.cc:
  Auto merged
2006-03-04 11:52:02 +03:00
unknown
422d11c218 Remove unused thd->options's flag -- OPTION_UPDATE_LOG
The update log itself was removed back in 5.0. Recommit
with post-review fixes.


sql/log.cc:
  OPTION_UPDATE_LOG was set in all threads but replication ones.
  So, it seems that the check filtered out slow log records from
  replication threads. Now we do it with explicit check.
sql/mysql_priv.h:
  remove unused define
sql/mysqld.cc:
  Do not set OPTION_UPDATE_LOG. It is not used anymore.
sql/set_var.cc:
  We never check for OPTION_UPDATE_LOG. So, we should not bother setting it.
2006-03-04 11:20:56 +03:00
unknown
ac2b587029 Merge mysql.com:/home/bkroot/mysql-5.1-new
into  mysql.com:/home/bk/w3023-mysql-5.1-new


configure.in:
  Auto merged
mysql-test/extra/binlog_tests/insert_select-binlog.test:
  Auto merged
mysql-test/r/binlog_row_insert_select.result:
  Auto merged
mysql-test/r/rpl_row_basic_11bugs.result:
  Auto merged
scripts/mysql_fix_privilege_tables.sql:
  Auto merged
sql/ha_ndbcluster_binlog.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/log_event.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
client/Makefile.am:
  Merging with mysql-5.1-new
mysql-test/r/binlog_row_ctype_cp932.result:
  Merging with mysql-5.1-new
mysql-test/r/rpl_ndb_blob.result:
  Merging with mysql-5.1-new
mysql-test/r/rpl_ndb_dd_basic.result:
  Merging with mysql-5.1-new
2006-03-03 09:57:42 +01:00
unknown
fad27ebf57 Fix for BUG#16777: Can not create trigger nor view w/o definer
if --skip-grant-tables specified.

The problem is that there is a check that prevents creating a definer
with empty host name.

In --skip-grant-tables mode this check prevents the user from creating a
trigger/view without explicitly specifying its definer. This happens, because
in --skip-grant-tables mode CURRENT_USER is ''@''. According to Sanja this
check was implemented intentionally.

However, according to the MySQL manual it is possible to specify empty host
name (as well as empty user name). Moreover, the behaviour for stored routines
is different in this aspect -- we allow them to be created with implicit
definer.

Based on this, we believe it is OK to change the behaviour for views to be
similar with the behaviour for stored routines.


mysql-test/r/skip_grants.result:
  Added a test case for BUG#16777.
mysql-test/t/skip_grants.test:
  Added a test case for BUG#16777.
sql/mysql_priv.h:
  Do not check that strlen(host) > 0 in get_default_definer().
sql/sql_parse.cc:
  Do not check that strlen(host) > 0 in get_default_definer().
sql/sql_view.cc:
  Do not check that strlen(host) > 0 in get_default_definer().
2006-03-02 14:17:13 +03:00
unknown
a28368f2c2 for every deprecated feature say when it will be removed.
restore CREATE TABLE ... TYPE=engine until 5.2
2006-03-01 21:36:05 +01:00
unknown
a44a924a40 Fix for BUG#16266: Definer is not fully qualified error during replication.
The idea of the fix is to extend support of non-SUID triggers for backward
compatibility. Formerly non-SUID triggers were appeared when "new" server
is being started against "old" database. Now, they are also created when
"new" slave receives updates from "old" master.


mysql-test/r/rpl_trigger.result:
  Updated the result file with the results of the test for BUG#16266.
mysql-test/t/rpl_trigger.test:
  Added the test case for BUG#16266.
sql/mysql_priv.h:
  Added an utility operation to be used from sql_yacc.yy.
sql/sql_parse.cc:
  Add a utility operation to be used from sql_yacc.yy.
sql/sql_trigger.cc:
  Extend support of non-SUID triggers.
sql/sql_view.cc:
  Initialize LEX::definer if DEFINER-clause is missing.
sql/sql_yacc.yy:
  Extended support of non-SUID triggers.
mysql-test/std_data/bug16266.000001:
  A new binlog file for testing a patch for BUG#16266.
2006-03-01 14:13:07 +03:00
unknown
4e31551b92 Merge mysql.com:/home/bkroot/mysql-5.1-new
into  mysql.com:/home/bk/w3023-mysql-5.1-new


configure.in:
  Auto merged
BitKeeper/deleted/.del-sp_notembedded.test:
  Auto merged
mysql-test/extra/binlog_tests/binlog.test:
  Auto merged
mysql-test/extra/binlog_tests/blackhole.test:
  Auto merged
mysql-test/r/binlog_stm_ctype_cp932.result:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
scripts/mysql_fix_privilege_tables.sql:
  Auto merged
sql/ha_ndbcluster_binlog.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/log.h:
  Auto merged
sql/log_event.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/table.h:
  Auto merged
2006-02-28 10:06:58 +01:00
unknown
9a26412c5f Merge mysql.com:/home/bkroot/mysql-5.1-new
into  mysql.com:/home/bk/fix-mysql-5.1-release


sql/log_event.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
2006-02-27 09:09:02 +01:00
unknown
c59ae65dfa Merge bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  mysql.com:/home/my/mysql-5.1


sql/handler.h:
  Auto merged
sql/log_event.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
tests/mysql_client_test.c:
  Auto merged
2006-02-26 15:12:56 +02: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
f7cf76fc80 Merge mysql.com:/home/my/mysql-5.0
into  mysql.com:/home/my/mysql-5.1


BitKeeper/deleted/.del-innodb_notembedded.test:
  Delete: mysql-test/t/innodb_notembedded.test
BitKeeper/deleted/.del-sp_notembedded.test:
  Delete: mysql-test/t/sp_notembedded.test
BitKeeper/deleted/.del-subselect_notembedded.test:
  Delete: mysql-test/t/subselect_notembedded.test
BitKeeper/deleted/.del-ctype_cp932_notembedded.result:
  Delete: mysql-test/r/ctype_cp932_notembedded.result
BitKeeper/deleted/.del-innodb_notembedded.result:
  Delete: mysql-test/r/innodb_notembedded.result
BitKeeper/deleted/.del-sp_notembedded.result:
  Delete: mysql-test/r/sp_notembedded.result
BitKeeper/deleted/.del-subselect_notembedded.result:
  Delete: mysql-test/r/subselect_notembedded.result
configure.in:
  Auto merged
include/mysql.h:
  Auto merged
libmysql/libmysql.c:
  Auto merged
libmysqld/emb_qcache.cc:
  Auto merged
libmysqld/embedded_priv.h:
  Auto merged
libmysqld/libmysqld.c:
  Auto merged
mysql-test/extra/binlog_tests/blackhole.test:
  Auto merged
mysql-test/mysql-test-run.sh:
  Auto merged
mysql-test/r/innodb.result:
  Auto merged
mysql-test/r/mysqltest.result:
  Auto merged
mysql-test/r/query_cache.result:
  Auto merged
mysql-test/r/query_cache_notembedded.result:
  Auto merged
mysql-test/r/sp-error.result:
  Auto merged
mysql-test/r/sp.result:
  Auto merged
mysql-test/r/subselect.result:
  Auto merged
mysql-test/r/view.result:
  Auto merged
mysql-test/r/view_grant.result:
  Auto merged
mysql-test/t/backup.test:
  Auto merged
mysql-test/t/compress.test:
  Auto merged
mysql-test/t/delayed.test:
  Auto merged
mysql-test/t/handler.test:
  Auto merged
mysql-test/t/mysql.test:
  Auto merged
mysql-test/t/mysql_client_test.test:
  Auto merged
mysql-test/t/mysqltest.test:
  Auto merged
mysql-test/t/query_cache.test:
  Auto merged
mysql-test/t/query_cache_notembedded.test:
  Auto merged
mysql-test/t/read_only.test:
  Auto merged
mysql-test/t/skip_grants.test:
  Auto merged
mysql-test/t/sp-destruct.test:
  Auto merged
mysql-test/t/sp-error.test:
  Auto merged
mysql-test/t/sp-threads.test:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
mysql-test/t/temp_table.test:
  Auto merged
mysql-test/t/view_grant.test:
  Auto merged
mysql-test/t/wait_timeout.test:
  Auto merged
mysys/mf_dirname.c:
  Auto merged
sql/field.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/item.h:
  Auto merged
sql/log_event.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/protocol.cc:
  Auto merged
sql/protocol.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_cursor.cc:
  Auto merged
sql/sql_db.cc:
  Auto merged
sql-common/client.c:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_select.h:
  Auto merged
sql/table.h:
  Auto merged
sql/tztime.cc:
  Auto merged
sql/tztime.h:
  Auto merged
storage/ndb/include/ndbapi/NdbDictionary.hpp:
  Auto merged
tests/mysql_client_test.c:
  Auto merged
libmysqld/lib_sql.cc:
  Manual merge
mysql-test/extra/binlog_tests/binlog.test:
  Manual merge
mysql-test/extra/binlog_tests/ctype_cp932.test:
  No changes
mysql-test/r/binlog_stm_binlog.result:
  Manual merge
mysql-test/r/binlog_stm_ctype_cp932.result:
  No changes
mysql-test/t/innodb.test:
  Manual merge
mysql-test/t/view.test:
  Manual merge
mysys/my_bitmap.c:
  Manual merge
scripts/mysql_fix_privilege_tables.sql:
  Manual merge
sql/item.cc:
  Manual merge
sql/sql_cache.h:
  Manual merge
sql/sql_class.h:
  Manual merge
sql/sql_update.cc:
  Manual merge
2006-02-25 21:54:34 +02:00
unknown
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
unknown
d11aa8345d Merge mysqldev@production.mysql.com:my/mysql-5.1-release
into  mysql.com:/home/bk/w3023-mysql-5.1-new


mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
  Auto merged
mysql-test/extra/rpl_tests/rpl_log.test:
  Auto merged
mysql-test/extra/rpl_tests/rpl_row_delayed_ins.test:
  Auto merged
mysql-test/r/binlog_row_insert_select.result:
  Auto merged
mysql-test/r/rpl_row_delayed_ins.result:
  Auto merged
mysql-test/t/rpl_sp.test:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
sql/ha_ndbcluster_binlog.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/handler.h:
  Auto merged
mysql-test/t/rpl_ndb_dd_basic.test:
  Auto merged
sql/log.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/table.h:
  Auto merged
mysql-test/r/binlog_row_mix_innodb_myisam.result:
  Merge with 5.1.7 release clone.
mysql-test/r/rpl_row_basic_11bugs.result:
  Merge with 5.1.7 release clone.
mysql-test/r/rpl_row_basic_2myisam.result:
  Merge with 5.1.7 release clone.
mysql-test/r/rpl_row_basic_3innodb.result:
  Merge with 5.1.7 release clone.
mysql-test/r/rpl_row_create_table.result:
  Merge with 5.1.7 release clone.
mysql-test/r/rpl_row_log.result:
  Merge with 5.1.7 release clone.
mysql-test/r/rpl_row_log_innodb.result:
  Merge with 5.1.7 release clone.
mysql-test/r/rpl_row_sp008.result:
  Merge with 5.1.7 release clone.
mysql-test/t/rpl_row_basic_11bugs.test:
  Merge with 5.1.7 release clone.
mysql-test/t/rpl_row_sp008.test:
  Merge with 5.1.7 release clone.
2006-02-24 16:31:38 +01:00
unknown
7d4c684633 Bug#17181 (mysqlslap test server crash):
Moving assignments to table_map_id for thread-safe handling of
  table shares.


sql/ha_ndbcluster_binlog.cc:
  Assign_new_table_id() now takes table share instead of table.
sql/mysql_priv.h:
  New protptype for assign_new_table_id().
sql/sql_base.cc:
  Assign_new_table_id() now takes a table share instead of a table.
  Moving call to assign_new_table_id() into get_table_share().
sql/table.cc:
  Setting default values of table_map_id and table_map_version inside
  alloc_table_share() and init_tmp_table_share().
  Removing the settings from open_table_from_share().
2006-02-23 13:34:03 +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
a95646be8d WL 2826: Error handling of ALTER TABLE for partitioning
Final fixes


dbug/dbug_long.h:
  Removed patch from dbug_long.h (file not in use anymore)
sql/mysql_priv.h:
  Removed error_inject_code variable
2006-02-21 07:49:25 -05:00
unknown
0da0693792 WL 2826: Error handling of ALTER TABLE for partitioning
Merged error injects with dbug push


sql/mysql_priv.h:
  Merged error injects with dbug push
2006-02-20 21:50:44 -05:00
unknown
1154609c39 Merge c-9a08e253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/mysql-5.1-bugs
into  c-9a08e253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/wl2826


configure.in:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/ha_ndbcluster.h:
  Auto merged
sql/handler.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_partition.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/table.cc:
  Auto merged
dbug/dbug.c:
  Manual merge
include/my_dbug.h:
  Manual merge
sql/ha_heap.cc:
  Manual merge
sql/ha_myisammrg.cc:
  Manual merge
sql/ha_partition.cc:
  Manual merge
sql/log.cc:
  Manual merge
sql/share/errmsg.txt:
  Manual merge
2006-02-20 16:41:46 -05:00
unknown
d047fe77b7 BUG#15408: Partitions: subpartition names are not unique
Also, moved some of the code out of handler.h and into partition specific files for better 
separation.
Also, moved some of the C funcs into partition_info as formal C++ methods


mysql-test/r/partition_mgm_err.result:
  result block for test of bug # 15408
mysql-test/t/partition_mgm_err.test:
  test for duplicate subpartition names
sql/Makefile.am:
  adding sql_partition.h, partition_info.cpp, partition_info.h, and partition_element.h to the makefile
sql/ha_partition.cc:
  using the new members of partition_info
sql/ha_partition.h:
  using the new members of partition_info
sql/handler.h:
  moved this code into sql_partition.h
sql/mysql_priv.h:
  including sql_partition.h also now
sql/opt_range.cc:
  using the new members of partition_info
sql/sql_partition.cc:
  moved some of the functions out and into the partition_info class
  using the new members of partition_info
sql/sql_show.cc:
  using the new members of partition_info
win/cmakefiles/sql:
  added partition_info.cpp to the sql cmake file
sql/partition_element.h:
  New BitKeeper file ``sql/partition_element.h''
sql/partition_info.h:
  New BitKeeper file ``sql/partition_info.h''
sql/sql_partition.h:
  New BitKeeper file ``sql/sql_partition.h''
2006-02-16 10:38:33 -06:00
unknown
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
unknown
738a1ca08d Merge mysql.com:/home/bkroot/mysql-5.1-new
into  mysql.com:/home/bk/w3023-mysql-5.1-new


mysql-test/extra/binlog_tests/ctype_cp932.test:
  Auto merged
mysql-test/r/binlog_row_blackhole.result:
  Auto merged
mysql-test/r/binlog_stm_ctype_cp932.result:
  Auto merged
sql/handler.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/lock.cc:
  Auto merged
sql/log.cc:
  Auto merged
sql/log.h:
  Auto merged
sql/log_event.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/parse_file.cc:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_load.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/table.h:
  Auto merged
sql/log_event.cc:
  Merge with mysql-5.1-new
2006-02-16 08:46:45 +01:00
unknown
41f7d13853 WL#3023 (Use locks in a statement-like manner):
Table maps are now written on aquiring locks to tables and released
  at the end of each logical statement.


mysql-test/extra/binlog_tests/ctype_cp932.test:
  Disabling cleanup code
mysql-test/r/binlog_row_blackhole.result:
  Result change
mysql-test/r/binlog_row_mix_innodb_myisam.result:
  Result change
mysql-test/r/binlog_stm_ctype_cp932.result:
  Result change
mysql-test/r/rpl_row_charset.result:
  Result change
mysql-test/r/rpl_row_create_table.result:
  Result change
mysql-test/t/rpl_row_create_table.test:
  Binlog position change
sql/handler.cc:
  Writing table map after external_lock()
sql/handler.h:
  Adding class for table operation hooks.
sql/log.cc:
  Adding binlog_write_table_map() to THD.
  Removing write_table_map() from MYSQL_LOG.
sql/log.h:
  Minor interface changes to move table map writing.
sql/log_event.cc:
  Removing pre-allocation of memory for buffers.
  Allowing ULONG_MAX as table id denoting an event to ignore (only used to transfer flags).
  Adding code to collect tables while seeing table maps and lock collected tables
  when seeing a binrow event.
  Debriding code as a result of the above changes.
sql/log_event.h:
  Minor interface changes.
sql/mysql_priv.h:
  Adding hooks argument to create_table_from_items().
sql/parse_file.cc:
  Minor fix to avoid crash in debug printout.
sql/rpl_rli.h:
  Adding list of tables to lock to RLI structure.
sql/slave.cc:
  Using list of tables to lock from RLI structure.
sql/sql_acl.cc:
  Removing redundant pending events flush.
sql/sql_base.cc:
  Moving pending event flush.
  Using flag to guard to clear statement transaction only if this is the original
  open tables state.
sql/sql_class.cc:
  Adding flag for open tables state.
  Removing redundant pending events flushes.
  Write a dummy event to indicate that the tables to lock should be emptied
  on the slave.
sql/sql_class.h:
  Adding open tables state flags.
  Adding binlog_write_table_map() function to THD.
  Changes to select_create() to support new locking scheme.
sql/sql_insert.cc:
  Adding rollback of statement transaction on error. It can now contain
  events after locking tables.
sql/sql_load.cc:
  Removing redundant pending event flush.
sql/sql_table.cc:
  Adding hooks argument to create_table_from_items().
  Calling prelock hook before starting to lock tables.
sql/sql_update.cc:
  Removing a compiler warning.
sql/table.h:
  Minor changes.
2006-02-16 08:30:53 +01:00
unknown
e20cbe27de WL 2826: Error handling of ALTER TABLE for partitioning
Started writing detailed error handler of
ALTER TABLE for partitioning.
Philosophical issue, should one always attempt to make recovery
automatic or should one rely on manual means also.


sql/mysql_priv.h:
  Flag to ensure we can't be killed in a very critical spot
sql/sql_base.cc:
  Flag to ensure we can't be killed in a very critical spot
sql/sql_partition.cc:
  Started writing detailed error handler of
  ALTER TABLE for partitioning.
  Philosophical issue, should one always attempt to make recovery
  automatic or should one rely on manual means also.
2006-02-15 11:08:08 +01:00
unknown
897dd4794d WL 2826: Error handling of ALTER TABLE for partitioning
Added action code for recovery


sql/mysql_priv.h:
  Added entry in table log struct
sql/sql_partition.cc:
  Some renames to replace
sql/sql_table.cc:
  Added action code for recovery
2006-02-14 11:08:58 +01:00
unknown
df59e69c03 Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  mysql.com:/usr/home/bar/mysql-5.1-new.fscs


sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_db.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2006-02-13 11:53:56 +04:00
unknown
bc5dc9e085 renamedb.test, renamedb.result:
new file
Many files:
  WL#757 RENAME DATABASE


sql/mysql_priv.h:
  WL#757 RENAME DATABASE
sql/mysqld.cc:
  WL#757 RENAME DATABASE
sql/sql_db.cc:
  WL#757 RENAME DATABASE
sql/sql_lex.h:
  WL#757 RENAME DATABASE
sql/sql_parse.cc:
  WL#757 RENAME DATABASE
sql/sql_rename.cc:
  WL#757 RENAME DATABASE
sql/sql_table.cc:
  WL#757 RENAME DATABASE
sql/sql_yacc.yy:
  WL#757 RENAME DATABASE
2006-02-13 11:49:28 +04:00
unknown
d8817c63c1 Removing unused variable (old have_isam).
sql/mysql_priv.h:
  Removing isam option
sql/mysqld.cc:
  Removing isam option
sql/set_var.cc:
  Removing isam option.
2006-02-12 22:43:59 -08:00
unknown
b517dbf718 Compile fixes 2006-02-11 00:41:52 -05:00
unknown
c6d1dee7e3 WL 2826: Error handling of ALTER TABLE for partitioning
Make lots of fixes to handle the most complex case of reorganising
of partitions where two-phased processes are needed in some cases.


sql/ha_partition.cc:
  Rewrote the rename partitions and drop partitions to align with how
  the table log handles things.
sql/handler.h:
  Added new entry to partition_element to keep track of log entry for
  a partition during ALTER TABLE that reorganises existing partitions.
sql/mysql_priv.h:
  Converted 'd', 'e' and so forth to constants with somewhat more
  descriptive names
  Added method to inactivate log entries
sql/sql_partition.cc:
  Fix change of partitions
sql/sql_table.cc:
  More constants with somewhat descriptive names
  Moved around some methods between internal part and external part
  Added new method to handle inactivation of log entries
2006-02-10 22:36:01 +01:00
unknown
ddb14e0f23 WL 2826: Error handling of ALTER TABLE for partitioning
More work on table logging of ALTER TABLE for partitioning


sql/mysql_priv.h:
  More work on table logging of ALTER TABLE for partitioning
sql/sql_partition.cc:
  More work on table logging of ALTER TABLE for partitioning
2006-02-09 20:20:22 +01:00
unknown
392b82a10a WL 2826: Error handling of ALTER TABLE for partitioning
A little more complete handling


sql/mysql_priv.h:
  Complete flag
sql/sql_table.cc:
  A little more complete handling
sql/sql_partition.cc:
  A little more complete handling
2006-02-09 20:20:21 +01:00
unknown
cd653ed9ec WL 2826: Error handling of ALTER TABLE for partitioning
A number of fixes


sql/handler.h:
  A numbre of fixes
sql/mysql_priv.h:
  A numbre of fixes
sql/share/errmsg.txt:
  A numbre of fixes
sql/sql_partition.cc:
  A numbre of fixes
sql/sql_table.cc:
  A numbre of fixes
2006-02-09 14:13:22 -05:00
unknown
836912d1c7 WL 2826: Error handling for ALTER TABLE for partitioning
Step 14: First version of table log for add/Drop partition


sql/ha_partition.cc:
  Moved create partition name code to sql_partition.cc
sql/handler.h:
  Added entries in partition_info to keep track of table log entries
sql/mysql_priv.h:
  Moved create partition name code to sql_partition.cc
sql/sql_partition.cc:
  Moved create partition name code to sql_partition.cc
  First version of table log for add/drop partition
sql/sql_table.cc:
  Add IO_SIZE to table log header
2006-02-09 11:05:05 +01:00
unknown
e5200bc17d WL 2826: Error handling for ALTER TABLE for partitioning Step 13
Lots of compilation fixes


sql/mysql_priv.h:
  Lots of compilation fixes
sql/sql_partition.cc:
  Lots of compilation fixes
sql/sql_table.cc:
  Lots of compilation fixes
2006-02-08 18:04:58 -05:00
unknown
910bf3808a WL 2826: Error handling for ALTER TABLE for partitioning
Most of the code for handling the table log is in place now, except
the action part at recovery and proper error handling in some places.


sql/mysql_priv.h:
  Removed internal methods from external table log interface
  Added and changed interface
sql/mysqld.cc:
  Added call to execute table log recovery
sql/sql_table.cc:
  Most of the code for handling the table log is in place now, except
  the action part at recovery and proper error handling in some places.
2006-02-08 15:14:15 +01:00
unknown
e09fb5ceaa WL 2826: Step 12
More table log code


sql/mysql_priv.h:
  Added new call
sql/sql_table.cc:
  New table log code
2006-02-07 16:26:34 +01:00
unknown
e4a92796f2 WL 2826: Step 11
Lots of new code for table log


include/my_sys.h:
  Spell error
sql/mysql_priv.h:
  More structs and methods for table log
sql/sql_partition.cc:
  lock/unlock global table log mutex
sql/sql_table.cc:
  Lots of new code for table log
2006-02-07 10:45:07 +01:00
unknown
84627f5bc7 WL 2826: Step 10
New methods to read/write/initialise table log


sql/mysql_priv.h:
  New methods to read/write/initialise table log
sql/sql_table.cc:
  New methods to read/write/initialise table log
2006-02-06 21:47:03 +01:00
unknown
387e56aa82 Merge mysqldev@production.mysql.com:my/mysql-5.1-release
into  mysql.com:/home/cps/mysql/trees/5.1/5.1-virgin-no-debug


mysql-test/mysql-test-run.pl:
  Auto merged
sql/log.cc:
  Auto merged
sql/log.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
2006-02-06 17:35:10 +03:00
unknown
9aac55c4c0 cleanup
sql/mysql_priv.h:
  remove reference to variable removed in the previous patch
2006-02-06 17:30:44 +03:00
unknown
dde234ae1d WL 2826: Nineth step
Updated error inject scripts


dbug/dbug_long.h:
  Updated scripts in dub_long.h as well
sql/mysql_priv.h:
  Updated error inject scripts
2006-02-04 13:03:35 +01:00
unknown
7ea92dcc3c WL 2826: Seventh step, more fixes for error injects
Removed session variables for error injects
started using DBUG macros for error injects


include/my_dbug.h:
  Added new DBUG macros
sql/sql_class.cc:
  Removed session variables for error injects
sql/sql_class.h:
  Removed session variables for error injects
sql/mysql_priv.h:
  Changed ERROR INJECT macros to use DBUG macros
sql/mysqld.cc:
  Removed session variables for error injects
sql/set_var.cc:
  Removed session variables for error injects
2006-02-03 18:05:30 +01:00
unknown
e254606f0b WL #2826: Sixth step, made it work with test cases
BUILD/SETUP.sh:
  Fixed BUILD scripts
BUILD/compile-pentium-debug-max:
  Fixed BUILD scripts
sql/ha_partition.cc:
  Need to handle states differently when creating handler files
sql/mysql_priv.h:
  Some error inject fixes
sql/mysqld.cc:
  Some error inject fixes
sql/set_var.cc:
  Some error inject fixes
sql/sql_partition.cc:
  Fixing a bug with generate partition syntax
  A number of fixes
sql/sql_table.cc:
  Fix a few bugs
sql/table.cc:
  fix
2006-02-03 12:05:29 -05:00
unknown
83d418a25f WL 2826: A third step, fixing generate_partition_syntax
sql/mysql_priv.h:
  Make it possible to set injector code and value
  Declare header part of a set of new functions
sql/sql_partition.cc:
  Fix generate_partition_syntax to handle shadow variant of frm file
2006-02-01 16:38:08 +01:00
unknown
9b6c2bc2bf WL 2826: Another step
sql/mysql_priv.h:
  Set error_inject_code to zero after firing error injection
sql/sql_partition.cc:
  New entries for new functions
2006-02-01 14:00:00 +01:00
unknown
520dffb520 WL 2826: First step in error handling of ALTER TABLE for partitioning
BUILD/SETUP.sh:
  Add possibility for BUILD scripts to add error inject flag
BUILD/compile-pentium-debug-max:
  Add error inject flag to this script
configure.in:
  Add handling of --with-error-inject in configure script
sql/ha_ndbcluster.cc:
  Add possibility to rename handler file
sql/ha_ndbcluster.h:
  Add possibility to rename handler file
sql/ha_partition.cc:
  Add possibility to rename handler file
sql/ha_partition.h:
  Add possibility to rename handler file
sql/handler.h:
  Add possibility to rename handler file
sql/mysql_priv.h:
  Add error inject macros
sql/mysqld.cc:
  Add error inject system variables
sql/set_var.cc:
  Add error inject system variables
sql/sql_class.h:
  Add error inject system variables
sql/sql_table.cc:
  Start modifying code for introducing table log, Step 1
sql/unireg.cc:
  Add rename flag to handler file call
sql/sql_partition.cc:
  Changes to ADD/DROP/CHANGE partitions
2006-02-01 10:06:07 +01:00
unknown
f57e0d8ec4 WL#1359 NDB: Add table handler and table information available from SQL commands
add a FILES table that allows the user to run SQL queries on the files used
to store their tables.

Currently supports NDB


sql/ha_berkeley.cc:
  Add fill_files_table
sql/ha_blackhole.cc:
  Add fill_files_table
sql/ha_federated.cc:
  Add fill_files_table
sql/ha_heap.cc:
  Add fill_files_table
sql/ha_innodb.cc:
  Add fill_files_table
sql/ha_myisam.cc:
  Add fill_files_table
sql/ha_myisammrg.cc:
  Add fill_files_table
sql/ha_ndbcluster.cc:
  Add fill_files_table and implementation for NDB disk data DATAFILES and UNDOFILES
sql/ha_partition.cc:
  Add fill_files_table
sql/handler.h:
  Add fill_files_table to handlerton
sql/log.cc:
  Add fill_files_table
sql/mysql_priv.h:
  Add schema_table_store_record as a function that handlertons can call to store rows in INFORMATION_SCHEMA.FILES
sql/sql_show.cc:
  implement the INFORMATION_SCHEMA.FILES table.
  
  Eventually this may move to PERFORMANCE_SCHEMA.
  
  It currently exists to allow users to query disk usage for NDB disk data tables.
storage/csv/ha_tina.cc:
  Add fill_files_table
2006-01-28 16:16:23 +13:00